基本信息
书名:Verilog HDL数字系统设计及仿真(第2版)
定价:69.00元
作者:于斌
出版社:电子工业出版社
出版日期:2018-01-01
ISBN:9787121330100
字数:
页码:
版次:1
装帧:平装-胶订
开本:16开
商品重量:0.4kg
编辑推荐
(1)版出版以来,获得读者的广泛欢迎,根据读者的宝贵意见和建议,以及他们的具体应用的情况,进行改版。 (2)根据用户建议、结合相关企业应用的需求和高校教学需求修订了版内容。相对版本,本书删减了一些使用频率较低的语法,减轻了读者掌握语法的难度,同时增加了一些实例,使读者有更多可以学习和揣摩的范例,能更好地理解代码的设计。
内容提要
Verilog HDL是一种使用广泛的硬件描述语言,目前在无论是集成电路还是嵌入式设计的相关专业都会使用到这种硬件描述语言。市面上介绍Verilog HDL的教材非常广泛,各有不同的偏重。 在版广泛应用的基础上,吸收了众多读者的宝贵建议,大幅完善了第2版内容。本书着重从设计角度入手,每章都力求让读者掌握一种设计方法,能够利用本章知识进行完整的设计,从模块的角度逐步完成对Verilog HDL语法的学习,从而在整体上掌握Verilog HDL语法。为了达到这个目的,每章中都会给出使用本章知识完成的实例,按照门级、数据流级、行为级、任务和函数、测试模块、可综合设计和完整实例的顺序向读者介绍Verilog HDL的语法和使用方式。书中出现的所有代码均经过仿真,力求准确,另外配套有书中所有实例源文件和实例操作的视频讲解。
目录
目 录
章 Verilog HDL入门简介1
1.1 集成电路设计流程简介1
1.2 数字电路设计范例3
1.3 Verilog 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.3 MOS开关与UDP21
2.4 层次化设计22
2.5 应用实例22
实例2-1—4位全加器的门级建模22
实例2-2—2-4译码器的门级建模25
实例2-3—主从D触发器的门级建模27
实例2-4—1位比较器的门级建模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-1—4位全加器的数据流级建模45
实例3-2—2-4译码器的数据流级建模47
实例3-3—主从D触发器的数据流级建模49
实例3-4—4位比较器的数据流级建模50
3.6 习题51
第4章 Verilog HDL行为级建模53
4.1 行为级建模范例53
4.2 initial结构和always结构56
4.2.1 initial结构56
4.2.2 always结构58
4.3 顺序块和并行块61
4.3.1 顺序块61
4.3.2 并行块62
4.3.3 块的嵌套63
4.4 if语句64
4.5 case语句67
4.6 循环语句69
4.6.1 while循环69
4.6.2 for循环70
4.6.3 repeat循环71
4.6.4 forever循环71
4.7 过程性赋值语句72
4.7.1 阻塞性赋值语句72
4.7.2 非阻塞性赋值语句72
4.8 应用实例74
实例4-1—4位全加器的行为级建模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-1—SR锁存器延迟模型164
实例7-2—超前进位加法器165
实例7-3—移位除法器模型169
7.7 习题174
第8章 有限状态机设计175
8.1 有限状态机简介175
8.2 两种红绿灯电路的状态机模型176
8.2.1 moore型红绿灯176
8.2.2 mealy型红绿灯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
0章 完整的设计实例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
1章 实验312
实验一 简单组合逻辑电路设计(学生版)312
实验一 辅导版314
实验二 行为级模型设计(学生版)319
实验二 辅导版321
实验三 利用FPGA验证设计功能(学生版)326
实验三 辅导版327
实验四 任务与函数的设计(学生版)332
实验四 辅导版334
实验五 流水线的使用(学生版)337
实验五 辅导版339
实验六 信号发生器设计(学生版)342
实验六 辅导版344
实验七 有限状态机的设计(学生版)347
实验七 辅导版348
2章 课程设计356
选题一 出租车计费器356
选题二 智力抢答器362
选题三 点阵显示369
选题四 自动售货机373
选题五 篮球24秒计时379
选题六 乒乓球游戏电路384
选题七 CRC检测398
选题八 堆栈设计404
选题九 数字闹钟410
选题十 汉明码编译码器418
附录A 课程测试样卷424
附录B 习题及样卷答案429
作者介绍
作者团队主要负责人谢龙汉,华南理工大学机械与汽车工程学院,副院长,教授。2002年毕业于浙江大学过程装备与控制工程专业本科,在浙江大学华工过程机械研究所取得硕士学位,之后在广州本田汽车有限公司研发中心工作过两年,2010年获得香港中文大学机械与自动化工程系的博士学位。外学术期刊上发表30多篇学术论文,写作经验丰富,作品技术含量高,实用性强。
文摘
序言
我非常欣赏这本书在工程实践和理论结合方面所做的努力,它不仅仅是技术手册,更像是一位经验丰富的导师。作者在书中融入了大量的工程实践经验,比如在讲解状态机设计时,不仅仅是给出几种基础的状态机模型,还结合实际应用场景,比如通信协议中的握手机制、数据流控制等,来阐述如何设计出健壮、高效的状态机。而且,书中对于代码风格和可读性的强调,也让我印象深刻,作者反复强调了命名规范、注释的重要性,以及如何编写模块化、易于维护的代码,这对于团队协作和长期项目维护来说至关重要。我尤其喜欢书中关于调试策略的部分,作者分享了一些非常实用的调试技巧,比如如何利用波形分析工具定位问题,如何编写带有调试信息输出的testbench,以及如何逐步缩小问题范围等等。这些内容对于解决实际项目中遇到的各种疑难杂症,提供了宝贵的经验。这本书的排版和图示也非常精美,阅读体验很好,不会感到枯燥乏味。它提供了一种非常系统化的学习路径,从基础到高级,再到实践应用,层层递进,让人能够扎实地掌握Verilog HDL的设计与仿真技能。
评分这本《Verilog HDL数字系统设计及仿真(第2版)》真是让人眼前一亮,特别是对于我这种初学者来说,简直是及时雨。刚开始接触数字设计的时候,总是觉得概念很多,公式也看得头晕,找了好几本书,要么太理论化,要么例子太少,看得我不知所云。这本书的讲解风格就非常平易近人,作者似乎很了解我们这些菜鸟会遇到哪些困难,从最基本的概念讲起,像什么门电路、触发器、状态机,都用清晰的图示和通俗易懂的语言进行解释。而且,它不是那种干巴巴的理论堆砌,每一章都紧跟着一个具体的例子,从简单的计数器到稍微复杂一点的时序逻辑,都能一步步地跟着操作。最棒的是,它还介绍了仿真工具的使用,这对于验证我们设计的正确性太重要了,以前只会在脑子里想,现在可以真的在电脑上跑起来看结果,成就感爆棚!我最喜欢的是关于时序逻辑的部分,作者把时钟、时序约束这些容易出错的地方讲得特别透彻,让我对时钟域交叉、亚稳态这些曾经让我头疼的问题有了更清晰的认识。这本书不仅教会我怎么写Verilog代码,更教会了我如何去思考一个数字系统该如何设计,如何去调试,这比单纯的学习语法要有价值得多。
评分说实话,作为一个有着几年数字设计经验的老兵,我拿起这本书最初是抱着看看有没有什么新东西的心态,结果却被它的细节和深度深深吸引。这本书在对Verilog语法细节的把握上做得非常到位,很多我平时可能一笔带过或者不太理解的地方,作者都做了深入的剖析。例如,关于赋值语句的阻塞和非阻塞的区别,书中不仅给出了清晰的定义,还结合大量的仿真波形图,直观地展示了它们在不同场景下的行为差异,这对于避免一些难以捉摸的时序错误太有帮助了。还有关于`always`块的敏感列表,这本书对不同类型的敏感列表以及它们在不同`always`块中的作用,进行了非常细致的讲解,特别是对于组合逻辑和时序逻辑的`always`块,作者给出了非常实用的编写建议,避免了新手常犯的逻辑错误。另外,书中对一些EDA工具的仿真行为和综合行为的差异也进行了一些探讨,这让我意识到,仅仅编写出能仿真的代码是不够的,还需要考虑代码的可综合性,以及不同工具之间可能存在的细微差别。这本书的内容更新也比较及时,涵盖了Verilog HDL的一些最新发展和最佳实践,对于想要跟上行业步伐的设计师来说,是非常有价值的参考。
评分这本书的深度和广度都超出了我的预期,尤其是它对高级Verilog特性的讲解,让我受益匪浅。我之前以为Verilog就是写一些基本的逻辑门,但这本书让我见识到了它的强大之处,比如参数化设计、任务和函数的使用、甚至是验证方法学的一些基础概念。作者在讲解这些内容的时候,并没有止步于简单的语法介绍,而是深入探讨了这些高级特性在实际项目中的应用场景和优势。比如,在讲参数化设计时,作者通过一个通用型的加法器设计,生动地展示了如何通过参数来灵活控制硬件实现,这对于提高代码的可重用性和设计效率有着极大的帮助。另外,书中关于testbench的编写技巧也写得非常详细,各种激励生成方法、覆盖率收集的思路,都让我对验证这个环节有了全新的认识。我之前觉得验证就是写一堆简单的信号,然后看输出是否正确,但这本书让我明白,一个好的testbench应该具备一定的智能化,能够主动去发现潜在的问题。而且,书中还涉及了一些关于FPGA实现的指导,虽然不是重点,但对于想要将设计部署到实际硬件上的读者来说,无疑是锦上添花。整体而言,这本书的知识体系非常完整,从入门到进阶,都能够找到对应的指导,非常适合有一定Verilog基础,想要进一步提升设计和验证能力的读者。
评分作为一名在数字IC验证领域摸爬滚打多年的工程师,我不得不说,这本书在验证方法学方面的讲解,确实给我带来了一些新的启发。虽然我平时的工作主要围绕着UVM等高级验证框架,但这本书对Verilog HDL本身的验证特性,以及如何构建一个有效的、可复用的testbench,进行了非常细致的阐述。作者对序列、约束随机、覆盖率等概念的介绍,虽然不如专门的验证书籍那么深入,但对于Verilog工程师来说,掌握这些基本概念,能极大地提升他们编写测试代码的能力,并能更好地与验证团队协作。书中对行为级建模和寄存器模型(Register Model)的介绍,也让我看到了Verilog HDL在验证中的更多可能性。我特别喜欢作者关于“可覆盖性驱动验证”的理念,它强调了在设计之初就应该考虑如何验证,并设计相应的测试用例和覆盖点。这本书的仿真部分,也对各种仿真器提供的调试功能进行了介绍,并且给出了一些实际的仿真技巧,这对于提高仿真效率、快速定位bug非常有帮助。这本书的价值在于,它架起了Verilog设计和验证之间的桥梁,让读者能够从更全面的视角去理解数字系统的开发流程。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有