本书共分11章,内容包括:Verilog行为描述、组合逻辑建模、时序逻辑建模、为级仿真模型建模、各层次Verilog描述形式与电路建模、任务和函数等。
通过学习本书,读者可以掌握硬件描述语言Verilog HDL的语法结构,掌握组合逻辑和时序逻辑电路的设计方法,掌握Modelsim和Debussy仿真调试工具的应用及Synplify综合工具的应用,了解task和function等的高级语法,深入理解“自顶向下”的设计思想,具备设计可综合RTL的能力。本课程配套的实验提供了创建可综合RTL代码的实践基础,其中涵盖了设计流程的方方面面。实验着重于让学生写出能最优地推断出高性能可靠电路的代码。
本书介绍硬件描述语言Verilog HDL及电路设计方法,共11章,主要内容包括: Verilog层次化设计、Verilog基本语法、Verilog行为描述、组合逻辑建模、时序逻辑建模、为级仿真模型建模、各层次Verilog描述形式与电路建模、任务和函数、编译预处理、Verilog设计与综合中的陷阱、异步设计与同步设计的时序分析。本书配套实验,提供电子课件和习题参考答案。
本书可作为高等学校电子信息类相关课程的教材,也可供相关工程技术人员学习参考。
第1章 Verilog HDL层次化设计/1
1.1 一个简单的例子——4位全加器的设计/1
1.2 模块和端口/3
1.2.1 模块定义/4
1.2.2 端口定义/4
1.2.3 模块实例化/5
1.3 层次化设计思想/9
1.4 Testbench的概念/10
1.5 仿真和综合/12
本章小结/13
思考与练习/13
第2章 Verilog HDL基本语法/15
2.1 词法约定/15
2.1.1 空白符/15
2.1.2 注释/15
2.1.3 操作符/16
2.1.4 标识符与关键字/16
2.2 数据类型/16
2.2.1 逻辑值与常量/17
2.2.2 逻辑强度/18
2.2.3 线网类型/18
2.2.4 变量类型/19
2.2.5 向量/20
2.2.6 数组/20
2.2.7 参数/21
2.3 表达式/23
2.3.1 操作数/23
2.3.2 操作符/23
2.3.3 位宽处理/27
2.3.4 表达式的综合/28
本章小结/28
思考与练习/28
第3章 Verilog HDL行为描述/30
3.1 Verilog HDL的基本描述形式/30
3.2 结构化过程语句/31
3.2.1 initial语句/31
3.2.2 always语句/32
3.3 顺序块和并行块/32
3.3.1 顺序块/33
3.3.2 并行块/33
3.3.3 块语句的其他特点/34
3.4 过程赋值语句/35
3.4.1 阻塞赋值语句/35
3.4.2 非阻塞赋值语句/35
3.5 条件语句/36
3.6 多路分支语句/37
3.7 条件语句和多路分支语句的比较/39
3.8 循环语句/39
3.8.1 while循环/39
3.8.2 for循环/40
3.8.3 repeat循环/40
3.8.4 forever循环/41
3.9 时序控制/42
3.9.1 延迟控制/42
3.9.2 事件控制/45
本章小结/48
思考与练习/49
第4章 组合逻辑建模/51
4.1 数字电路建模方式/51
4.2 组合逻辑的门级描述/53
4.2.1 与门、或门及同类门单元/53
4.2.2 缓冲器和非门/54
4.2.3 三态门/55
4.2.4 门级描述实例/56
4.3 组合逻辑的数据流描述/58
4.3.1 连续赋值语句/58
4.3.2 数据流描述实例/59
4.4 组合逻辑的行为描述/60
4.5 组合逻辑建模实例/62
4.5.1 比较器/62
4.5.2 译码器和编码器/63
4.5.3 多路复用器/64
4.5.4 三态驱动电路/65
本章小结/66
思考与练习/66
第5章 时序逻辑建模/68
5.1 时序逻辑建模概述/68
5.2 寄存器和锁存器的设计/69
5.2.1 寄存器设计实例/69
5.2.2 锁存器设计实例/70
5.3 寄存器和锁存器的推断/71
5.3.1 寄存器的推断/71
5.3.2 锁存器的推断/73
5.4 存储器的设计与建模/74
5.4.1 ROM建模/74
5.4.2 RAM建模/75
5.5 在设计中使用同步时序逻辑/76
5.5.1 利用同步时序逻辑消除冒险/77
5.5.2 利用流水线提高同步时序逻辑性能/78
5.6 同步有限状态机/79
5.7 时序逻辑建模实例/82
5.7.1 计数器/82
5.7.2 串并/并串转换器/83
5.7.3 时钟分频电路/86
本章小结/88
思考与练习/89
第6章 行为级仿真模型建模/91
6.1 行为级建模概述/91
6.2 仿真时间和时序控制/92
6.3 仿真模型建模实例/94
6.3.1 时钟发生器/94
6.3.2 简单的仿真环境/97
6.3.3 从文件读取激励/99
6.3.4 输出结果监控/102
6.3.5 总线功能模型/104
本章小结/107
思考与练习/107
第7章 各层次Verilog HDL描述形式与电路建模/109
7.1 基本的数字电路单元模块/109
7.2 各抽象层次的Verilog HDL描述形式/110
7.2.1 利用各层次描述进行组合逻辑建模/111
7.2.2 利用各层次描述进行时序逻辑建模/113
7.2.3 利用各层次描述进行行为级仿真模型建模/115
7.3 Verilog HDL仿真机制基础/116
本章小结/119
思考与练习/119
第8章 任务和函数/120
8.1 任务说明语句/120
8.2 函数说明语句/124
8.3 任务和函数的联系与区别/127
8.4 系统自定义任务和函数/128
8.4.1 $display和 $write任务/128
8.4.2 $monitor任务/130
8.4.3 文件操作任务/131
8.4.4 $readmemh和 $readmemb任务/133
8.4.5 $time函数和 $timeformat任务/135
8.4.6 $finish和 $stop任务/137
8.4.7 随机数生成函数/137
本章小结/138
思考与练习/138
第9章 编译预处理/140
9.1 'define, 'undef/140
9.2 'ifdef, 'else, 'elsif, 'endif, 'ifndef/141
9.3 'include/142
9.4 'timescale/142
9.5 预编译处理实例/143
本章小结/144
思考与练习/144
第10章 Verilog HDL设计与综合中的陷阱/145
10.1 阻塞语句与非阻塞语句/146
10.1.1 阻塞语句/146
10.1.2 非阻塞语句/147
10.2 敏感变量的不完备性/150
10.3 锁存器的产生与危害/152
10.4 组合逻辑反馈/156
10.5 for循环/158
10.6 优先级与并行编码/159
10.7 多路控制分支结构/162
10.8 复位电路设计问题与改进/163
10.8.1 同步复位电路/163
10.8.2 异步复位电路/164
10.8.3 复位电路的改进/167
本章小结/171
思考与练习/172
第11章 异步设计与同步设计的时序分析/176
11.1 亚稳态的物理意义/177
11.2 亚稳态与建立时间、保持时间、异步复位恢复时间/177
11.2.1 建立时间、保持时间、异步复位恢复时间基本概念/177
11.2.2 建立时间、保持时间的违例/178
11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF/180
11.3.1 亚稳态的恢复时间/180
11.3.2 同步寄存器/181
11.3.3 平均故障间隔时间/185
11.3.4 降低亚稳态传播的概率/186
11.4 同步系统时钟频率/189
11.4.1 组合逻辑的延迟/190
11.4.2 时钟输出延迟Tco/190
11.4.3 同步系统中的时钟频率/191
11.4.4 提高时钟速度的两种方法/199
11.4.5 时钟偏斜及其影响/204
11.5 False Path基本概念/212
本章小结/212
思考与练习/213
参考文献/214