当前位置:首页 > 计算机网络 > 行业软件及应用 > Verilog HDL数字系统设计及实践
出版社:电子工业
出版日期:2011-1
ISBN:9787121120213
作者:刘睿强//童贞理//尹洪剑
页数:213页
作者简介
《Verilog HDL数字系统设计及实践》介绍硬件描述语言Verilog HDL及电路设计方法,共11章,主要内容包括: Verilog层次化设计、Verilog基本语法、Verilog行为描述、组合逻辑建模、时序逻辑建模、为级仿真模型建模、各层次Verilog描述形式与电路建模、任务和函数、编译预处理、Verilog设计与综合中的陷阱、异步设计与同步设计的时序分析。《Verilog HDL数字系统设计及实践》配套实验,提供电子课件和习题参考答案。
《Verilog HDL数字系统设计及实践》可作为高等学校电子信息类相关课程教材,也可供相关工程技术人员学习参考。
书籍目录
第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
编辑推荐
《Verilog HDL数字系统设计及实践》是新编电气与电子信息类规划教材。
前言
展,越来越多的系统设计开始基于现场可编程门阵列(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章 异步设计与同步设计的时序分析。
章节摘录
插图:在定义端口时,各个端口的定义顺序没有任何限制,可先定义输出端口,再定义输入端口。在用普通风格进行端口定义时,端口声明列表和端口定义的排列顺序也可以不同。1.2.3模块实例化在例1.1中提到了模块的实例化。模块定义中是不允许嵌套定义模块的,模块之间的相互调用只能通过实例化来实现。定义好的模块可以视为一个模板,使用该模板可以创建一个对应的实际对象。当一个模块被调用时,Verilog HDL语言可以根据模板创建一个唯一的模块对象,每个对象都有自己的名字、参数、端口连接关系等。使用定义好的模板创建对象的过程称为实例化(Instantiation),创建的对象称为实例(Instance)。每个实例必须有唯一的名字。图1.3所示为对一位加法器进行多次实例化来构建四位加法器的示意图。通过多次实例化相同的模块,实际上在电路中设计了4个相同的1位加法器,只是它们在电路中的名字和连接关系各不相同。对己定义好的模块进行实例化引用的语法格式如下:模块名 实例名(端口连接关系列表);在实例化时,可以用两种方式书写端口连接关系列表。第一种方式是命名端口连接方式,其语法格式为模块名 实例名(.端口名(连接线1),.端口名2(连接线2),…);用命名端口的方式进行连接,每个连接关系用一个点开头,然后是需要进行连接的模块的端口名,端口名后面在括号中指定该端口需要连接到当前层次模块中的哪个信号。
图书封面