Verilog HDL程序设计教程PDF格式文档图书下载
第1章 EDA技术综述 1
本章内容简介 1
1.1 引言 1
1.2 EDA技术及其发展 2
1.3 设计方法与设计技术 3
1.3.1 Top-down设计 3
1.3.2 Bottom-up设计 5
1.3.3 IP复用技术与SOC 5
1.4 EDA设计的实现 6
1.5 硬件描述语言 7
思考与练习 9
第2章 EDA设计软件与设计流程 10
本章内容简介 10
2.1 EDA软件工具概述 10
2.1.1 集成的CPLD/FPGA开发工具 10
2.1.2 输入工具(Design Input Tools) 11
2.1.3 逻辑综合工具(Synthesis Tools) 12
2.1.4 仿真工具(Simulation Tools) 12
2.1.5 IC版图工具 13
2.1.6 其他EDA工具 14
2.2 EDA设计的流程 14
2.2.1 输入(Design Input) 14
2.2.2 综合(Synthesis) 15
2.2.3 适配(Fitter) 16
2.2.4 仿真(Simulation) 16
2.2.5 编程(Program) 17
思考与练习 17
第3章 Verilog HDL设计初步 18
本章内容简介 18
3.1 Verilog语言的历史及与C语言的比较 18
3.2 完整的Verilog HDL设计 20
3.2.1 4位全加器和4位计数器 20
3.2.2 综合 21
3.2.3 仿真 22
3.3 Verilog模块基本结构剖析 27
3.3.1 Verilog模块的结构 27
3.3.2 逻辑功能定义 29
思考与练习 30
第4章 Verilog HDL语言要素 32
本章内容简介 32
4.1 词法 32
4.1.1 空白符和注释 32
4.1.2 数字与字符串(Numbers & Strings) 33
4.1.3 标识符(Identifiers) 35
4.1.4 运算符(Operators) 36
4.1.5 关键字(Keywords) 36
4.2 数据类型 36
4.2.1 连线型(Net Type) 36
4.2.2 寄存器型(Register Type) 38
4.2.3 parameter 38
4.3 寄存器和存储器 39
4.3.1 寄存器 39
4.3.2 存储器 39
4.4 运算符 40
4.4.1 运算符 40
4.4.2 运算符的优先级 44
思考与练习 44
第5章 Verilog HDL行为语句 45
本章内容简介 45
5.1 概述 45
5.2 过程语句 46
5.2.1 always过程语句 46
5.2.2 initial语句 50
5.3 块语句 51
5.3.1 串行块begin-end 51
5.3.2 并行块fork-join 52
5.4 赋值语句 53
5.4.1 持续赋值与过程赋值 53
5.4.2 阻塞赋值与非阻塞赋值 55
5.5 条件语句 56
5.5.1 if-else语句 56
5.5.2 case语句 58
5.5.3 条件语句使用要点 60
5.6 循环语句 61
5.6.1 for语句 61
5.6.2 repeat语句 62
5.6.3 while和forever语句 63
5.7 编译向导 65
5.7.1 宏替换`define 66
5.7.2 文件包含`include 66
5.7.3 条件编译`ifdef、`else、`endif 67
思考与练习 68
第6章 进程、任务与函数 69
本章内容简介 69
6.1 进程(process) 69
6.1.1 进程 69
6.1.2 进程间的通信 70
6.2 任务(task) 71
6.3 函数(function) 74
6.3.1 函数 74
6.3.2 任务与函数的区别 79
6.4 顺序执行与并发执行 79
6.5 Verilog-2001新增语法结构简介 81
思考与练习 84
第7章 Verilog HDL的描述风格 85
本章内容简介 85
7.1 概述 85
7.2 结构描述 86
7.2.1 Verilog HDL内置门元件 86
7.2.2 门级结构描述 89
7.3 行为描述方式 90
7.4 数据流描述方式 91
7.5 不同描述风格的例子 93
7.5.1 半加器 93
7.5.2 1位全加器 95
7.5.3 4位全加器 98
思考与练习 100
第8章 仿真 101
本章内容简介 101
8.1 概述 101
8.2 系统任务与系统函数 102
8.2.1 $display与$write 102
8.2.2 $monitor与$strobe 103
8.2.3 $time与$realtime 104
8.2.4 $finish与$stop 105
8.2.5 $readmemh与$readmemb 105
8.2.6 $random 106
8.2.7 文件输出 106
8.3 用户自定义元件(UDP) 107
8.3.1 组合电路UDP元件 107
8.3.2 时序逻辑UDP元件 110
8.3.3 UDP元件缩记符 111
8.4 延时模型的表示 112
8.4.1 时间标尺定义`timescale 112
8.4.2 延时的表示方法 113
8.4.3 延时说明块(specify块) 114
8.5 测试平台(Test Bench) 114
8.5.1 TestBench 114
8.5.2 测试程序的编写 116
8.6 仿真示例 119
8.6.1 组合电路的仿真 119
8.6.2 时序电路的仿真 124
思考与练习 125
第9章 Verilog HDL设计进阶 126
本章内容简介 126
9.1 基本组合电路的设计 126
9.1.1 简单门电路 126
9.1.2 编译码器 129
9.1.3 数据选择器 132
9.1.4 用组合电路实现的ROM 133
9.2 基本时序电路的设计 134
9.2.1 D触发器与JK触发器 134
9.2.2 锁存器与寄存器 136
9.2.3 计数器 139
9.2.4 ROM/RAM模块 140
9.2.5 串/并转换 141
9.3 简单的微处理器 142
9.3.1 设计实现 142
9.3.2 仿真 143
9.4 乘累加器(MAC)的设计 144
思考与练习 147
第10章 设计方法与设计技巧的探讨 148
本章内容简介 148
10.1 可综合的设计技术的讨论 148
10.1.1 可综合的Verilog HDL结构 148
10.1.2 可综合设计的要点 150
10.2 流水线设计技术(Pipeline Design) 151
10.3 资源共享(Resource Sharing) 155
10.4 有限状态机(FSM)设计 157
10.4.1 基于状态机的设计 157
10.4.2 频率计控制器设计举例 160
10.4.3 几点讨论 162
10.5 多层次结构电路的设计 164
10.5.1 图形与文本混合设计 164
10.5.2 文本设计 165
10.6 阻塞与非阻塞赋值使用要点 167
10.6.1 进程的设计 167
10.6.2 阻塞赋值与非阻塞赋值 168
10.6.3 应用要点 171
10.7 片内存储器的使用 172
10.7.1 片内存储器 172
10.7.2 设计举例 173
10.8 如何消除毛刺 175
10.8.1 毛刺的产生 176
10.8.2 毛刺的消除 177
思考与练习 179
第11章 Verilog HDL综合设计实践 180
本章内容简介 180
11.1 数字跑表 180
11.1.1 设计输入与编译 180
11.1.2 仿真 183
11.2 4位数字频率计 183
11.2.1 功能与原理 183
11.2.2 设计实现 184
11.3 交通灯控制器 187
11.3.1 功能要求 187
11.3.2 设计实现 188
11.4 乐曲演奏电路 191
11.4.1 音调的控制 192
11.4.2 音长的控制 193
11.4.3 乐曲演奏电路源程序 193
11.5 自动售饮料机的设计 197
11.6 实用多功能数字钟 199
11.6.1 功能 200
11.6.2 源程序 200
11.7 计费器设计 205
思考与练习 209
第12章 算法与复杂逻辑的实现 210
本章内容简介 210
12.1 加法器设计 210
12.1.1 级连加法器 211
12.1.2 并行加法器 212
12.1.3 超前进位加法器 212
12.1.4 流水线加法器 219
12.2 乘法器设计 219
12.2.1 并行乘法器 219
12.2.2 移位相加乘法器 220
12.2.3 查找表乘法器 220
12.2.4 加法树乘法器 223
12.3 FIR滤波器的设计 225
12.3.1 FIR滤波器的结构 225
12.3.2 抽头系数编码 226
12.3.3 源代码及仿真 227
12.4 数字相关器 231
12.5 信道编译码器 233
12.5.1 线性分组码编译码器 233
12.5.2 循环码编译码器 237
12.6 CRC校验码 241
思考与练习 244
第13章 EDA软件使用指南 245
本章内容简介 245
13.1 概述 245
13.2 Synplify Pro使用指南 246
13.2.1 Synplify Pro的性能特点 247
13.2.2 Synplify Pro使用指南 248
13.2.3 Synplify Pro与MAX+PLUS II的接口 251
13.3 Synplify使用指南 253
13.3.1 Synplify的功能特点 253
13.3.2 Synplify使用举例 254
13.4 ModelSim使用指南 256
13.4.1 ModelSim功能仿真 257
13.4.2 ModelSim时序仿真 262
13.5 ispLEVER使用指南 264
13.5.1 ispLEVER的特点 264
13.5.2 基于ispLEVER的Verilog设计 264
13.6 MAX+PLUS II使用指南 268
13.7 Quartus II使用指南 274
13.7.1 创建工程文件 274
13.7.2 编译 278
13.7.3 仿真 281
13.7.4 Synplify Pro与Quartus II的接口 284
13.8 结束语 285
附录A Verilog HDL(IEEE Std 1364-1995)关键字 286
附录B Synplify Pro/Synplify可综合的Verilog结构 287
附录C MAX+PLUS II软件支持的Verilog结构 288
附录D 形式化句法定义 289
附录E 附带光盘内容及说明 304
参考文献 308
- 《C语言程序设计教程》谭浩强等编著 1992
- 《C语言程序设计实验教程》鲁云平,周建丽,娄路编著 2011
- 《C语言程序设计教程》谭浩强,张基温,唐永炎编著 1998
- 《C程序设计实验与实践教程》刘光蓉编著 2011
- 《Visual FoxPro程序设计与应用实践教程》孔庆彦等编著 2007
- 《C语言程序设计教程习题与上机指导》王树武主编 2001
- 《C程序设计习题解析与实验教程》刘达明,甘玲,汪建编著 2012
- 《C语言程序设计教程习题与上机指导 第2版》王树武主编;刘桂山,陈朔鹰,姚分喜编著 2004
- 《C++程序设计习题解答与考试指导》王继民,戚涌,王新光编著 2006
- 《C++程序设计实践教程》吴乃陵,李海文编著 2006
- 《Verilog HDL程序设计教程》王金明编著;徐志军主审 2004
- 《EDA技术与Verilog设计 第2版》王金明,周顺编著;徐志军主审 2019
- 《EDA技术与VHDL设计 第2版》徐志军,王金明,尹延辉,徐光辉,苏勇编著 2015
- 《EDA技术与Verilog HDL设计》王金明,徐志军,苏勇编著 2013
- 《EDA技术与VHDL设计》徐志军,王金明,尹廷辉等编著 2009
- 《MATLAB实用教程》徐金明主编;徐金明,张孟喜,丁涛编著 2005
- 《实施汽车维护作业》赵计平主编;张晋源,陈磊,江洪副主编;金明,徐小龙,唐腾健参编;简晓春主审 2011
- 《MATLAB应用基础》徐金明主编;徐金明,刘芳,周亦骏编著 2012
- 《易语言入门与提高》霍玲玲,徐文军,张晓华,王成武,赵云青,镇维,张志军编著 2012
- 《管理学原理与应用》王西娅主编;唐学学副主编;王西娅,唐学学,徐波峰等编委;徐波峰主审 2015
- 《最高人民法院新闻发布会实录 2012=records of supreme people's court press conferences 2012》 2222
- 《中华人民共和国国家标准 GB/T16623-1996 压配式实心轮胎=Pressed-on solid tyres》 2222
- 《中华人民共和国国家标准 GB/T16622-1996 压配式实心轮胎系列=Series of pressed-on solid tyres》 2222
- 《中华人民共和国国家标准 GB/T16623-2008 压配式实心轮胎技术规范=Technical specification of Pressed-on solid tyres》 2222
- 《中华人民共和国国家标准 GB/T21692-2008 数控压力机、液压机用模拟负荷测试系统=Analog load testing system for CNC presses and hydra》 2222
- 《THE GOVERNMENT/PRESS CONNECTION PRESS OFFICERS AND THEIR OFFICES》STEPHEN HESS 1984
- 《PRESS》POLITICS & PUBLIC OPINION IN BIHAR 1912-1947 2010
- 《Press law》Robin Callender Smith. 1978
- 《SUING THE PRESS》RODNEY A.SMOLLA 1986
- 《THE PRESS AND AMERICA》 2222