绪论 1
0.1 关于Verilog HDL 1
0.2 关于EDA 2
第1章 Verilog HDL的基本结构与描述方式 3
1.1 基本结构 3
1.2 描述方式 6
1.2.1 数据流描述方式 6
1.2.2 行为描述方式 9
1.2.3 结构化描述方式 12
1.2.4 混合描述方式 15
思考与习题 17
第2章 Verilog HDL的基本要素 18
2.1 标识符(identifier) 18
2.2 格式与注释 18
2.3 数据 18
2.3.1 常量 18
2.3.2 变量 20
2.3.3 Verilog HDL四种基本的值 20
2.4 数据类型 21
2.4.1 线网类型 21
2.4.2 寄存器类型 23
2.5 操作符 25
2.6 系统函数和系统任务 27
2.7 编译预处理指令 29
思考与习题 30
第3章 Verilog HDL的基本语句 31
3.1 赋值语句 31
3.1.1 连续赋值语句和过程赋值语句 31
3.1.2 阻塞赋值语句和非阻塞赋值语句 32
3.2 块语句 34
3.2.1 顺序块语句 34
3.2.2 并行块语句 35
3.3 条件语句 37
3.3.1 if else语句 37
3.3.2 case语句 38
3.3.3 条件操作符构成的语句 39
3.4 循环语句 39
3.4.1 forever循环语句 39
3.4.2 repeat循环 40
3.4.3 while循环 40
3.4.4 for循环 41
3.5 结构说明语句 42
3.5.1 task(任务) 42
3.5.2 function(函数) 43
3.6 行为描述语句 44
3.6.1 initial语句 44
3.6.2 always语句 44
3.7 内置门语句 47
3.7.1 多输入门 47
3.7.2 多输出门 48
3.7.3 使能门 48
3.7.4 上拉和下拉 49
3.8 内置开关语句 49
3.8.1 mos开关 50
3.8.2 cmos开关 50
3.8.3 pass开关 50
3.8.4 pass en开关 50
3.9 用户定义原语UDP 51
3.9.1 UDP的结构 51
3.9.2 UDP的实例化应用 52
3.9.3 组合电路UDP举例 52
3.9.4 时序电路UDP举例 53
3.10 force强迫赋值语句 56
3.11 specify延迟说明块 57
3.12 关于Verilog-2001新增的一些特性 57
3.13 关于Verilog-2005 59
思考与习题 60
第4章 组合电路设计 61
4.1 简单组合电路设计 61
4.1.1 表决电路 61
4.1.2 码制转换电路 63
4.1.3 比较器 65
4.1.4 译码器 67
4.2 复杂组合电路设计 69
4.2.1 多位比较器 69
4.2.2 多人表决器 71
4.2.38 选1数据选择器 71
4.2.4 一位全加(减)器 72
4.2.54 位减法、加法器 73
4.2.63 位、8位二进制乘法器设计 75
思考与习题 76
第5章 时序电路设计 77
5.1 简单时序电路设计 77
5.1.1 基本D触发器 77
5.1.2 带异步清0、异步置1的D触发器 77
5.1.3 带异步清0、异步置1的JK触发器 79
5.1.4 锁存器和寄存器 80
5.2 复杂时序电路设计 81
5.2.1 自由风格设计 81
5.2.2 有限状态机FSM 87
5.3 时序电路设计中的同步与异步 95
思考与习题 96
第6章 仿真测试程序设计 97
6.1 用Verilog HDL设计仿真测试程序 97
6.1.1 七段数码管译码器测试模块 97
6.1.2 分频器测试模块 100
6.1.3 阻塞赋值与非阻塞赋值的测试模块 101
6.1.4 序列检测器测试模块 105
6.1.5 关于WARNING 107
6.1.6 关于测试模块及其基本结构 107
6.2 用ABEL-HDL设计仿真测试向量 108
6.2.1 ABEL-HDL测试向量 108
6.2.2 七段数码管译码器测试向量 109
6.2.3 4位加法器测试向量 110
6.2.4 序列检测器测试向量 111
6.2.5 变模计数器测试向量 113
6.3 Altera公司的Quartus II波形仿真 115
思考与习题 115
第7章 组合电路设计实例 118
7.1 编码器 118
7.2 译码器 120
7.3 数据选择器 123
7.4 数据分配器 125
7.5 数值比较器 128
7.6 通过EPM240开发板验证组合电路 129
思考与习题 130
第8章 时序电路设计实例 131
8.1 序列检测器 131
8.2 脉冲分配器 140
8.3 8路抢答器 143
8.4 数字跑表 145
8.5 交通灯控制系统 149
8.6 以2递增的变模计数器 154
8.7 定时器的Verilog编程实现 156
8.8 ATM信元的接收及空信元的检测系统 162
8.9 点阵汉字显示系统 167
8.10 通过EPM240开发板验证的几个时序电路 177
8.10.1 8个发光二极管按8位计数器规律循环显示 177
8.10.2 第1个数码管动态显示0~7 178
8.10.3 4个数码管显示3210 180
8.10.4 一段音乐演奏程序设计 181
思考与习题 184
第9章 EDA开发软件 185
9.1 Xilinx公司的EDA开发软件 185
9.1.1 Xilinx ISE Design Suite 13.x 185
9.1.2 Xilinx ISE13应用举例 185
9.2 Lattice公司的EDA开发软件 200
9.2.1 ispDesignEXPERT应用 201
9.2.2 ispDesignEXPERT应用举例 203
9.2.3 ispLEVER Classic应用 212
9.2.4 ispLEVER Classic应用实例 214
9.2.5 Lattice Diamond简介 221
9.3 Altera公司的EDA开发软件 223
9.3.1 Quartus II简介 223
9.3.2 Quartus II 9.0基本操作应用 223
9.4 EDA开发软件和Modelsim的区别 226
思考与习题 226
附录1 Verilog关键字 227
附录2 Nexys3 Digilent技术支持 228
附录3 Nexys3开发板 229
附录4 EPM240T100C5开发板 230
参考文献 231