第一章 电子系统设计与硬件描述语言 1
1.1电子系统设计技术的发展过程 1
1.1.1手工设计阶段 1
1.1.2 CAD设计技术 1
1.1.3 EDA设计技术 2
1.1.4 SOC与ESDA设计技术 3
1.2 EDA设计主要流程 3
1.3.1半导体工艺技术的进步 5
1.3深亚微米技术给电子系统设计技术带来的挑战 5
1.3.2深亚微米技术带来的挑战 6
1.3.3 EDA设计技术的最新发展 7
1.3.4对设计人员的素质提出更高的要求 9
1.4硬件描述语言 10
1.4.1用HDL进行电子系统设计的优点 10
1.4.2 Verilog HDL的发展过程与编程特点 12
习题 14
2.1 Bottom-up与Top-down设计方法 15
2.1.1 Bottom-up的设计方法 15
第二章 Verilog HDL设计入门 15
2.1.2 Top-down的设计方法 16
2.2 Verilog HDL的基本结构与硬件描述的设计过程 18
2.2.1 Verilog HDL与C语言的比较 18
2.2.2 module模块的基本结构 18
2.2.3行为描述与结构描述、分级设计 20
2.2.4仿真与测试 22
2.3用Verilog HDL进行硬件设计的实现过程 24
习题 25
3.1.1空白符与注释 26
第三章Verilog HDL基础知识 26
3.1基本词法定义 26
3.1.2逻辑与数字表示 27
3.1.3字符串与字符变量 29
3.1.4取名规则、系统命令、关键词 30
3.2数据类型 32
3.2.1连线类型(Net-type) 32
3.2.2寄存器类型(Register-type) 34
3.2.3标量与矢量,标量类矢量与矢量类矢量,存储器的表示 37
3.3.1参数定义语句parameter 39
3.3参数定义、宏替换及模拟时间单位的定标 39
3.3.2宏替换define 40
3.3.3模拟时间定标timescale 41
3.4运算符 42
3.4.1算术运算符 44
3.4.2位运算符 45
3.4.3缩位运算符 47
3.4.4逻辑运算符 48
3.4.5关系运算符 49
3.4.6相等与全等运算符 50
3.4.7逻辑移位运算符 51
3.4.8连接运算符 52
3.4.9条件运算符 52
3.4.10对运算结果位宽情况的说明 53
3.4.11对实型量运算的限制 54
习题 55
第四章 Verilog行为描述 56
4.1 Verilog HDL行为描述的构成框架 56
4.1.1过程块 56
4.1.2过程语句initial与always 57
4.2块语句 58
4.2.1串行块begin-end 58
4.2.2并行块fork-join 60
4.2.3有名块Named-block 62
4.3赋值语句 62
4.3.1什么是过程赋值语句 63
4.3.2过程赋值语句的两种延时模式 63
4.3.3阻塞型过程赋值与非阻塞型过程赋值 66
4.3.4连续赋值语句assign 70
4.3.5过程连续赋值语句(assign/deassign,force/release) 72
4.4高级程序语句 73
4.4.1 if-else条件语句 74
4.4.2 case语句 78
4.4.3 forever循环语句 81
4.4.4 repeat循环语句 82
4.4.5 while循环语句 84
4.4.6 for循环语句 85
4.4.7 disable循环中断控制语句 87
4.4.8 wait语句与有名事件 88
4.5.1任务(task) 93
4.5 Verilog任务与函数 93
4.5.2函数(function) 95
习题 98
第五章 Verilog系统函数与编译向导 101
5.1 Verilog系统任务与系统函数 101
5.1.1系统任务 $display与$write 102
5.1.2系统任务 $monitor 106
5.1.3系统函数 $time与$realtime 108
5.1.5系统任务 $readmem 109
5.1.4系统任务 $finish与$stop 109
5.1.6系统函数 $random 110
5.2编译向导 111
5.2.1文件包含`include 111
5.2.2工作库定义`uselib 112
5.2.3条件编译`ifdef,`else,`endif 113
5.2.4缺省连线类型`defaut_nettype 114
5.2.5取消编译向导`resetall 115
习题 115
6.1 Verilog HDL结构描述 116
6.1.1 module模块的组成 116
第六章 Verilog结构描述(一):门级描述 116
6.1.2模块调用与端口名对应方式 117
6.1.3 Verilog结构描述方法 119
6.1.4阵列调用(Array Instances)的结构描述 120
6.1.5分级结构与分级名(Hierarchical Name) 121
6.2 Verilog基本门级元件 123
6.2.1 Verilog基本门级元件的定义 123
6.2.2基本门的调用 125
6.3.1连线的类型说明 127
6.3 Verilog连线类型与assign连续赋值语句 127
6.3.2 assign连续赋值语句 128
6.4基本门与连线的延时表示 129
6.4.1延时的基本表示法 130
6.4.2最小延时、典型延时、最大延时 130
6.5延时说明块(Specify Block)与时序检测 131
6.5.1延时说明块的定义 131
6.5.2延时参数定义语句specparam 132
6.5.3路径延时的定义 132
6.5.4模块的时序检测 136
6.6.1直接改写调用方式 137
6.6参数化模块的调用 137
6.6.2参数重定义(defparam)调用方式 138
习题 139
第七章 用户自定义元件(UDP) 142
7.1 UDP的基本定义 142
7.2组合逻辑元件的UDP描述 143
7.3电平触发时序元件的UDP描述 146
7.4边沿触发时序元件的UDP描述 146
7.5电平、边沿混合触发时序电路的UDP描述 148
7.6时序检测告警信号在UDP中的应用 150
习题 151
第八章Verilog结构描述(二):开关级描述 152
8.1 Verilog基本开关级元件 152
8.2开关级元件对信号强度的影响 153
8.3开关级描述中的电荷衰减表示 156
8.4开关级描述的应用 158
习题 161
9.1 Verilog设计常见错误分析 162
9.1.1使用非Verilog表达方式 162
第九章Verilog设计错例与实例分析 162
9.1.2与类型说明相关的错误 163
9.1.3与always过程语句相关的错误 165
9.1.4由零延时引起的模拟错误 168
9.2 Verilog设计实例 169
9.2.1常用组合电路的设计 169
9.2.2常用时序电路的设计 173
9.2.3有限状态机的设计 175
9.2.4存储器的描述 180
习题 182
第十章 面向综合的设计技术 183
10.1语言描述与综合实现的关系 183
10.1.1算法描述与硬件结构 184
10.1.2算法描述与资源共享 186
10.1.3过程语句与隐含寄存器 187
10.2 Verilog HDL描述的可综合性分析 190
习题 191
附录A Verilog HDL句式定义 192
附录B 参考文献 213