
本书介绍硬件描述语言Verilog HDL及电路设计方法,共11章,主要内容包括: Verilog层次化设计、Verilog基本语法、Verilog行为描述、组合逻辑建模、时序逻辑建模、为级仿真模型建模、各层次Verilog描述形式与电路建模、任务和函数、编译预处理、Verilog设计与综合中的陷阱、异步设计与同步设计的时序分析。本书配套实验,提供电子课件和习题参考答案。
前 言 随着超大规模集成电路(VLSI)技术和计算机辅助设计(CAD)技术的发展,越来越多的系统设计开始基于现场可编程门阵列(FPGA)。采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低功耗,提高系统的可靠性。今天,FPGA正在以惊人的速度发展。一个芯片可以包含数百万个门,而且越来越多的FPGA内可以嵌入各种档次的CPU,出现了SOPC系统,它代表着嵌入式系统发展的新方向。芯片设计工作的承担者正由传统的专业芯片设计机构向个人转变,显然,谁能早一步掌握这门技术,谁就能在激烈的竞争中处于更加有利的位置。而Verilog HDL硬件描述语言正是掌握这门技术的必备基础之一,Verilog HDL硬件描述语言是一种以文本形式来描述数字系统硬件结构和行为的语言,是目前世界上最流行的一种硬件描述语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 本书共分11章,内容分别为:第1章 Verilog HDL层次化设计;第2章 Verilog HDL基本语法;第3章 Verilog HDL行为描述;第4章 组合逻辑建模;第5章 时序逻辑建模;第6章 行为级仿真模型建模;第7章 各层次Verilog HDL描述形式与电路建模;第8章 任务和函数;第9章 编译预处理;第10章 Verilog HDL设计与综合中的陷阱;第11章 异步设计与同步设计的时序分析。 通过学习本书,读者可以掌握硬件描述语言Verilog HDL的语法结构,掌握组合逻辑和时序逻辑电路的设计方法,掌握Modelsim和Debussy仿真调试工具的应用及Synplify综合工具的应用,了解task和function等的高级语法,深入理解“自顶向下”的设计思想,具备设计可综合RTL的能力。本课程配套的实验提供了创建可综合RTL代码的实践基础,其中涵盖了设计流程的方方面面。实验着重于让学生写出能最优地推断出高性能可靠电路的代码。 本书可作为高等学校电子信息工程技术、应用电子技术、通信工程等专业学生的教材,同时可供相关工程技术人员学习参考。本课程的学习应在修完电路分析、数字电子技术、模拟电子技术等课程之后进行。本书内容丰富,图文并茂,文字简练流畅,注重实际操作,阐述方式新颖,具有较强的实用性和可操作性。 本书提供配套实验、电子课件和习题解答,请登录华信教育资源网http://www.hxedu.com.cn注册下载。 本书第1~9章由刘睿强主笔,第10章由童贞理主笔,第11章由尹洪剑主笔,参与本书编写的人员还有王荣辉、张林生、毛朝庆、许磊、彭华、冯静等。企业专家王挺等提出了诸多修改意见,电子工业出版社的工作人员为本书的出版付出了辛勤的劳动。所有这些,都是本书得以顺利出版的保障,在此一并向他们表示衷心的感谢! 当然,现代EDA技术飞速发展,相应的教学内容和教学方法也在不断改进,其中一定还有许多问题值得深入探讨。由于编者水平有限,时间仓促,书中难免有缺点和不足之处,恳请读者批评指正! 作 者
第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
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0120210