教育>本科研究生>电子信息类
SystemVerilog数字系统设计

SystemVerilog数字系统设计"

作者:夏宇闻
ISBN:9787121124563
定价:¥39.0
字数:448千字
页数:280
出版时间:2011-02
开本:16(185*260)
版次:01-01
装帧:
出版社:电子工业出版社
简介

SystemVerilog是21世纪电子设计师必须掌握的最重要的语言之一,因为它是设计/验证现代复杂电子系统核心芯片的至关重要的手段。本书讲授用SystemVerilog语言设计/验证数字系统的基本概念和具体方法。在介绍基本语法的基础上,阐述了如何用RTL级的SystemVerilog构成可综合的数字电路/组件/系统,以及如何用行为级的SystemVerilog搭建测试平台,对设计进行验证。     读者对象:本书针对的读者群是电子、自动化和计算机工程专业的本科生/研究生。本书也适合已经掌握Verilog和VHDL硬件描述语言的工程师自学新一代的数字系统设计/验证语言。

前言

前言 关于本书 在作者编写的Digital System Design with VHDL一书出版的时候, 把数字设计教材和介绍硬件描述语言的教材结合成一本教材, 似乎还是一种新奇的想法。大约在同一时期, 若干本同类型主题的著作相继出版。Digital System Design with VHDL一书现在已经被好几所大学选为核心教材, 并且被翻译成波兰文、中文、日文和意大利文。作者曾经考虑过编写一本Verilog数字系统设计的教材, 尽管Verilog那时已得到广泛的应用, 但至今仍对使用Verilog作为教学语言心存一些怀疑。在Digital System Design with VHDL一书第2版出版后不久, 一种新的硬件描述语言SystemVerilog出现了。由于这种新语言明显地优于VHDL, 扫除了作者对Verilog语言的许多怀疑。第一本书的成功和新语言的出现加强了作者的信心:编写一本SystemVerilog数字系统设计新书的时刻终于来临。 本书可作为大学本科生和研究生的教材。绝大多数Verilog和SystemVerilog书籍都是为有实际工作经验的工程师们编写的。因此, 本书省略了某些SystemVerilog语法特点, 对这些特色点没有做任何介绍。但本书却涵盖了数字设计的许多方面, 而典型的SystemVerilog书籍并不介绍这些内容。 不同的国家、 不同的大学或者学院, 其电气、电子和计算机工程专业的教学大纲不尽相同。本书的材料是作者多年来在大学2~3年级本科生和研究生的教学实践中逐步积累并开发的。作者假设学生们已经熟悉布尔代数和组合逻辑设计的基本原理。在英国南安普顿大学, 本科生第一年的教学大纲中就包括同步时序电路和可编程逻辑等知识点。因此本书就建立在这些知识点的基础之上。通常人们认为对于2年级的本科生而言, 诸如SystemVerilog这样的课程太专业了, 因此最好把这门课程放到本科最后一年或者研究生的教学计划之中。 将SystemVerilog课程更早地引入教学计划有几个重要的理由。第一,随着集成电路越来越复杂, 要求大学毕业生掌握SystemVerilog的知识和相关的设计工具。如果到最后一年 才教授这门课程, 学生们就没有时间或者只有极少的时间可以在毕业设计项目中应用这些知识。第二,与许多国家的同事们交流时, 他们都提出当今的大学生更愿意选读计算机科学和计算机工程专业, 而不太愿意选读电气和电子工程专业。而SystemVerilog提供了一种手段, 可以引导对计算感兴趣的学生转向对硬件设计感兴趣。最后, 仿真和综合工具及FPGA设计套件现在已经相当成熟, 可以用相对低廉的价格在PC平台上建立教学实验环境。 本书的结构 第1章介绍本书的基本思路, 即利用电子设计自动化工具及CMOS和可编程逻辑技术。我们还考虑了某些工程问题, 诸如噪声容限和扇出。第2章考察布尔代数的原理和组合逻辑的设计, 并讨论时序及与冒险竞争有关的重要问题, 还对数据表示的某些基本技术进行了讨论。 在第3章中, 通过基本的逻辑门模型, 引入了SystemVerilog。这一章把重点放在程序代码文件的重要性上, 介绍了如何构建基本门电路的网表, 如何为门电路的延迟建立模型。本章还讨论了参数化模型, 并且介绍了利用SystemVerilog编写测试平台并对模型进行验证的思想。 第4章描述建立SystemVerilog模型的多种技术。利用一组并发和时序的SystemVerilog编码结构, 为组合(电路)构造块、缓冲器、译码器、编码器、多路选择器、加法器和奇偶校验器建模。第4章和第5章~第7章中介绍的SystemVerilog硬件模型, 从原理上都是可综合的(尽管直到第10章才正式讲解SystemVerilog的可综合性问题)。第4章再次讨论了测试平台的设计风格, 此外还介绍了IEEE认可的标记符号。 第5章介绍了各种时序构造块:锁存器, 触发器, 寄存器, 计数器, 存储器,以及时序乘法器。利用IEEE认可的标记符号、 测试平台设计, 并引入SystemVerilog编码结构, 使用了与第4章相同的写作风格。 第6章也许是本书最重要的一章, 重点讨论了数字设计的基础:有限状态机的设计。本章的讲解中使用了算法状态机(ASM)图; 描述从ASM图到D触发器, 以及产生下一个状态和输出逻辑的设计过程, 并介绍了SystemVerilog状态机模型。 在第7章中, 把前三章的概念相互结合起来。ASM图的标记方法被扩展到包括互相耦合的状态机和有寄存器的输出, 由此引申到数据路径-控制器的划分。根据这一思路, 可以用硬件术语对指令的概念做出解释, 然后用SystemVerilog为最基本的微处理器建立模型。这为接口和封装概念的引入提供了载体。 在第8章中, 对测试平台的设计进行了更详细的讨论。在主要概述了前几章讲解的技术后, 进一步讨论了测试平台的架构、 受约束随机测试的产生及基于断言的验证。 SystemVerilog仍旧是一种主要的建模语言。第9章描述了SystemVerilog仿真器的操作。首先解释了事件驱动的仿真器思想, 并讨论SystemVerilog仿真器的特性。 正如第10章讨论的那样, SystemVerilog语言在描述可综合模型方面正起着越来越重要的作用。目前可用的综合工具绝大多数都是RTL综合器。这一类综合工具可以根据SystemVerilog模型, 推算出电路中存在的触发器和锁存器, 并描述综合产生电路的具体结构。若SystemVerilog模型编写得不好, 代码中存在常见的缺陷, 则在综合后生成的电路中很可能出现错误的触发器。综合过程可以用约束条件加以控制。因为约束条件的描述超出了这种语言的能力范围, 所以只好用普通的术语来描述约束条件。第10章还讨论了FPGA综合后产生的电路结构。最后, 简单地考察了行为综合, 将来这种综合有希望变成一种重要的设计技术。 第11章和第12章专门讨论测试和针对测试设计(DFT)。以前经常忽视这一领域, 但现在已被认为是设计过程中的一个重要环节。在第11章中, 引入了故障模型的概念, 紧接着介绍测试生成方法。测试的功效可以由故障仿真确定。 在第12章中, 介绍了针对测试设计(DFT)的三个重要原理:扫描路径, 内建自测试(BIST),边界扫描。DFT通常总是一个非常枯燥的话题, 若使用SystemVerilog仿真器, 则可以分析BIST结构如何完成各种不同的无缺陷签字验收, 以及如何发现电路缺陷。 在第13章中, 我们把SystemVerilog用做探索异步时序电路不规则行为的工具。虽然当前绝大多数设计都采用同步设计风格, 但是越来越多的数字系统是由互相进行异步通信的同步电路组成的。本章介绍了这个模式的基本概念, 并向读者展示如何分析和设计异步电路。我们利用SystemVerilog来说明冒险竞争问题、建立和保持时间违反的问题, 同时还讨论了亚稳态问题。 最后一章介绍VerilogAMS和混合信号建模。简明扼要地描述了数字-模拟转换器(DAC)和模拟-数字转换器(ADC),并给出这种转换器的VerilogAMS模型。在最后一章还介绍了锁相环(PLL)的概念, 并给出了锁相环的简单混合信号模型。 附录简要地描述了SystemVerilog与早期的Verilog有哪些不同。 在每一章的末尾安排了许多练习题, 为了对每个SystemVerilog例子进行仿真, 如果可将其综合,则对其进行综合, 这些练习题几乎都是很好的辅助教材。为了完成仿真和综合任务, 读者们也许需要自己编写测试平台和约束文件。在网站www.zwolinski.org上, 可以下载上述例子。 如何使用本书 显然, 根据对课程的要求不同, 可以通过多种方式讲解本书。在南安普顿大学, 作者的教学安排如下。 1)针对电子工程系、 攻读工程硕士/学士学位的2年级学生: 第1章、第2章两章要求学生们自学。需要讲解的内容包括第3章~第7章。在这部分内容中有一些小节可以根据课时情况选择是否授课, 例如5.3节和5.7节。此外, 如果时间有限, 有一些电路结构可以忽略不讲。11.2节的单个固定故障模型、11.3节的测试向量的产生原理, 还有12.2节的扫描设计原理应该在课堂上讲解。 2)针对电子工程系、攻读工程硕士/学士学位的3年级学生: 要求学生们自己独立学习第4章~第7章的内容。需要讲解的内容包括第8章~第13章。目前, 第14章VerilogAMS安排在4年级的课程中。 从2年级到4年级的三年中, 为了让学生们能利用书上的例子进行学习, 所以必须配合使用SystemVerilog仿真器和RTL综合器。在2年级安排一组FPGA综合的设计练习是对本教材的最好补充。在南安普顿大学3年级的每个学生都必须独立完成一个设计项目,有一些学生所做的项目用到了SystemVerilog。 网络资源 与本书对应的网站地址为:www.zwolinski.org。在该网站上, 读者可以找到相关的教学材料, 其中包括所有的SystemVerilog例子, 以及到SystemVerilog工具网站的链接。 致谢 在这里, 让我对指出本书VHDL版本中错误的每一位读者致以诚挚的感谢。 我还要感谢为本书出版印刷做出贡献的每一位朋友, 他们是Prentice Hall的Bernard Goodwin和Elizabeth Ryan, Glyph International公司的Madhu Bhardwaj和Ben Kolstad, 还有担任编辑工作的Susan FoxGreenberg、负责校对工作的Danielle Shaw及负责索引工作的Jack Lewis。本书中的任何错误都是我的过失, 与他们无关。 最后还要感谢几位学生, 我曾经给他们讲过课, 他们对教材的评价和意见给予了我力量和勇气, 使我总结出讲解这些概念的更好方法。 关于作者 Mark Zwolinski是英国南安普顿大学电子与计算机科学学院的全职教授。他是Digital System Design with VHDL一书的作者, 该书已被翻译成四种语言, 并被全世界的许多所大学选为教材。Zwolinski教授在技术杂志上曾发表过120多篇论文。20多年来, 他一直教授大学本科生和研究生的数字设计与设计自动化等课程。

