第一章Verilog HDL设计入门1
第一节Verilog HDL语言概述1
第二节数字电路设计方法简介3
一、布尔方程设计3
二、原理图的设计3
三、硬件描述语言3
第三节Verilog HDL与VHDL对比4
第四节Verilog HDL与C语言对比5
第二章Verilog HDL基本语法9
第一节Verilog HDL注释及格式9
一、注释说明9
二、书写格式9
第二节Verilog HDL标识符9
第三节关键字10
第四节常量11
一、数字常量11
二、字符串13
三、其他13
第五节数据类型13
一、线网类型14
二、寄存器类型15
三、参数型(parameter)16
第六节运算符16
一、算术运算符17
二、等式运算符18
三、关系运算符19
四、逻辑运算符19
五、移位运算符20
六、位运算符20
七、位拼接运算符22
八、缩减运算符22
九、条件运算符23
十、赋值运算符23
第七节运算符的优先级23
第三章Verilog HDL基本语句25
第一节连续赋值语句26
一、缺省连续赋值26
二、缺省线网声明26
第二节单元块语句27
一、顺序块beginend27
二、forkjoin语句28
第三节条件语句30
一、ifelse语句30
二、case语句32
三、条件语句使用要点35
第四节循环语句37
一、forever语句37
二、repeat语句37
三、while语句38
四、for语句38
五、循环语句对比举例39
第五节过程语句40
一、always语句40
二、initial语句42
第四章Verilog HDL的模块化设计和描述方式44
第一节Verilog HDL的模块结构44
一、模块声明44
二、Verilog HDL的模块例化45
三、模块的使用要点46
第二节Verilog HDL的描述方式概述47
第三节结构描述47
一、门级结构描述48
二、单元模块例化的结构描述52
三、UDP的结构描述53
第四节数据流描述56
第五节行为描述57
第六节混合建模58
第五章函数、任务和编译命令59
第一节函数和任务59
一、函数59
二、任务60
第二节任务和函数间的区别62
第三节系统函数和系统任务62
一、$display任务63
二、$write任务64
三、$monitor任务64
四、$strobe任务64
五、$stop任务65
六、$finish任务65
七、$readmemb与$readmemh任务65
八、$random函数66
九、$time函数66
十、$realtime函数67
十一、其他任务67
十二、系统任务和系统函数的使用要点68
第四节编译命令68
一、'define68
二、'undef70
三、'ifdef、'else和'endif70
四、'include70
五、'timescale72
第六章数字电路基础74
第一节组合逻辑74
一、组合逻辑电路概述74
二、几种基本组合逻辑电路设计75
三、几种常用组合电路设计80
四、组合逻辑电路设计要点95
第二节组合逻辑电路中的竞争冒险98
一、竞争冒险98
二、竞争冒险的产生98
三、竞争冒险的避免98
第三节时序逻辑99
一、时序逻辑电路概述99
二、几种基本时序电路设计99
第四节时序逻辑电路中的建立时间和保持时间116
第七章状态机118
第一节状态机概述与分类118
一、状态机概述118
二、状态机分类118
第二节状态机设计要点122
一、有限状态机的设计流程122
二、有限状态机的设计要点122
三、状态机的描述方法124
第八章仿真132
第一节仿真概述132
第二节Testbench133
第三节仿真中的延时描述133
一、延时的表示方法133
二、路径延迟声明specify134
第四节Testbench设计与使用要点134
一、Testbench设计134
二、Testbench使用要点137
第五节仿真实例138
一、 组合逻辑电路仿真实例138
二、 时序电路仿真实例141
第九章EDA的设计流程及设计工具145
第一节EDA的设计实现流程145
一、设计输入145
二、综合146
三、功能仿真146
四、布局布线146
五、时序仿真146
六、编程下载146
七、在线调试146
八、板级测试146
第二节EDA常用设计工具汇总147
一、常用工具汇总一览表147
二、HDL前端输入与系统管理软件147
三、HDL逻辑综合软件148
四、仿真软件148
第三节推荐工具——文本编辑器gVim148
一、gVim概述148
二、下载和安装149
三、gVim 7.3的界面和功能介绍150
四、gVim常用快捷键和功能152
第四节推荐工具——ModelSim仿真工具154
一、ModelSim概述154
二、安装154
三、界面介绍——菜单栏155
四、界面介绍——工具栏160
五、界面介绍——工作区160
六、界面介绍——控制台160
七、仿真流程161
第十章Verilog HDL设计经验166
第一节数据类型定义规则166
一、模块内部定义的变量数据类型定义规则166
二、模块端口数据类型定义规则166
第二节可综合的基础语法169
一、可综合的Verilog HDL结构169
二、可综合设计的要点170
第三节ifelse与case语句的使用分析170
第四节阻塞赋值与非阻塞赋值分析174
一、“=”阻塞赋值174
二、“
第十一章Verilog设计实例198
第一节语法练习实例198
一、简单组合逻辑电路设计198
二、简单时序电路设计199
三、用always块设计组合逻辑电路199
四、简单状态机设计200
第二节Verilog HDL入门设计实例201
一、点亮LED灯设计201
二、闪烁LED灯设计202
三、流水灯设计202
四、按键控制不同灯的亮灭设计203
五、有源蜂鸣器电路设计205
六、数码管动态扫描显示设计206
七、步进电机控制电路设计209
八、数字秒表设计211
九、抢答器设计216
第三节Verilog HDL进阶设计实例225
一、串口通信225
二、红外遥控进阶实验设计237
三、利用DS1302芯片进行电子表设计247
四、利用18B20芯片进行简易温度计设计265
参考文献286