基于VERILOGHDL的数字系统应用设计
基于VERILOG HDL的数字系统应用设计TP312/2645D2007∠世纪高等院校规划教材可编程逻辑器件快速进阶丛书基于 Verilog hDL的数字系统应用设计(第2版)王钿卓兴旺编著k第社北京内容简介本书结合实践系统地介绍了基于 Verilog数字逻辑设计相关的内容,包括工具使用、RTL设计及 Testbench的设计。本书共分为7章。第1章对数字逻辑设计进行了概述;第2章介绍了常用EDA工具的使用;第3章介绍了RTL设计的相关内容;第4章介绍了功能验证及Testbench相关的内容;第5章结合一个串口配置寄存器的电路对第3章和第4章的内容进行了实践;第6章对数字信号处理中的常用电路进行了讲解;第7章介绍了逻辑设计需要考虑的工程因素。本书适合对 Verilog语法已略有了解的读者阅读,也适于在数字逻辑设计方面摸索多年的工程师参考。图书在版编目(CP数据基于Ⅴ erilog HDL的数字系统应用设计/王钿,卓兴旺编著.-2版.一北京:国防工业出版社,2007.8(可编程逻辑器件快速进阶丛书ISBN978-7-118-05277-0基.Ⅱ1.①王.②卓..Ⅲ.①硬件描述语言,ⅤHDL程序设计-高等学校-教材②数字系统一系统设计-高等学校-教材Ⅳ.TP312TP271中国版本图书馆CP数据核字(2007)第109710号※所;出啟社出版发行(北京市海淀区紫竹院南路23号邮政编码』00044)北京奥鑫印刷厂印刷新华书店经售开本787×10921/6印张19%字数452千字2007年8月第2版第1次印刷印数1—5000册定价3700元(含光盘)(本书如有印装错误,我社负责调换)国防书店:(010)68428422发行邮购:(010)68414474发行传真:(01068411535发行业务:(010)68472764前言回顾自己以前在学校学习 VHDL/Verilog的情形,当时不可谓不刻苦,每天起早摸黑,但是苦于市面上的书籍多以介绍语法为主,缺乏实践的内容,网上的资料又鱼龙混杂、真假难辨,所以水平提髙很慢。后来因为一次机遇认识了我的老师及一些国外的朋友,他们给我讲了很多逻辑设计的基本思想,这才让我真正找到了逻辑设计的门路,从此也开始走上了这条逻辑设计之路我和我的同伴卓兴旺很愿意将这其中的一些学习经历和大家分享,希望可以让读者少走些弯路,也希望读者通过这些内容可以快速地入门,在前人的基础上推动中国EDA设计的发展学习建议任何一种语言的语法学习从来都不是一件很难的事,难的是对这门语言背后思想的掌握。我们希望读者在学习时不要过分拘泥于具体的语法,而要真正地去理解语法背后的思想;我们并不希望读者对我们的内容全盘接收,而希望读者能够去思考这部分内容的本质真正知道它们为什么是这样而不是那样。我们期望读者在学习完这本书后能有如下收获或者体会(1)能熟练掌握FPGA设计中常用的开发工具(2)RTL设计的基础在于硬件意识,提高在于理解设计时序的思想。RTL级设计只是场时序“游戏”。(3)写好 Testbench的基础在于熟练掌握 Verilog行为级语法,提高在于对 Testbench的层次有较好的把握。组织结构本书由7章组成第1章逻辑设计发展现状及开发流程本章主要是对逻辑设计的概况进行介绍。第2章常用FPGA开发工具的使用本章介绍了FPGA的常用开发工具的使用,包括:仿真软件 Modelsim60、综合工具Synplify Pro8.0、 Altera公司的开发软件 Quartus。第3章RTL级建模本章介绍了硬件意识、基本语法、目标器件结构、约束原理及如何添加约束及设计时序的思想。第4章 Testbench本章介绍了功能验证涉及到的一些概念、 Verilog行为级的语法及 Testbench的结构第5章RS232通信程序的设计本章结合一个串口通信程序设计的例子,对第3章和第4章的内容进行了实践第6章数字信号处理的Ⅴ erilog设计数字信号处理是逻辑设计中的另一重要内容,本章对数字信号处理的一些常用电路的原理进行了详细讲解第7章逻辑设计的工程因素本章从芯片的可测性设计、可靠性设计等方面介绍实际工程中需要考虑的因素其中,第1章和第2章由卓兴旺工程师执笔,第3章和第4章由王钿工程师完成,第5章、第6章和第7章由崔永俊老师编写限于我们的水平,错误和不当之处难以避免,欢迎大家发电子邮件与我们讨论相关内容,我的电子邮箱是:wangdian@Ptom.com。编著者2007年5月目录第1章逻辑设计发展现状及开发流程……1.1硬件描述语言HDL( Hardware Description Language)………1.1.1硬件描述语言简介1.1.2 erilog语言简介1.2可编程逻辑器件··.·自。甲,鲁1.2.专用ASIC芯片ⅴS.可编程逻辑器件11233412.2 FPGAVS,CPLD………1.2.3主流FPGA厂商介绍………1.24在选择FPGA器件时需要考虑的问题13基于Ⅴ erilog的FGA设计方法及流程1.3.1设计方法……1.3.2典型的FPGA设计流程··自··鲁·自··..···看··....a;s曾甲pa14SOC与I复用…1.4.1SOC简介……14.2 IP CORE简介………5666889914.3设计方法学的进展…第2章常用FPGA开发工具的使用身自中中·曾鲁·鲁2.1仿真工具 Modelsim21.1 Modelsim简介2.1.2用 Modelsim60做功能仿真12213用 Modelsim做时序仿真看由由162.1.4 Modelsim其他一些应用技巧1822综合工具 Synplify Pro221 Synplify Pro简介22.2用 Synplify pro进行设计综合流程23集成开发环境 Quartus II23.1 QuartusⅡ简介232设计输入……29233约束输入34234综合36235布局布线23.6仿真45237时序分析Ⅵ238编程和配置…电备自。·qe非。中,中·中·…53第3章RTL级建模553.1硬件意识……5532RTL级语法57321 Verilog模块基本结构……………………573.2.2端口定义………………5832.3对带三态输出端口的建模………5832.4对双向端口的建模卡鲁鲁自自自音·鲁···中寺辛鲁学鲁…………6032.5数据类型垂鲁要要山由。中鲁垂·看音鲁垂罪3.2.6连续赋值语句62327敏感信号列表6232.8 always块………………623.29条件语句………633210多路分支语句3211关于 case和 casey的补充说明…………703212if..lse语句与case语句综合结果的比较3213再谈锁存器……∴……………23.2.14循环语句……3215阻塞与非阻塞赋值…………7432.16模块例化………7433常用电路的设计763.31D触发器.t鲁节曹鲁非非鲁……763.32多路复用器·t自血自自曹鲁鲁曾普……………763.33多路解复用器…7334计数器与分频器………78335移位寄存器3.3.6时钟使能电路…853.37边沿检测电路34有限状态机的设计8934.1概述由.。.。.垂鲁鲁非342 moore型状态机34.3 mealy型状态机…,4垂·看··看·音罪…91344more型状态机与 mealy型状态机的选用…9334.5状态机的代码风格……9434.6状态编码9735FPGA结构105351FPGA的整体结构……看…1063.5,2IO管脚………………1073.5.3LE申曾。鲁……………1073.54LAB…109355片内存储单元3.5.6锁相环与全局时钟网络3.57DSP模块……l1235.8使用FPGA的一些建议36时序分析的基本概念l1336.11su与l4r…36.2亚稳态………………13363t(o…………………1143.6.4 Clock skew…………………………365FMAx的计算1153.6.6 Multicycle path37同步设计…1173.7.1什么是同步设计∴………117372同步设计的优点…………………1173.7.3同步设计准则38约束……12038.1约束对综合工具/布局布线工具的影响b非音非鲁音自鲁鲁带鲁带120382在 synplify中添加约束120383在 Quartus中添加约束127384静态时序分祈报告……………13339如何提高电路的工作频率…………….……135391影响电路工作频率的因素…………,……………135392减少走线时延135393减少组合逻辑的时延…1373.10多时钟域处理…………1383101单个信号跨时钟域…·····“···;··.··..*.····1393.10.2一组信号跨时钟域……………1403.1设计时序……1423.12代码优化……143313RTL级设计的其他注意事项…145313.1命名规范………1453.132保持良好的代码风格……145313.3参数化设计1463134输出应尽可能采用寄存器输出……1463.13.5将相关逻辑放在同一模块………1463.13.6尽量在“叶子”中做逻辑,顶层只做例化………1463.137“简单”甲曹曹自自曲香也自自自即鲁垂D、日VIⅢ第4章 Testbench……………1484.1功能验证1484.1.1收敛模型1484.1.2验证方法…………14941.3覆盖率检查15042 Testbench概述15042]什么是 Testbench…1504.22为什么要写 Testbench…1514.2.3 Testbench模型…………1514.24一个简单的 Testbench3行为级的 Verilog语生一鲁·由垂垂由·由1554.3.1RTL建模VS行为级建模…15543.2行为级的 Verilog语法1574.3.3再谈阻塞与非阻塞赋值……166434信号竞争问题…16944激励和响应1704.4.1激励1704.4.2响应17544.3自动比较响应申音自音·自·省自着自自音·····专甲甲,·,中鲁垂导…17645总线功能模型·1784.5.1总线功能模型的地位……………17845.2总线功能模型的要求…………178453总线功能模型的设计………………18246 Testbench的结构1854.6.1 Testbench的层次185462 Testbench的重用性85第5章RS232通信程序的设计……1925.1RS232基础……19252设计需求……19353模块划分…………………194531RTL级划分…………194532 Testbench的结构划分……19454RTL级代码……19554. I top_module模块1955.4.2 config_registers模块…543 frame deal模块………201544 tx frame模块……203545 rx frame模块207
用户评论