目录

目录 第1章序言 1.1现代数字设计 1.2用硬件描述语言进行设计 1.2.1设计自动化 1.2.2什么是SystemVerilog 1.2.3什么是VHDL 1.2.4仿真 1.2.5综合 1.2.6可重用性 1.2.7验证 1.2.8设计流程 1.3CMOS技术 1.3.1逻辑门 1.3.2ASIC(专用集成电路)和FPGA(现场可编程门阵列) 1.4可编程逻辑 1.5电气属性 1.5.1噪声容限 1.5.2扇出 总结 参考资料 练习题 第2章组合逻辑设计 2.1布尔代数 2.1.1值 2.1.2操作符 2.1.3逻辑门的真值表 2.1.4布尔代数的定律 2.1.5德摩根定理 2.1.6香侬扩展定理 2.2逻辑门 2.3组合逻辑设计 2.3.1逻辑最小化 2.3.2卡诺图 2.4时序 2.5数字码 2.5.1整数 2.5.2定点数 2.5.3浮点数 2.5.4文字数字字符 2.5.5格雷码 2.5.6奇偶校验位 总结 参考资料 练习题 第3章用SystemVerilog门模型描述的组合逻辑 3.1模块和文件 3.2标识符、空格和注释 3.3基本门模型 3.4简单的网表 3.5逻辑值 3.6连续赋值语句 3.6.1SystemVerilog操作符 3.7延迟 3.8参数 3.9测试平台 总结 参考资料 练习题 第4章组合逻辑构件 4.1多路选择器 4.1.12选1多路选择器 4.1.24选1多路器 4.2译码器 4.2.12到4译码器 4.2.2参数化的译码器 4.2.3七段译码器 4.3优先编码器 4.3.1无关项和唯一性问题 4.4加法器 4.4.1功能模型 4.4.2逐位进位加法器 4.4.3任务 4.5奇偶校验器 4.6三态缓冲器 4.6.1多值逻辑 4.7组合逻辑块的测试平台 总结 参考资料 练习题 第5章时序逻辑块的SystemVerilog模型 5.1锁存器 5.1.1SR锁存器 5.1.2D锁存器 5.2触发器 5.2.1由跳变沿触发的D触发器 5.2.2异步置位与复位 5.2.3同步置位/复位和时钟使能 5.3JK触发器和T触发器 5.4寄存器和移位寄存器 5.4.1多比特寄存器 5.4.2移位寄存器 5.5计数器 5.5.1二进制计数器 5.5.2约翰森计数器 5.5.3线性反馈移位寄存器 5.6存储器 5.6.1ROM 5.6.2SRAM 5.6.3同步RAM 5.7时序乘法器 5.8时序构造块的测试平台 5.8.1时钟信号的产生 5.8.2复位信号及其他重要信号 5.8.3检查设计电路的响应 总结 参考资料 练习题 第6章同步时序设计 6.1同步时序系统 6.2同步时序系统的模型 6.2.1摩尔和米利状态机 6.2.2状态寄存器 6.2.3三位计数器的设计 6.3算法状态机 6.4由ASM图综合 6.4.1硬件的实现 6.4.2状态分配 6.4.3状态最小化 6.5使用SystemVerilog描述的状态机 6.5.1第一个例子 6.5.2序列奇偶校验位检测器 6.5.3自动售票机 6.5.4数据的储存 6.6状态机的测试平台 总结 参考资料 练习题 第7章复杂时序系统的设计 7.1状态机的互连 7.2数据路径控制器的划分 7.3指令 7.4一个简单的微处理器 7.5简单微处理器的SystemVerilog模型 总结 参考资料 练习题 第8章测试平台的编写 8.1基本的测试平台 8.1.1时钟信号的产生 8.1.2复位信号和其他重要信号 8.1.3响应的监视 8.1.4响应的转储 8.1.5来自于文件的测试向量 8.2测试平台的结构 8.2.1程序 8.3受约束随机激励的发生 8.3.1面向对象编程 8.3.2随机化 8.4基于断言的验证 总结 参考资料 练习题 第9章SystemVerilog的仿真 9.1由事件驱动的仿真 9.2SystemVerilog的仿真 9.3竞争 9.3.1避免冒险竞争 9.4延迟模型 9.5仿真工具 总结 参考资料 练习题 第10章SystemVerilog的综合 10.1RTL综合 10.1.1不可综合的SystemVerilog 10.1.2推导出触发器和锁存器 10.1.3组合逻辑 10.1.4RTL综合规则的总结 10.2约束 10.2.1属性 10.2.2面积和结构属性 10.2.3full_case和parallel_case属性 10.3FPGA的综合 10.4行为综合 10.5综合结果的验证 10.5.1时序仿真 总结 参考资料 练习题 第11章数字系统的测试 11.1测试的必要性 11.2故障模型 11.2.1单固定故障模型 11.2.2PLA(可编程逻辑阵列)故障 11.3面向故障的测试向量集的生成 11.3.1敏感路径算法 11.3.2无法检测到的故障 11.3.3采用D算法的故障测试 11.3.4PODEM算法 11.3.5合并 11.4故障的仿真 11.4.1并行故障仿真 11.4.2并发故障仿真 总结 参考资料 练习题 第12章可测试性设计 12.1为提高可测试性而做的改进 12.2针对测试的结构设计 12.3内建自测试 12.3.1示例 12.3.2内建逻辑块观察(BILBO) 12.4边界扫描(IEEE 1149.1) 总结 参考资料 练习题 第13章异步时序电路设计 13.1异步电路 13.2异步电路的分析 13.2.1非形式化分析 13.2.2形式化分析 13.3异步电路的设计 13.4异步状态机 13.5建立/保持时间和亚稳态 13.5.1基本模式制约和同步电路 13.5.2描述建立和保持时间不合格的SystemVerilog模型 13.5.3亚稳态 总结 参考资料 练习题 第14章与模拟电路的接口 14.1数字-模拟转换器 14.2模拟-数字转换器 14.3VerilogAMS 14.3.1VerilogAMS基础 14.3.2作用语句 14.3.3混合信号建模 14.4锁相环 14.5VerilogAMS仿真器 总结 参考资料 练习题 附录ASystemVerilog与Verilog的关系 部分练习题的参考答案 参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个