|
关于我们
书单推荐 更多 新书推荐 更多 |
数字逻辑基础与Verilog设计 ![]()
本书是为“数字逻辑设计”课程编写的入门教材,这门课是电气工程和计算机专业的基础课程。本书着重阐述了数字逻辑基础与逻辑电路的基本设计技术,通过许多例子来引入基本概念,强调综合电路及如何在实际芯片上实现电路。主要内容包括:逻辑电路、算术运算电路、编码器、译码器、多路选择器、移位寄存器、计数器、同步时序电路、异步时序电路、数字系统设计、逻辑函数的优化、计算机辅助设计工具等。
本书面向数字逻辑设计的入门课程,这门课程是大多数电子和计算机工程专业的一门基础课程。一个成功的数字逻辑电路设计者首先必须深入了解其基本概念,并且能够牢固掌握基于计算机辅助设计(CAD)工具的现代设计方法。
本书的主要目的为:1)通过典型的数字电路手工设计方法教给学生基本概念;2)清晰地展示当今采用CAD工具设计数字电路的方法。虽然目前除了少数情况外已经不再采用手工方法进行设计,但我们仍想通过教授这些手工设计技术,使学生对如何设计数字电路有一个感性的认识;并且手工设计方法能对CAD工具实现的功能进行很好的解释,使学生体会到自动设计的优势。本书通过简单的电路设计案例引出其基本概念,这些案例都同时采用手工方法和现代CAD方法设计。在建立了基本概念后,提供了更多基于CAD工具的复杂例子。因此,本书的重点仍然放在现代设计方法上,以说明当今数字电路是如何设计的。 技术本书将讨论现代数字电路实现技术,重点为教科书中最适合采用的可编程逻辑器件(PLD),其原因主要表现在两个方面:第一,PLD在实际设计中被广泛采用,并且适合于各种数字电路设计,事实上,从某些方面看学生们在他们的职业生涯中更喜欢基于PLD进行设计而不是任何别的技术;第二,可以通过最终用户的编程在PLD上实现电路。因此,在实验室中可以提供给学生一个机会,即基于实际芯片来实现书中的设计例子;学生也可以用自己的计算机仿真所设计电路的性能。为了达到设计目的,我们采用最常见的PLD:复杂可编程逻辑器件(CPLD)和现场可编程逻辑阵列(FPGA)。 在逻辑电路的具体设计中,我们强调硬件描述语言(HDL)的使用,因为基于HDL的方法在实际应用中是最有效的。我们还详细介绍了IEEE标准的Verilog HDL语言,并且在例子中广泛使用。 本书内容本书第3版的结构进行了较大的改进,第1~6章覆盖一个学期内该课程所需讲述的所有内容,而第7~11章则介绍更先进的内容。 第1章概述了数字系统的设计流程,讨论了设计流程中的关键步骤,解释了如何运用CAD工具自动实现所要求的众多工作;同时介绍了数字信息的表示方式。 第2章介绍了逻辑电路的基本知识,展示了如何使用布尔代数表示逻辑电路;介绍了逻辑电路综合和优化的概念,展示了如何使用逻辑门实现简单电路。第一次向读者展现Verilog,一个可用于描述逻辑电路的硬件描述语言例子。 第3章重点讲述了算术运算电路,讨论了数字系统中数字的表示方式,并说明了这样的数字如何运用到逻辑电路中。另外,该章还阐述了如何使用Verilog详细描述所期望的功能,以及CAD工具如何提供开发所期望电路的机制。 第4章介绍了用作构建模块的组合电路,包括编码器、译码器及多路选择器。这些电路非常便于阐明众多借助Verilog构建的应用,给读者提供了一个揭示Verilog更多高级特性的机会。 第5章介绍了存储单元,讨论了采用触发器实现的规则结构,如移位寄存器和计数器,并给出了这些结构的Verilog描述。 第6章详细阐明了同步时序电路(有限状态机),解释了这些电路的行为,并介绍了用手工和自动两种方法进行实际设计开发的技术。 第7章讨论了系统设计中经常遇到的问题及其解决办法,介绍了一个较大规模的数字系统层次化设计的例子,并给出了完整的Verilog代码。 第8章介绍了逻辑功能优化实现的更加先进的技术,提供了优化算法;解释了如何与二元决策图一样使用一种立方体表示法指定逻辑功能。 第9章讨论了异步时序电路。虽然没有面面俱到地叙述,但清晰展示了时序电路的主要特性。尽管异步时序电路在实际中的应用并不是很广泛,但是它们提供了一个深刻理解数字电路操作的非常好的途径。该章还展示了可能存在于电路结构内部的传播延迟和冒险竞争。 第10章给出了设计者在设计、实现及测试数字电路过程中经历的一个完整的CAD流程。 第11章介绍了电路的测试。逻辑电路的设计者必须清楚意识到电路测试的必要性,至少应熟悉测试最基本的知识。 附录A总结了完整的Verilog特性。整本书中都使用了Verilog,该附录便于读者在编写Verilog代码时随时查阅与参考。 附录B给出了数字电路的电特性,展示了如何采用晶体管搭建基本的门电路,介绍了影响电路性能的各种因素。该附录重点讨论了最新的技术,同时介绍了CMOS工艺和可编程逻辑器件。 课程内容建议书中大部分内容适用于两个季度的课程。在不需要花费太多时间教授Verilog和CAD工具时,1个学期甚至1个季度的课程也可以涵盖大部分最重要的内容。为了达到这个目的,我们按照模块化方式组织了Verilog内容以便于自学。多伦多大学不同班级的教学实践表明,只须用3~4个学时介绍Verilog,即代码如何编写,包括使用设计层次结构、标量、矢量,以及指定时序电路所需的代码形式。本书给出的Verilog例子带有大量的说明,学生很容易理解。 本书也适用于不涉及Verilog的逻辑设计课程。然而,了解某些Verilog知识,即使是入门水平,对学生也是有益的,并且对于设计工程师日后的工作也非常有帮助。 1个学期的课程课程需要教授的内容如下: 第1章:每一节第2章:每一节第3章:3.1~3.5节第4章:每一节第5章:每一节第6章:每一节1个季度的课程课程需要教授的内容如下: 第1章:每一节第2章:每一节第3章:3.1~3.3节和3.5节第4章:每一节第5章:每一节第6章:6.1~6.4节VerilogVerilog是一种复杂的语言,有些教师感到初学者掌握起来很困难,我们完全同意这个观点,并且试图解决这个问题。教师在教学过程中没有必要介绍Verilog语言的全部。本书只介绍对于逻辑电路设计和综合有用的重要的Verilog语言结构,略去了许多其他语言结构,如那些仅用于仿真的语言结构。并且仅在相关电路设计中用到Verilog更高级的特性时才会介绍这些知识。 本书包含了120多个示例的Verilog代码:从只包含一些门电路到某些表示整个数字系统的电路(如一个简单处理器),以说明如何采用Verilog语言描述不同的逻辑电路。 本书给出的所有Verilog示例的代码可参考作者的网站:www.eecg.totonto.edu/~brown/Verilog_3e。 问题求解每一章中都包含解决问题的实例,通过这些实例可以求解典型的习题。 课外习题本书提供了400多道习题,书的最后给出了部分习题的答案。与本书配套的《答案手册》中提供了本书中所有习题的解答,以供老师参考。关于本书教辅资源,用书教师可向麦格劳·希尔教育出版公司北京代表处申请,电话:8008101936/010.62790299.108,电子邮件。——编辑注幻灯片和《答案手册》读者可以在作者的网站www.mhhe.com/brownvranesic上获得本书所有图的幻灯片。老师可以申请获得这些幻灯片以及本书的《答案手册》。 CAD工具现代数字系统非常庞大,很多复杂的逻辑电路若不使用CAD工具是难以设计的。本书对于Verilog的阐述有助于读者编写Verilog代码以描述不同复杂度的逻辑电路。为了获得适当的设计过程方法,使用商用CAD工具是非常有益的。一些很好的CAD工具是免费的,比如,Altera公司的Quartus Ⅱ CAD软件,它广泛应用于基于诸如FPGA类的可编程逻辑器件的设计中。Quartus Ⅱ软件的网络版本可以从Altera的网站上下载并且免费使用,而不需要许可证。本书先前版本的附录中给出了使用Quartus Ⅱ软件的教程,这些教程可以在作者的网站上找到,也可以通过Altera的编程网站上找到另一些有用的Quartus Ⅱ教程,其网址为www.altera.com/eduction/univ。 致谢对于在本书准备期间给予帮助的人们表达深深的谢意,其中Dan Vranesic提供了大量插图,他和Deshanand Singh也参与了《答案手册》的准备;Tom Czajkowski帮助检查一些答案。Thomas Bradicich,North Carolina State University;James Clark,McGill University;Stephen DeWeerth,Georgia Institute of Technology;Sander Eller,CalPoly Pomona;Clay Gloster,Jr.,North Carolina State University (Raleigh);Carl Hamacher,Queen’s University;Vincent Heuring,University of Colorado;Yu Hen Hu,University of Wisconsin;Wei.Ming Lin, University of Texas(San Antonio);Wayne Loucks,University of Waterloo;Kartik Mohanram,Rice University;Jane Morehead,Mississippi State University;Chris Myers,Univesity of Utah;Vojin Oklobdzija,Univesity of California(Davis);James Palmer,Rochester Institute of Technology;Gandhi Puvvada,University of Southern California;Teodoro Robles,Milwaukee School of Engineering;Tatyana Roziner,Boston University;Rob Rutenbar,Carnegie Mellon University;Eric Schwartz,University of Florida;Wen.Tsong Shiue,Oregon State University; Peter Simko,Miami University;Scott Smith,University of Missouri(Rolla);Arun Somani,Iowa State University;Bernard Svihel,University of Texas(Arlington);以及Zeljko Zilic,McGill University给出了有益的批评与很好的改进建议。 感谢McGraw.Hill的工作人员的支持,我们非常感激Raghu Srinivasan、Vincent Bradshaw、Darlene Schueller、Curt Reynolds以及Michael Lange的帮助,也感谢由Techsetters公司提供的排版支持。 Stephen Brown和Zvonko Vranesic
斯蒂芬·布朗(Stephen Brown),本科毕业于加拿大布伦斯维克大学,获得电子工程学士学位,此后就读于多伦多大学并取得电子工程硕士和博士学位,于1992年进入多伦多大学任教,目前为该校电子与计算机工程系教授,同时在Altera公司发起的国际大学计划中担任理事职务。
研究领域包括现场可编程VLSI技术以及计算机结构,曾获得由加拿大自然科学与工程研究委员会颁发的1992年佳博士论文奖,并且发表了超过100篇的科研论文。 在电子工程、计算机工程以及计算机科学相关课程方面获得过5次优异教学成果奖,并且与他人合编了两本知名教材:《Fundamentals of Digital Logic with VHDL Design》(第3版)以及《FieldProgrammable Gate Arrays》。 斯万克·瓦拉纳西(Zvonko Vranesic)拥有多伦多大学电子工程学士、硕士和博士学位。1963~1965年在位于安大略省布拉马里的北方电力有限公司担任设计工程师;1968年进入多伦多大学任教,现为该校电子与计算机工程系以及计算机科学系的荣誉退休教授;1978~1979年为英国剑桥大学的高级访问学者;1984~1985年为巴黎第六大学的访问学者;1995~2000年担任多伦多大学工程科学部主席,同时还参与了Altera公司多伦多科技中心组织的研发工作。 目前的研究领域包括计算机架构以及现场可编程VLSI技术研究。 除了本书之外,与他人合编了另外3本知名教材:《Computer Organization and Embedded Systems》(第6版),《Microcomputer Structures》与《FieldProgrammable Gate Arrays》。1990年由于指导本科生实验的创新和杰出贡献而获得怀顿(Wighton)奖金;2004年获得由多伦多大学应用科学和工程教师组织颁发的教学奖。 此外,他曾多次代表加拿大出席国际象棋大赛,并被冠以“国际象棋大师”的头衔。
出版者的话
译者序 前言 作者简介 第1章引言1 1.1数字硬件1 1.2设计流程3 1.3计算机结构4 1.4本书中的逻辑电路设计5 1.5信息的数字化表示5 1.6理论与实践9 习题10 参考文献10 第2章逻辑电路导论11 2.1变量与函数11 2.2反相12 2.3真值表13 2.4逻辑门和网络14 2.5布尔代数17 2.6利用“与”门、“或”门和“非”门进行综合23 2.7“与非”和“或非”逻辑网络电路28 2.8设计实例31 2.9CAD工具介绍34 2.10Verilog简介37 2.11最简化和卡诺图41 2.12最小化策略46 2.13和之积形式的最简式49 2.14非完整定义函数(无关项)50 2.15多输出电路51 2.16小结53 2.17解决问题的实例53 习题58 参考文献61 第3章数的表示方法和算术运算电路62 3.1按位计数法(数的位置表示法)62 3.2无符号数的加法运算64 3.3有符号数67 3.4快速加法器75 3.5使用CAD工具设计算术运算电路79 3.6乘法88 3.7其他数的表示方式90 3.8解决问题的实例94 习题97 参考文献99 第4章组合电路模块100 4.1多路选择器100 4.2译码器105 4.3编码108 4.4代码转换器109 4.5算术比较电路109 4.6用Verilog设计组合逻辑电路110 4.7小结121 4.8解决问题的实例121 习题126 参考文献128 第5章触发器、寄存器和计数器129 5.1基本锁存器129 5.2门控SR锁存器131 5.3门控D锁存器132 5.4边沿触发的D触发器134 5.5T触发器139 5.6JK触发器139 5.7术语小结140 5.8寄存器140 5.9计数器142 5.10复位同步147 5.11其他类型的计数器149 5.12用CAD工具设计含存储元件的电路151 5.13用Verilog构建寄存器和计数器156 5.14设计举例160 5.15触发器电路的时序分析164 5.16小结167 5.17解决问题的实例167 习题171 参考文献174 第6章同步时序电路175 6.1基本设计步骤176 6.2状态分配问题183 6.3Mealy状态模型185 6.4采用CAD工具设计有限状态机188 6.5串行加法器实例193 6.6状态最小化197 6.7基于时序电路的计数器设计202 6.8仲裁电路的FSM207 6.9同步时序电路的分析209 6.10算法状态机流程图211 6.11时序电路的形式模型213 6.12小结214 6.13解决问题的实例214 习题219 参考文献220 第7章数字系统设计222 7.1总线结构222 7.2简单的处理器227 7.3位计数电路234 7.4移位和加乘法器238 7.5除法器242 7.6算术平均248 7.7排序操作251 7.8时钟同步和时序问题258 7.9小结260 习题261 参考文献262 第8章逻辑函数的优化实现264 8.1多级综合264 8.2多级电路分析271 8.3逻辑函数的其他表示方法273 8.4基于立方体表示法的优化技术279 8.5小结288 8.6解决问题的实例289 习题293 参考文献294 第9章异步时序电路296 9.1异步行为296 9.2异步电路分析298 9.3异步电路综合303 9.4状态化简309 9.5状态分配316 9.6冒险324 9.7一个完整的设计实例328 9.8小结331 9.9解决问题的实例332 习题335 参考答案337 第10章计算机辅助设计工具338 10.1综合338 10.2物理设计342 10.3小结345 参考文献345 第11章逻辑电路测试346 11.1故障模型346 11.2测试集的复杂度347 11.3路径敏化348 11.4树形结构电路350 11.5随机测试351 11.6时序电路的测试353 11.7内建自测试355 11.8印制电路板359 11.9小结361 习题362 参考文献363 附录AVerilog参考364 附录B实现技术391 部分习题参考答案440
你还可能感兴趣
|

书单推荐 





