新書推薦:
《
紫云村(史杰鹏笔下大唐小吏的生死逃亡,新历史主义小说见微之作,附赠5张与小说内容高度契合的宣纸彩插)
》
售價:NT$
449.0
《
现代吴语的研究(中华现代学术名著3)
》
售價:NT$
296.0
《
天下的当代性:世界秩序的实践与想象(新版)
》
售價:NT$
352.0
《
德国天才4:断裂与承续
》
售價:NT$
500.0
《
妈妈的情绪,决定孩子的未来
》
售價:NT$
194.0
《
推拿纲目
》
售價:NT$
1836.0
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:NT$
1112.0
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:NT$
347.0
|
編輯推薦: |
(1)第1版出版以来,获得读者的广泛欢迎,根据读者的宝贵意见和建议,以及他们的具体应用的情况,进行改版。 (2)根据用户建议、结合相关企业应用的需求和高校教学需求修订了第1版内容。相对第1版本,本书删减了一些使用频率较低的语法,减轻了读者掌握语法的难度,同时增加了一些实例,使读者有更多可以学习和揣摩的范例,能更好地理解代码的设计。
|
內容簡介: |
Verilog HDL是一种使用广泛的硬件描述语言,目前在国内无论是集成电路还是嵌入式设计的相关专业都会使用到这种硬件描述语言。市面上介绍Verilog HDL的教材非常广泛,各有不同的偏重。在第1版广泛应用的基础上,吸收了众多读者的宝贵建议,大幅完善了第2版内容。本书着重从设计角度入手,每章都力求让读者掌握一种设计方法,能够利用本章知识进行完整的设计,从模块的角度逐步完成对Verilog HDL语法的学习,从而在整体上掌握Verilog HDL语法。为了达到这个目的,每章中都会给出使用本章知识完成的实例,按照门级、数据流级、行为级、任务和函数、测试模块、可综合设计和完整实例的顺序向读者介绍Verilog HDL的语法和使用方式。书中出现的所有代码均经过仿真,力求准确,另外配套有书中所有实例源文件和实例操作的视频讲解。
|
關於作者: |
作者团队主要负责人谢龙汉,华南理工大学机械与汽车工程学院,副院长,教授。2002年毕业于浙江大学过程装备与控制工程专业本科,在浙江大学华工过程机械研究所取得硕士学位,之后在广州本田汽车有限公司研发中心工作过两年,2010年获得香港中文大学机械与自动化工程系的博士学位。国内外学术期刊上发表30多篇学术论文,写作经验丰富,作品技术含量高,实用性强。
|
目錄:
|
目录
第1章Verilog HDL入门简介1
1.1集成电路设计流程简介1
1.2数字电路设计范例3
1.3Verilog HDL建模范例5
1.4两种硬件描述语言9
第2章Verilog HDL门级建模10
2.1门级建模范例10
2.2门级建模基本语法12
2.2.1模块定义12
2.2.2端口声明13
2.2.3门级调用14
2.2.4模块实例化17
2.2.5内部连线声明20
2.3MOS开关与UDP21
2.4层次化设计22
2.5应用实例22
实例2-14位全加器的门级建模22
实例2-22-4译码器的门级建模25
实例2-3主从D触发器的门级建模27
实例2-41位比较器的门级建模28
2.6习题30
第3章Verilog HDL数据流级建模31
3.1数据流级建模范例31
3.2数据流级建模基本语法32
3.3操作数33
3.3.1数字33
3.3.2参数35
3.3.3线网37
3.3.4寄存器38
3.4操作符39
3.4.1算术操作符39
3.4.2按位操作符39
3.4.3逻辑操作符40
3.4.4关系操作符41
3.4.5等式操作符41
3.4.6移位操作符42
3.4.7拼接操作符42
3.4.8缩减操作符43
3.4.9条件操作符43
3.4.10操作符优先级44
3.5应用实例45
实例3-14位全加器的数据流级建模45
实例3-22-4译码器的数据流级建模47
实例3-3主从D触发器的数据流级建模49
实例3-44位比较器的数据流级建模50
3.6习题51
第4章Verilog HDL行为级建模53
4.1行为级建模范例53
4.2initial结构和always结构56
4.2.1initial结构56
4.2.2always结构58
4.3顺序块和并行块61
4.3.1顺序块61
4.3.2并行块62
4.3.3块的嵌套63
4.4if语句64
4.5case语句67
4.6循环语句69
4.6.1while循环69
4.6.2for循环70
4.6.3repeat循环71
4.6.4forever循环71
4.7过程性赋值语句72
4.7.1阻塞性赋值语句72
4.7.2非阻塞性赋值语句72
4.8应用实例74
实例4-14位全加器的行为级建模74
实例4-2简易ALU电路的行为级建模75
实例4-3下降沿触发D触发器的行为级建模77
实例4-4十进制计数器的行为级建模78
4.9习题80
第5章任务、函数与编译指令81
5.1任务81
5.1.1任务的声明和调用82
5.1.2自动任务84
5.2函数86
5.2.1函数的声明和调用87
5.2.2任务与函数的比较89
5.3系统任务和系统函数89
5.3.1显示任务90
5.3.2监视任务93
5.3.3仿真控制任务94
5.3.4随机函数95
5.3.5文件控制任务96
5.3.6值变转储任务100
5.4编译指令102
5.4.1`define102
5.4.2`include104
5.4.3`timescale105
5.5完整的module参考模型108
5.6应用实例109
实例5-1信号同步任务109
实例5-2阶乘任务110
实例5-3可控移位函数111
实例5-4偶校验任务112
实例5-5算术逻辑函数114
5.7习题115
第6章Verilog HDL测试模块117
6.1测试模块范例117
6.2时钟信号119
6.3复位信号120
6.4测试向量122
6.5响应监控123
6.6仿真中对信号的控制127
6.7代码覆盖129
6.8应用实例130
实例6-1组合逻辑的测试模块130
实例6-2时序逻辑的测试模块132
实例6-3除法器的测试模块135
6.9习题138
第7章可综合模型设计139
7.1逻辑综合过程139
7.2延迟142
7.3再谈阻塞赋值与非阻塞赋值148
7.4可综合语法155
7.5代码风格157
7.5.1多重驱动问题157
7.5.2敏感列表不完整158
7.5.3分支情况不全158
7.5.4组合和时序混合设计159
7.5.5逻辑简化160
7.5.6流水线思想160
7.6应用实例164
实例7-1SR锁存器延迟模型164
实例7-2超前进位加法器165
实例7-3移位除法器模型169
7.7习题174
第8章有限状态机设计175
8.1有限状态机简介175
8.2两种红绿灯电路的状态机模型176
8.2.1moore型红绿灯176
8.2.2mealy型红绿灯181
8.3深入理解状态机183
8.3.1一段式状态机184
8.3.2两段式状态机188
8.3.3三段式状态机190
8.3.4状态编码的选择198
8.4应用实例199
实例8-1独热码状态机199
实例8-2格雷码状态机203
实例8-3序列检测模块207
8.5习题211
第9章常见功能电路的HDL模型212
9.1锁存器与触发器212
9.2编码器与译码器220
9.3寄存器223
9.4计数器228
9.5分频器232
9.6乘法器238
9.7存储单元246
9.8习题250
第10章完整的设计实例251
10.1异步FIFO251
10.1.1异步FIFO的介绍与整体结构251
10.1.2亚稳态的处理253
10.1.3空满状态的判断254
10.1.4子模块设计257
10.1.5整体仿真结果265
10.2三角函数计算器268
10.2.1设计要求的提出268
10.2.2数据格式268
10.2.3算法的选择与原理结构269
10.2.4确定总体模块272
10.2.5内部结构的划分272
10.2.6分频器模块274
10.2.7控制模块274
10.2.8迭代设计模块279
10.2.9功能仿真与时序仿真293
10.3简易CPU模型296
10.3.1教学模型的要求296
10.3.2指令格式的确定297
10.3.3整体结构划分298
10.3.4控制模块设计299
10.3.5其余子模块设计304
10.3.6功能仿真与时序仿真308
第11章实验312
实验一简单组合逻辑电路设计(学生版)312
实验一辅导版314
实验二行为级模型设计(学生版)319
实验二辅导版321
实验三利用FPGA验证设计功能(学生版)326
实验三辅导版327
实验四任务与函数的设计(学生版)332
实验四辅导版334
实验五流水线的使用(学生版)337
实验五辅导版339
实验六信号发生器设计(学生版)342
实验六辅导版344
实验七有限状态机的设计(学生版)347
实验七辅导版348
第12章课程设计356
选题一出租车计费器356
选题二智力抢答器362
选题三点阵显示369
选题四自动售货机373
选题五篮球24秒计时379
选题六乒乓球游戏电路384
选题七CRC检测398
选题八堆栈设计404
选题九数字闹钟410
选题十汉明码编译码器418
附录A课程测试样卷424
附录B习题及样卷答案429
|
內容試閱:
|
再 版 前 言
Verilog HDL是一种使用非常广泛的硬件描述语言,可以使用在电路和系统级的设计上,也可以作为嵌入式开发的编程语言之一。随着集成电路产业在我国的蓬勃发展,HDL语言的教学工作也在很多高校展开,市面上也有很多国内外的优秀教材。
作者从事Verilog HDL课程教学多年,使用过十余种本版和引进版的教材,然而在教学课程结束之后,学生反馈回来的信息,往往是难以应用。造成这种情况的原因很多,一是部分教材过于偏重语法细节,在一个细小的语法上纠结太多,使学生陷入了语法大于一切的迷途;二是在学习中与实际电路脱节,写出的代码只适合仿真,不知硬件描述语言最终面向的对象是硬件,只能仿真的代码用途有限;三是缺少直观的认识,对编写的代码、模块等只有纸面上的了解,不去追究其内部的细节。这样学习Verilog HDL语言之后,效果和没学之前相比,只是多认识了一些语法而已。
自本书第1版2014年出版以来,获得读者的广泛欢迎,已多次重印,并且,很多读者来信介绍他们具体应用Verilog HDL的情况,对本书提出了很多宝贵意见和建议。在此基础上,我们根据用户建议,结合相关企业应用的需求和高校教学需求修订了第1版内容。相对于第1版本,本书删减了一些使用频率较低的语法,降低了读者掌握语法的难度,同时增加了一些实例,使读者有更多可以学习和揣摩的范例,能更好地理解代码的设计。
本书在简单地介绍了数字电路和Verilog HDL的相互关系之后,比较简洁地介绍了基本语法,在介绍语法时给出了范例,以使语义明了,并且为每章出现的语法匹配了综合实例,使读者进一步加深认识。而在介绍语法之后,重点内容放在如何编写可综合的设计模块上,使读者最后编写的模块可以在硬件电路上实现,本书按如下结构进行展开。
第1章,Verilog HDL入门简介。主要回顾数字电路的设计过程,并介绍使用Verilog HDL进行电路设计的基本流程和简单示例,使读者有一个初步的了解。
第2章,Verilog HDL门级建模。介绍Verilog HDL门级建模的基本语法,主要讲解基本逻辑门的使用方法和层次化建模思想,尝试设计一个可以执行的模块,并补充了必需的语法,在章节的最后给出了四个门级建模的实例,供读者参考。
第3章,Verilog HDL数据流级建模。介绍数据流级建模的相关语法,主要是一些操作数的定义和操作符的使用方法,这些操作数和操作符是Verilog HDL的建模基础,在实际设计中使用频繁,所以在这些语法中给出了很多小例子,在学习时要注意例子间的细小差别。
第4章,Verilog HDL行为级建模。行为级建模,也是进行Verilog HDL设计的基本语法,主要介绍initial和always结构在电路中的使用情况,以及一些语句,如if语句、case语句、for语句和循环语句,讲解顺序块和并行块的适用情况,并介绍命名块和块的禁用语法,最后通过几个实例,用这些语法进行电路设计。
第5章,任务、函数与编译指令。函数和任务是Verilog HDL中的重要组成部分,它们是一些具有实际功能的代码片段,类似于子程序,可以在Verilog HDL代码中直接调用,非常灵活。另外,编译指令是仿真中的重要指令,也需要理解其用法。
第6章,Verilog HDL测试模块。从仿真测试的角度编写测试模块,力图用多种方式生成不同信号,给出同一种信号的多种表达形式,开阔读者的设计思路,使读者能够按照自己习惯的思路来编写测试信号,而不是局限在某一种写法上。
第7章,可综合模型设计。从本章开始,所有的模块都是可以综合成最终电路的,因为Verilog HDL语言就是要编写可以生成实际电路的模块代码。可综合模型设计中需要注意许多问题,如阻塞和非阻塞赋值、多驱动问题、敏感列表问题等,还有一些语法根本不可以综合,本章也一一列出。最后介绍了流水线的基本思想,并给出了一个雏形。
第8章,有限状态机设计。状态机的设计是时序电路设计的核心,越大型的时序电路状态机就越显得重要。本章不仅介绍了moore型和mealy型状态机的区别,给出了一段式、两段式和三段式的写法,而且从硬件电路的角度对状态机不同写法得到的电路信号变化进行解释,使读者更明白所写模块变成电路后的工作状况。
第9章,常见功能电路的HDL模型。本章一方面让读者对这些功能电路有一定的了解,另一方面也是希望读者能在这些例子中进一步学习Verilog HDL编写模块的设计方法。
第10章,完整的设计实例。本章有三个综合实例,从设计的提出开始,到最后的时序仿真结束,完成前端设计的基本流程,使读者有一个整体的流程认知。
第11章,实验。本章有七个实验,实验部分采用了比较新颖的方式,每个实验都有一个主题,在完成这个主题的过程中,需要读者编写一些代码,同时也给出了参考代码。读者一方面可以通过这些实验来完成一些实例的设计,另一方面在设计中也可以进一步掌握实验中涉及的语法。每个实验都分成了学生版和辅导版两个部分,学生版可以直接在实验中给学生使用,辅导版则可以给教师作为参考或学生自学辅导使用。
第12章,课程设计。本章是一些规模中等的设计模块,每个题目都给出了设计要求、实现代码和仿真结果,部分题目还给出了引脚配置,每个题目的最后都提出了一些问题,还给出了功能扩展建议,当学生觉得题目简单想要加大难度时可以使用这些扩展功能。
附录A,课程测试样卷。给出了测试题,可以检查读者的掌握情况。
附录B,习题及样卷答案。给出了习题和测试题的答案,以便参考。
在学习Verilog HDL的过程中,一定要多编写代码,多进行仿真,这样可以帮助读者更好地掌握语法和设计思想。另外,如果有条件的话,建议使用一些FPGA或CPLD的开发板,把设计的模块用开发板实现,对读者的学习非常有益。
本书第1~6章和测试题部分由哈尔滨理工大学于斌编写,第7~12章由哈尔滨理工大学黄海编写。参与本书编写和视频开发的人员还有谢龙汉、蔡思祺、林伟、魏艳光、林木议、王悦阳、林伟洁、林树财、郑晓、吴苗、李翔、朱小远、唐培培、耿煜、尚涛、邓奕、张桂东、鲁力等。由于时间仓促,书中疏漏之处,请读者批评指正,可通过电子邮件yubin@hrbust.edu.cn与我们交流。本书配套素材光盘内容。请在华信教育资源网(www.hxedu.com.cn)的本书页面下载,或与本书作者和编辑联系。
编著者
|
|