标题：设计与验证——verilog hdl
基本信息
书名:
设计与验证——veriloghdl
书号:
15041
作者:
eda先锋工作室吴继华王诚
图书简介
本书以实例讲解的方式对hdl语言的设计方法进行介绍。全书共分9章，第1章至第3章主要介绍了veriloghdl语言的基本概念、设计流程、语法及建模方式等内容；第4章至第6章主要讨论如何合理地使用veriloghdl语言描述高性能的可综合电路；第7章和第8章重点介绍了如何编写测试激励以及verilog的仿真原理；第9章展望hdl语言的发展趋势。
本书配有一张光盘，光盘中收录了书中示例的工程文件、设计源文件及说明文件等。另外为了配合读者进一步学习，光盘中还提供了verilog1995和verilog2001这两个版本的ieee标准文献，读者可以从中查阅verilog的语法细节。
本书围绕设计和验证两大主题展开讨论，内容丰富，实用性强，可作为高等院校通信工程、电子工程、计算机、
目录
第1章hdl设计方法简介1
1.1设计方法的变迁1
1.2verilog语言的特点2
1.2.1verilog的由来2
1.2.2hdl与原理图2
1.2.3verilog和vhdl3
1.2.4verilog和c语言4
1.3hdl的设计与验证流程5
1.4问题与思考7
第2章verilog语言基础9
2.1top-down和bottom-up9
2.2verilog的3种描述方法10
2.2.1实例10
2.2.23种描述方法13
2.3基本词法14
2.4模块和端口15
2.5编译指令16
2.6逻辑值与常量17
2.6.1逻辑值17
2.6.2常量18
2.7变量类型19
2.7.1线网类型19
2.7.2寄存器类型19
2.7.3变量的物理含义20
2.7.4驱动和赋值20
2.8参数22
2.9verilog中的并发与顺序22
2.10操作数、操作符和表达式23
2.10.1操作符23
2.10.2二进制数值26
2.10.3操作数26
2.11系统任务和系统函数28
2.11.1显示任务28
2.11.2文件输入/输出任务28
2.11.3其他系统任务和系统函数29
2.12小结29
2.13问题与思考29
第3章描述方式和设计层次31
3.1描述方式31
3.2数据流描述31
3.2.1数据流31
3.2.2连续赋值语句31
3.2.3延时33
3.2.4多驱动源线网34
3.3行为描述36
3.3.1行为描述的语句格式36
3.3.2过程赋值语句40
3.3.3语句组43
3.3.4高级编程语句44
3.4结构化描述50
3.4.1实例化模块的方法52
3.4.2参数化模块53
3.5设计层次57
3.5.1系统级和行为级57
3.5.2rtl级59
3.5.3门级60
3.5.4晶体管级60
3.5.5混合描述60
3.6实例：crc计算与校验电路60
3.6.1crc10校验，行为级61
3.6.2crc10计算电路，rtl级62
3.7小结64
3.8问题与思考64
第4章rtl概念与rtl级建模65
4.1rtl与综合的概念65
4.2rtl级设计的基本要素和步骤65
4.3常用的rtl级建模67
4.3.1阻塞赋值、非阻塞赋值和连续赋值67
4.3.2寄存器电路建模68
4.3.3组合逻辑建模70
4.3.4双向端口与三态信号建模72
4.3.5mux建模73
4.3.6存储器建模74
4.3.7简单的时钟分频电路75
4.3.8串并转换建模77
4.3.9同步复位和异步复位77
4.3.10使用case和if...else语句建模81
4.3.11可综合的verilog语法子集87
4.4设计实例：cpu读写pld寄存器接口87
4.5小结92
4.6问题与思考92
第5章rtl设计与编码指导93
5.1一般性指导原则93
5.1.1面积和速度的平衡与互换原则94
5.1.2硬件原则103
5.1.3系统原则105
5.2同步设计原则和多时钟处理107
5.2.1同步设计原则107
5.2.2亚稳态109
5.2.3异步时钟域数据同步111
5.3代码风格113
5.3.1代码风格的分类113
5.3.2代码风格的重要性113
5.4结构层次设计和模块划分114
5.4.1结构层次化编码(hierarchicalcoding)114
5.4.2模块划分的技巧(designpartitioning)115
5.5组合逻辑的注意事项116
5.5.1always组合逻辑信号敏感表116
5.5.2组合逻辑反馈环路117
5.5.3脉冲产生器118
5.5.4慎用锁存器(latch)119
5.6时钟设计的注意事项120
5.6.1内部逻辑产生的时钟120
5.6.2ripplecounter121
5.6.3时钟选择121
5.6.4门控时钟121
5.6.5时钟同步使能端122
5.7rtl代码优化技巧123
5.7.1使用pipelining技术优化时序123
5.7.2模块复用与资源共享123
5.7.3逻辑复制125
5.7.4香农扩展运算127
5.8小结129
5.9问题与思考130
第6章如何写好状态机131
6.1状态机的基本概念131
6.1.1状态机是一种思想方法131
6.1.2状态机的基本要素及分类133
6.1.3状态机的基本描述方式133
6.2如何写好状态机134
6.2.1评判fsm的标准134
6.2.2rtl级状态机描述常用的语法135
6.2.3推荐的状态机描述方法138
6.2.4状态机设计的其他技巧151
6.3使用synplifypro分析fsm154
6.4小结157
6.5问题与思考157
第7章逻辑验证与testbench编写159
7.1概述159
7.1.1仿真和验证159
7.1.2什么是testbench160
7.2建立testbench，仿真设计161
7.2.1编写仿真激励162
7.2.2搭建仿真环境172
7.2.3确认仿真结果173
7.2.4编写testbench时需要注意的问题175
7.3实例：cpu接口仿真177
7.3.1设计简介177
7.3.2一种testbench178
7.3.3另外一种testbench182
7.4结构化testbench183
7.4.1任务和函数184
7.4.2总线功能模型(bfm)184
7.4.3测试套具(harness)185
7.4.4测试用例(testcase)185
7.4.5结构化testbench186
7.5实例：结构化testbench的编写188
7.5.1单顶层testbench188
7.5.2多顶层testbench191
7.6扩展verilog的高层建模能力192
7.7小结193
7.8问题与思考193
第8章verilog语义和仿真原理195
8.1从一个问题说起195
8.2电路与仿真196
8.2.1电路是并行的196
8.2.2verilog是并行语言197
8.2.3verilog仿真语义197
8.3仿真原理198
8.3.1verilog的仿真过程198
8.3.2仿真时间202
8.3.3事件驱动203
8.3.4进程203
8.3.5调度204
8.3.6时序控制(timingcontrol)205
8.3.7进程、事件和仿真时间的关系205
8.3.8verilog语言的不确定性205
8.4分层事件队列与仿真参考模型206
8.4.1分层事件队列206
8.4.2仿真参考模型206
8.5时序模型与延时207
8.5.1仿真模型(simulationmodel)207
8.5.2时序模型(timingmodel)208
8.5.3案例分析208
8.5.4在verilog语言中增加延时210
8.6再谈阻塞与非阻塞赋值213
8.6.1本质213
8.6.2案例分析216
8.7如何提高代码的仿真效率219
8.8防止仿真和综合结果不一致219
8.9小结220
8.10问题与思考220
第9章设计与验证语言的发展趋势221
9.1设计与验证语言的发展历程221
9.1.1hdl语言221
9.1.2c/c和私有的验证语言222
9.1.3accellera和ieee的标准化工作222
9.2硬件设计语言的发展现状和走向223
9.2.1hdl的竞争223
9.2.2一些尝试223
9.2.3下一代的verilog语言223
9.2.4systemc224
9.3验证语言的发展现状和走向225
9.3.1验证方法225
9.3.2hvl标准化进程225
9.3.3hvl的新需求226
9.4总结和展望226
9.5小结226
9.6问题与思考226
附录verilog关键字列表227[1]