华信教育资源网
数字设计——Verilog HDL、VHDL和SystemVerilog实现(第六版)(英文版)
作   译   者:M. Morris Mano 出 版 日 期:2020-09-01
出   版   社:电子工业出版社 维   护   人:冯小贝 
书   代   号:G0395860 I S B N:9787121395864

图书简介:

本书是一本系统介绍数字电路设计的优秀教材,旨在教会读者关于数字设计的基本概念和基本方法。全书共分10章,内容涉及数字逻辑的基本理论,组合逻辑电路、时序逻辑电路、寄存器和计数器、存储器与可编程逻辑器件,寄存器传输级设计、半导体和CMOS集成电路、标准IC和FPGA实验、标准图形符号、Verilog HDL、VHDL、SystemVerilog与数字系统设计等。全书结构严谨,选材新颖,内容深入浅出,紧密联系实际,教辅资料齐全。
定价 139.0

关注公众号

关注微博

您的专属联系人更多
联系人:李蕊
电话:010-88254558
邮箱:lir@phei.com.cn
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    会员上传本书资源

  • 图 书 内 容

    图书详情

    ISBN:9787121395864

    开 本:16(185*235)

    印 张:43.75

    版 次:01-01

    页 数:700

    字 数:1310

    内容简介

    本书是一本系统介绍数字电路设计的优秀教材,旨在教会读者关于数字设计的基本概念和基本方法。全书共分10章,内容涉及数字逻辑的基本理论,组合逻辑电路、时序逻辑电路、寄存器和计数器、存储器与可编程逻辑器件,寄存器传输级设计、半导体和CMOS集成电路、标准IC和FPGA实验、标准图形符号、Verilog HDL、VHDL、SystemVerilog与数字系统设计等。全书结构严谨,选材新颖,内容深入浅出,紧密联系实际,教辅资料齐全。

    本书目录

    Contents
    1 Digit a l S ys tems and Binar y Numbers 17
    1.1 Digital Systems 17
    1.2 Binary Numbers 20
    1.3 Number-Base Conversions 22
    1.4 Octal and Hexadecimal Numbers 25
    1.5 Complements of Numbers 27
    1.6 Signed Binary Numbers 33
    1.7 Binary Codes 38
    1.8 Binary Storage and Registers 47
    1.9 Binary Logic 50
    2 Boolean Algebra and Logic Gate s 57
    2.1 Introduction 58
    2.2 Basic Definitions 58
    2.3 Axiomatic Definition of Boolean Algebra 59
    2.4 Basic Theorems and Properties of Boolean Algebra 63
    2.5 Boolean Functions 66
    2.6 Canonical and Standard Forms 72
    2.7 Other Logic Operations 81
    2.8 Digital Logic Gates 83
    2.9 Integrated Circuits 89
    3 Gate-Level Minimization 98
    3.1 Introduction 99
    3.2 The Map Method 99
    3.3 Four-Variable K-Map 106
    3.4 Product-of-Sums Simplification 111
    3.5 Don’t-Care Conditions 115
    3.6 NAND and NOR Implementation 118
    3.7 Other Two-Level Implementations 126
    3.8 Exclusive-OR Function 131
    3.9 Hardware Description Languages (HDLs) 137
    3.10 Truth Tables in HDLs 154
    4 Combinational Logic 163
    4.1 Introduction 164
    4.2 Combinational Circuits 164
    4.3 Analysis of Combinational Circuits 165
    4.4 Design Procedure 169
    4.5 Binary Adder–Subtractor 172
    4.6 Decimal Adder 184
    4.7 Binary Multiplier 186
    4.8 Magnitude Comparator 188
    4.9 Decoders 191
    4.10 Encoders 195
    4.11 Multiplexers 198
    4.12 HDL Models of Combinational Circuits 205
    4.13 Behavioral Modeling 231
    4.14 Writing a Simple Testbench 239
    4.15 Logic Simulation 245
    5 Synchronous Sequential Logic 261
    5.1 Introduction 262
    5.2 Sequential Circuits 262
    5.3 Storage Elements: Latches 264
    5.4 Storage Elements: Flip-Flops 269
    5.5 Analysis of Clocked Sequential Circuits 277
    5.6 Synthesizable HDL Models of Sequential Circuits 291
    5.7 State Reduction and Assignment 316
    5.8 Design Procedure 321
    6 Registers and Counters 342
    6.1 Registers 342
    6.2 Shift Registers 346
    6.3 Ripple Counters 354
    6.4 Synchronous Counters 359
    6.5 Other Counters 367
    6.6 HDL Models of Registers and Counters 372
    7 Memory and Programmable Logic 393
    7.1 Introduction 394
    7.2 Random-Access Memory 395
    7.3 Memory Decoding 402
    7.4 Error Detection and Correction 407
    7.5 Read-Only Memory 410
    7.6 Programmable Logic Array 416
    7.7 Programmable Array Logic 420
    7.8 Sequential Programmable Devices 424
    8 Design at the Registe r Transfer Leve l 445
    8.1 Introduction 446
    8.2 Register Transfer Level (RTL) Notation 446
    8.3 RTL Descriptions 448
    8.4 Algorithmic State Machines (ASMs) 466
    8.5 Design Example (ASMD CHART) 475
    8.6 HDL Description of Design Example 485
    8.7 Sequential Binary Multiplier 503
    8.8 Control Logic 508
    8.9 HDL Description of Binary Multiplier 514
    8.10 Design with Multiplexers 529
    8.11 Race-Free Design (Software Race Conditions) 545
    8.12 Latch-Free Design (Why Waste Silicon?) 548
    8.13 SystemVerilog—An Introduction 549
    9 Laborator y Experiments with
    Standard ICs and FPGAs 571
    9.1 Introduction to Experiments 571
    9.2 Experiment 1: Binary and Decimal Numbers 576
    9.3 Experiment 2: Digital Logic Gates 579
    9.4 Experiment 3: Simplification of Boolean Functions 581
    9.5 Experiment 4: Combinational Circuits 583
    9.6 Experiment 5: Code Converters 584
    9.7 Experiment 6: Design with Multiplexers 586
    9.8 Experiment 7: Adders and Subtractors 588
    9.9 Experiment 8: Flip-Flops 591
    9.10 Experiment 9: Sequential Circuits 593
    9.11 Experiment 10: Counters 595
    9.12 Experiment 11: Shift Registers 596
    9.13 Experiment 12: Serial Addition 600
    9.14 Experiment 13: Memory Unit 601
    9.15 Experiment 14: Lamp Handball 603
    9.16 Experiment 15: Clock-Pulse Generator 607
    9.17 Experiment 16: Parallel Adder and Accumulator 609
    9.18 Experiment 17: Binary Multiplier 611
    9.19 HDL Simulation Experiments and Rapid Prototyping with FPGAs 615
    10 Standard Graphic Symbols 621
    10.1 Rectangular-Shape Symbols 621
    展开

    前     言

    前??言

    今天,数字设备的处理速度、密度和复杂度,在很大程度上得益于物理处理工艺和数字设计方法的发展。除半导体工艺外,前沿设备的设计极大地依赖于硬件描述语言(HDL)和综合工具。有三种主流语言在数字设计流程中发挥了很大作用,它们是Verilog HDL(以下简称Verilog)、VHDL和SystemVerilog。掌握HDL和数字逻辑电路的基础知识,成为计算机科学、计算机工程和电气工程等专业的学生进入数字设计世界的必备技能。
    过去,电子工程专业毕业的学生必须要学会使用示波器;现在,则要求毕业生至少熟悉一门HDL。作为一名学生,掌握HDL将使他们在毕业后能更好地成为设计团队的一员。
    鉴于设计领域中存在三种HDL,本书重点介绍Verilog和VHDL,而对SystemVerilog只做简要介绍。我们不要求学生同时掌握这三种语言,甚至是其中的两种。当教授系统设计方法时,可以选择Verilog或VHDL中的一种,也可以选择SystemVerilog。当然,Verilog和VHDL现已被广泛应用,在电路设计领域占有主导地位。它们都以组合逻辑设计和时序逻辑设计这两个概念为基础,这对于高密度集成电路的综合是必不可少的。我们的教材同时提供了这两种语言的描述方式,学生选择其中的一种即可。在处理Verilog和VHDL语言时,没有强调某一种语言优于另一种语言,而是围绕它们在数字设计中的语言特征为主线加以介绍。每一章的最后都有大量习题,可以用Verilog或VHDL来实现求解过程。
    本教材的重点是数字设计,HDL只是一个工具。因此,本书只提供支持数字设计入门所需的Verilog、VHDL和SystemVerilog的知识。另外,虽然每一种语言都给出了一些例子,但都对例子的主题进行了标注,以便教师任选Verilog或VHDL中的一种进行教学。如果先强调Verilog,后介绍SystemVerilog,则并不影响我们的教学目标。SystemVerilog是可选教学部分,我们将其作为Verilog的扩展,在书中仅提供了一些例子,同样符合教学目标。我们不提倡同时教授多种语言,教师可以选择Verilog/SystemVerilog或VHDL作为数字设计介绍性课程的核心语言。但是,不管是哪种语言,我们的重点都是数字设计。
    对基于HDL的示例,本书不仅尽量描述清楚,而且还重点说明了数字电路的建模和验证过程。书中对于Verilog和VHDL都没有进行完整介绍,这与所选择的语言无关,相关的示例讲解的是基于数字系统的计算机辅助建模概念的设计方法,该方法使用了主流的IEEE标准化硬件描述语言。
    本书第六版的每章开头都列出学习目标,并在章末提供习题,此外还给出了大量的示例和练习。所有这些安排有助于学生完成学习目标,掌握数字设计的一些技巧。此外,书末给出了部分习题的答案详解。教师可以在课堂上就某个问题的解决方法进行教学。
    多模式学习
    与以前的版本类似,本书第六版也支持多模式学习。所谓的VARK模式①,②确定了我们学习的四种主要方式:视(V)、听(A)、读(R)、动(K)。教材中相对高层次的讲解和插图涉及VARK的视(V),基础的讨论和大量的示例涉及读(R)。利用免费的Verilog、VHDL和SystemVerilog模拟器与综合工具,学生可以完成课后作业。通过动手获得学习体验,可以使学生感受到实际设计数字电路的乐趣。这时,VARK中剩余的是听(A)的体验,这取决于教师和学生的注意力。我们提供了大量的资料和示例来支持课堂教学。因此,使用本书作为教材的课程,在强调VARK模式的基础上,可以给学生带来丰富、均衡的学习体验。
    在数字设计的第一节课上,需要对仍然质疑使用HDL的那些人说,我们强调的是工业上不使用基于原理图的设计方法。原理图可以描述电路的结构和布局,但是,没有对功能结构进行说明,或者没有在附加文档中说明设计意图,任何人都很难在短时间内确定逻辑电路原理图所表示的功能。因此,当今工业上几乎完全依赖HDL来描述设计功能,HDL也是在基于标准单元的ASIC或FPGA中实现设计、模拟、测试和综合的。原理图的实用性在于描述结果非常详细,设计单元的层次化结构都被细致地描绘出来。过去,设计师要依靠多年经验来设计原理图,从而实现相应功能。如今,设计师使用HDL可以直接、清楚地表达功能,使用综合工具自动生成原理图。工业上采用基于HDL的设计流程,而不是使用原理图,因为使用原理图会使我们在理解和设计大型、复杂的集成电路时效率低下。
    我们在数字设计的第一节课中引入HDL的目的,并不是为了取代利用电路基本单元进行模块化的设计方法,也不是不需要人来参与设计。对学生来说,理解硬件的工作原理仍然很重要。因此,本书第六版保留了对组合和时序逻辑设计以及布尔代数基础的完整描述。书中仍旧介绍了人工设计方法,并与通过HDL得到的结果进行了比较。尽管如此,我们要强调的是目前的硬件如何设计,以便学生对将来的职业生涯有所准备,毕竟在这个行业中,基于HDL的设计实践是占主导地位的。
    灵活性
    书中包含了人工设计和基于HDL的设计的两类示例。每章章末的习题是可以相互参考的,即使用人工设计方法得出的结果与使用HDL完成的指定任务相互对照。在书末的部分习题答案和(教师用)解答手册中,通过在程序中注释仿真结果,我们将人工设计方法和基于HDL的设计方法结合在一起。
    第六版更新内容
    本书第六版使用IEEE标准1364的最新特性,但仅限于对教学目标的支持。本书所做的修改和更新包括:
    删除了前面课程中的逻辑电路和数字设计使用的特殊门电路内容(如RTL、DTL和ECL电路)。
    在章末增加“网络搜索主题”部分,让学生了解网络上的相关内容。
    修订了三分之一左右的习题。
    对整本书的人工设计示例都给出了答案,包括所有的新问题。
    精简了卡诺图的讨论内容。
    综合了基本CMOS集成工艺和逻辑门。
    附录部分介绍了半导体工艺。
    使用VHDL和SystemVerilog进行数字设计。
    设计方法论
    本书系统描述了设计状态机来控制数字系统数据路径的方法,并给出考虑了实际情况的框架化结构。其中,从数据路径出来的信号被控制器使用,这就是所谓的系统反馈(响应)。因此,该方法为设计复杂且交互式的数字设计提供了基础,尽管它强调基于HDL的设计,但是这种方法既可以用于人工设计,也可以用于基于HDL的设计。
    适量的HDL
    书中只提供了Verilog、VHDL和VerilogSystem的基本语法元素,满足基本的应用需求。另外,正确的语法并不能保证模型满足功能指标或者能被综合到物理硬件中。因此,我们向学生介绍基于工业实践的HDL模型编写规则,确保行为描述能够被综合到物理硬件中,并且综合后的电路功能和行为描述一致。如果不遵循规则,就会导致状态机的HDL模型中出现软件竞争情形,用于验证模型的测试平台中也将出现竞争情形,并且模拟行为模型的结果和被综合的物理硬件之间出现不匹配。类似地,如果不遵守HDL工业规则,也许设计的模拟结果是正确的,但会引入硬件锁存器,原因就在于设计者使用的建模风格。书中介绍的基于工业的设计方法可以使设计中不会出现竞争和不需要的锁存器。所以,无论是否能获得综合工具,对学生来说,学习和遵循使用HDL模型的工业实践要求非常重要。
    验证
    工业上,一个重要步骤是验证电路是否能够正常工作,如此可以排除很多的失误。然而,现在对数字设计的验证环节没有足够的重视,而仅仅关注设计本身,验证通常被认为是次要的。我们凭借经验,往往会过早地主观认为“这个电路工作得很好”。类似地,通过确保投资的HDL模型是可靠的、可移植的和可重复使用的,工厂才能获得源源不断的投资收益。为了保证可重复使用和可移植性,需要对命名规则和参数使用进行规范。同时,我们提供了相关的解决方案和练习的测试平台,目的在于:
    (1)验证电路功能。
    (2)强调测试的重要性。
    (3)向学生介绍重要概念,如测试平台中的自检。
    提倡开发测试计划来指导开发测试平台,我们会在书中介绍测试方案,并且在书末的部分习题答案中进一步加以说明。
    HDL内容
    我们已经确认过书中所有的示例解决方案都符合数字硬件建模的工业实践。与上一版一样,HDL材料被放在一个单独的部分,这样可以按照教学需要进行删减。本书没有减少关于人工设计的论述,也没有指定授课的顺序。书中的描述适合同时需要学习数字电路和HDL的初学者。本书帮助学生自主设计项目,如此可以在后面的计算机体系结构和高级数字设计课程中有所收获。
    教师可用资源①
    教师可以从出版商处获得相关的资源,包括:
    所有测试用的Verilog示例的源代码。
    插图和表格形式的PowerPoint文件。
    解答手册。
    HDL模拟器
    学生可以从www.syncad.com上下载两个模拟器。第一个模拟器是VeriLogger Pro,这是一个传统的模拟器,可以用于模拟本书中的HDL示例和验证HDL习题答案。此模拟器接受IEEE-1995标准语法,因此对一些以前建立的模型非常有用。另一个模拟器VeriLogger Extreme是一种交互的模拟器,同时接受IEEE-1995和IEEE-2001标准语法,允许设计者在建立可用的完整模拟模型或原理图之前,对设计思路进行模拟和分析。这对学生十分有用,因为他们可以快速输入布尔方程和D触发器或锁存器方程,与用D触发器和锁存器的设计结果进行比较。在www.altera.com和www.xilinx.com上,学生可以下载支持FPGA设计、仿真和综合的设计工具。
    每章内容摘要
    下面是每章内容摘要。
    第1章:介绍了几种数字系统中的信息表示方法,阐述二进制数制系统和二进制代码,举例说明二进制-十进制编码(BCD)的带符号二进制数和十进制数的加减法。
    第2章:介绍了布尔代数的基本定理和布尔表达式与逻辑电路图之间的相关性,研究了两个变量所有可能的逻辑运算和数字电路系统设计中最有用的逻辑门,还介绍了基本CMOS逻辑门。
    第3章:介绍了化简布尔表达式的卡诺图,可以用来化简与或门、与非门、或非门构成的数字电路。本章还介绍了其他所有两级门电路的简化方法和实现方法,并用Verilog和VHDL硬件描述语言描述了几个简单的门级模型。
    第4章:介绍了分析和设计组合电路的基本步骤,还介绍了数字系统设计中需要用到的基本部件,如加法器和代码转换器等。对于经常使用的数字逻辑部件,如并行加法器和减法器、编码器和译码器、数据选择器以及它们在数字电路中的应用,本章也给予了说明。Verilog示例采用了门级、数据流等形式,可以用Verilog和VHDL描述组合电路。本章还给出了一个简单的测试平台,可用于对硬件描述语言设计结果进行测试。
    第5章:概述了分析和设计钟控(同步)时序电路的基本步骤,描述了几类触发器的门电路结构以及同电平和边缘触发的区别。时序电路的分析示例使用了状态表和状态图,时序电路的设计示例则使用了D触发器。本章还说明了Verilog和VHDL中时序电路的行为模型。相关的HDL示例用来说明Mealy型和Moore型时序电路模型。
    第6章:介绍了多种时序电路部件,如寄存器、移位寄存器和计数器。这些数字部件是构成其他复杂数字电路的基本单元。本章还使用HDL对移位寄存器和计数器进行了描述。
    第7章:介绍了随机存取存储器(RAM)和可编程逻辑器件,讨论了存储器的解码和纠错方法,介绍了ROM、PLA、CPLD和FPGA等组合和时序可编程逻辑器件。
    第8章:介绍了数字系统的寄存器传输级表示方法,介绍了算法状态机(ASM)图,举例说明了数字系统设计中如何使用ASM图、ASMD图、RTL描述和HDL描述,详细介绍了使用有限状态机如何控制数据路径,以及如何利用状态机从数据路径中获取信号并控制它。本章是本书最重要的一章,将教会学生如何使用系统方法处理更高级的项目。
    第9章:介绍了可以在实验室中用商业硬件平台进行的实验。实验中使用的集成电路功能可以参考前面章节中介绍的内容。对于本章介绍的每一个实验,我们都希望学生自己去设计电路,并总结在实验室验证其功能的步骤。实验也可以通过传统的方法完成,学生可以使用实验板和TTL电路,也可以使用基于FPGA的HDL/综合方法。现在,FPGA厂商可以免费提供用于综合的HDL模型和实现FPGA电路的软件,这使得学生在实验室使用原型开发板和其他资源之前,能够自己完成大量的设计工作。带有FPGA的速成型电路板价格低廉,其电路通常包括按钮、开关、七段数码管显示器、LCD、键盘和其他I/O设备。有了这些资源,学生可以按照规定进行练习或完成自己的项目,并立即得到结果。
    第10章:介绍了使用ANSI/IEEE标准的逻辑函数图形符号,这些图形符号是为SSI和MSI的部件而开发的,因此用户可以从特殊的图形符号中识别出逻辑功能。本章还介绍了实验用的集成电路标准图形符号。

    致谢
    感谢本书第六版的审稿人,他们的专业意见与建议帮助完善了本书的内容。他们是
    Vijay Madisetti, Georgia Tech
    Dmitri Donetski, SUNY Stony Brook
    David Potter, Northeastern
    Xiaolong Wu, California State-Long Beach
    Avinash Kodi, Ohio University
    Lee Belfore, Old Dominion University
    感谢Pearson Education的编辑小组负责这本书的出版工作。同时,要感谢我们的妻子Sandra和Jerilynn对我们工作的支持。

    M. Morries Mano 
    加利福尼亚州立大学计算机工程名誉教授
    Michael D. Ciletti
    科罗拉多州立大学电子与计算机工程名誉教授
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价我要评论
华信教育资源网