图书介绍

Verilog与SystemVerilog编程陷阱 如何避免101个常犯的编码错误PDF|Epub|txt|kindle电子书版本网盘下载

Verilog与SystemVerilog编程陷阱 如何避免101个常犯的编码错误
  • (美)萨瑟兰,(美)米尔斯著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111503163
  • 出版时间:2015
  • 标注页数:156页
  • 文件大小:59MB
  • 文件页数:166页
  • 主题词:硬件描述语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Verilog与SystemVerilog编程陷阱 如何避免101个常犯的编码错误PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 什么是“编程陷阱”1

什么是Verilog和SystemVerilog1

什么是陷阱1

Verilog和SystemVerilog标准2

第2章 声明以及字符表述类陷阱5

陷阱1:字母大小写的敏感性5

陷阱2:网表的隐式声明7

陷阱3:默认的1 bit内部网9

陷阱4:单文件和多文件编译的$unit声明11

陷阱5:局部变量的声明12

陷阱6:分层路径的转义名称13

陷阱7:自动变量的分层引用15

陷阱8:未命名模块中的变量分层引用17

陷阱9:分层引用一个导入的包项目19

陷阱10:从程序包中导入枚举类型19

陷阱11:导入多个程序包20

陷阱12:默认的整数进制21

陷阱13:有符号整数23

陷阱14:有符号数的位宽扩展24

陷阱15:变量位宽与赋值位宽的不一致26

陷阱16:将矢量全置为127

陷阱17:合并数组和并置28

陷阱18:端口连接的几点规则29

陷阱19:后驱动端口32

陷阱20:实型(浮点型)数字的端口间传送34

第3章 RTL建模中的陷阱37

陷阱21:包含函数调用的组合逻辑灵敏度列表37

陷阱22:灵敏度列表中的数组39

陷阱23:时序逻辑灵敏度列表中的向量41

陷阱24:灵敏度列表中的操作42

陷阱25:使用begin...end的时序逻辑块43

陷阱26:带复位的顺序逻辑块45

陷阱27:异步设置/复位触发器仿真和综合46

陷阱28:顺序程序块中的阻塞赋值47

陷阱29:要求阻塞赋值的顺序逻辑48

陷阱30:组合逻辑中的非阻塞赋值50

陷阱31:错误顺序的组合逻辑赋值语句52

陷阱32: case表达式中casez/casex掩码用法54

陷阱33:不完备的判决语句55

陷阱34:重叠判决语句58

陷阱35:不恰当使用unique条件语句59

陷阱36: 2-状态模型的复位61

陷阱37:枚举类型锁定状态机的建模63

陷阱38: 4-状态逻辑中隐藏的设计问题65

陷阱39: 2-状态类型中隐藏的设计问题66

陷阱40:越界数组访问中的隐藏问题68

陷阱41:枚举类型的越界赋值69

陷阱42:模块中未检测到共享变量71

陷阱43:在接口和程序包中未见共享变量72

第4章 运算符陷阱74

陷阱44:表达式的赋值74

陷阱45:操作符的自定义和上下文定义75

陷阱46:赋值语句中的运算位宽和符号扩展77

陷阱47:有符号数的算数运算规则80

陷阱48:基于位选择的操作82

陷阱49:递增、递减和赋值运算符83

陷阱50:前加与后加运算84

陷阱51:一条语句中变量的多次改变86

陷阱52:运算求值短路86

陷阱53:逻辑非(!)与按位求反符(~)88

陷阱54:数组的运算88

陷阱55:针对数组子集的运算89

第5章 常见的编程陷阱91

陷阱56:验证零时刻的异步和同步复位91

陷阱57:if...else嵌套语块95

陷阱58:4-状态值下等号求值96

陷阱59:事件触发竞争条件97

陷阱60:使用信号量的同步99

陷阱61:使用邮箱的同步101

陷阱62:时钟块的触发103

陷阱63:判断语句后错误使用分号103

陷阱64:for循环语句中分号的错误使用105

陷阱65:死循环106

陷阱66:由于并发for循环引起的死锁106

陷阱67:循环控制变量的引用108

陷阱68:函数返回默认的位宽109

陷阱69:任务/功能函数的默认值110

陷阱70:为避免毛刺而采用延迟的连续赋值111

第6章 面向对象和多线程编程中的陷阱113

陷阱71:类定义的编程语句113

陷阱72:基于面向对象接口的测试平台114

陷阱73:邮箱中的所有对象具有相同的值115

陷阱74:使用input或ref参数的句柄传递116

陷阱75:构建一个基于对象的数组117

陷阱76:静态任务和功能的非可重入性118

陷阱77:静态变量与自动变量的初始化119

陷阱78:叉型编程线程需要自动变量121

陷阱79:禁用fork将终止多个线程123

陷阱80:禁用一个语句块却未如所愿124

陷阱81:仿真在测试完毕前过早退出127

第7章 随机化、覆盖率和断言类陷阱129

陷阱82:随机化声明的变量并未随机化129

陷阱83:未被检测的随机化失败130

陷阱84:$assertoff可以禁止随机化131

陷阱85:两个以上随机变量的布尔约束条件133

陷阱86:不必要的负随机值134

陷阱87:覆盖报告默认基于组而非箱135

陷阱88:覆盖率始终报告0%136

陷阱89:覆盖报告将所有实例混在一起138

陷阱90:覆盖组的参数方向具有粘黏性138

陷阱91:断言传递语句与空成功一同执行139

陷阱92:程序块中的并发断言141

陷阱93:assert...else语句中的不匹配142

陷阱94:不能失败的断言143

第8章 工具兼容性陷阱145

陷阱95:默认的仿真时间单位和精度145

陷阱96:程序包链接147

陷阱97:不同工具的随机数生成不一致149

陷阱98:使用always_latch/always_来加载存储器模型150

陷阱99:非标准语言扩展151

陷阱100:数组常量的级联153

陷阱101:传输浮点数值(实数类型)的模块端口154

热门推荐