Xilinx Vivado数字设计权威指南:从数字逻辑、Verilog HDL、嵌入式系统到图像处理(txt+pdf+epub+mobi电子书下载)


发布时间:2021-02-24 15:51:07

点击下载

作者:何宾

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Xilinx Vivado数字设计权威指南:从数字逻辑、Verilog HDL、嵌入式系统到图像处理

Xilinx Vivado数字设计权威指南:从数字逻辑、Verilog HDL、嵌入式系统到图像处理试读:

前言

现场可编程门阵列(Field Programmable Gate Array, FPGA)越来越多地被应用在新技术中,如物联网、云计算和人工智能等。在这些应用中,FPGA主要用来对数据进行加速处理。为了应对这些应用,降低软件工程师应用FPGA的难度,Xilinx公司不断推出新的设计工具,如高级综合工具(High Level Synthesis, HLS),以降低使用FPGA实现复杂应用的难度。然而,很多软件工程师仍然觉得FPGA入门较难,这是因为他们普遍认为Verilog HDL比较抽象难懂,且FPGA的内部结构过于复杂。其实,最根本的原因是软件设计工程师常常以传统软件的思维来看待FPGA,他们普遍认为FPGA是硬件,与软件没有太多的交集,在FPGA中实现传统上由软件实现的算法模型难度较大。根据作者长期教学和科研的经验,数字逻辑和数字电路基础知识是他们入门FPGA的“绊脚石”和“拦路虎”。为了帮助广大读者能真正进入FPGA设计领域,尤其是FPGA的初学者和那些从事传统软件开发工作的工程师,作者编写了本书。本书是作者多年从事FPGA教学和科研工作的体会与总结,期望对广大初学者系统掌握FPGA的设计方法提供很好的帮助。

数字逻辑和数字电路的基本理论知识是学习FPGA的基础,不管FPGA技术今后如何发展,始终离不开数字逻辑的基本理论知识。系统深入地掌握以上知识是读者进入FPGA设计世界的基石,特别重要。所以,在编写本书时特意增加了数字逻辑基础和数字电路两章内容。作者在编写这两章内容时参考了国外大量的设计资料,希望通过这两章内容的讲解来帮助广大读者准确地把握数字世界的本质,并且通过Multisim内集成的SPICE仿真工具对这些知识点进行了直观演示和验证。根据作者多年的教学经验,认为这些知识难点是入门FPGA的最大障碍,因此通过SPICE仿真工具给出的分析结果帮助读者扫清这些学习障碍。

Verilog HDL是本书最重要的内容之一,用于对复杂数字系统(尤其是FPGA)进行行为级和寄存器传输级建模。本书严格按照IEEE Std 1364-2005规范介绍Verilog HDL的词法和句法。在介绍这部分内容时,将Verilog HDL与复杂数字系统(尤其是FPGA)模型之间的对应关系进行系统讲解,使读者理解Verilog HDL的词法和句法在复杂数字系统行为级和寄存器传输级描述中的使用方法。

本书的一大特色是将Verilog HDL和Vivado集成开发环境进行系统化深度融合,从不同角度深度解读Verilog HDL语言的实现本质。针对Verilog HDL中的一些语法难点,书中通过Vivado集成开发环境提供的功能进行演示和说明。在此要特别指出,Vivado集成开发工具是学习Verilog HDL最好的助手,这是因为在初学者遇到Verilog HDL中不理解的地方时,可以很容易地通过Vivado集成开发工具给出的电路结构和仿真结果进行直观的说明。为了帮助读者提高灵活运用Verilog HDL构建复杂数字系统模型的能力,书中给出了大量的基本逻辑单元的寄存器传输级描述,以及一个复杂数字系统设计实例和数模混合系统设计实例。

本书的另一大特色是引入ARM为Xilinx现场可编程门阵列最新定制的Cortex-M1处理器软核。通过使用Verilog HDL构建嵌入式硬件平台和使用C语言编写硬件驱动,以及实现软件应用,在现场可编程门阵列内实现了真正意义上的片上可编程嵌入式系统。这里的可编程是指使用Verilog HDL定制嵌入式系统的硬件,然后使用C语言为这个定制的嵌入式硬件平台编写软件驱动和应用,这个设计过程充分体现了在FPGA上构建嵌入式系统的灵活性和高效性,同时对广大读者系统学习ARM嵌入式的硬件和软件知识提供了很好的帮助。通过对片上嵌入式系统设计流程的详细解读,读者将进一步掌握C语言串行执行和Verilog HDL并行处理的本质特点。通过在嵌入式系统设计中合理划分软件和硬件的边界,最终实现低成本、高性能的片上嵌入式系统设计。当然,对片上嵌入式系统设计过程的系统讲解也是为了帮助读者理解软件处理的灵活性和硬件处理的高效性,进而使读者进一步理解在新技术中越来越多地使用硬件(FPGA)来实现更复杂的算法的原因。

全书共10章,内容主要包括数字逻辑基础、数字逻辑电路、可编程逻辑器件原理、Vivado集成开发环境设计流程、Verilog HDL语言规范、基本数字逻辑单元Verilog HDL描述、复杂数字系统设计和实现、数模混合系统设计、片上嵌入式系统的构建和实现,以及图像采集、处理系统的构建和实现。为了便于读者自学,本书提供了所有设计实例的完整设计文件和公开教学视频,这些资源可以通过书中学习说明给出的链接地址获取。

在本书编写过程中参考了许多著名学者和专家的研究成果,同时也参考了Xilinx公司的技术文档和手册。在编写本书的过程中,Xilinx多位技术专家解答了作者在设计中所遇到的各种问题,ARM大学计划提供了Cortex-M1及其参考设计在此向他们表示衷心的感谢。在本书编写的过程中,作者的学生孟繁阳负责设计和验证第1章和第2章的实例,学生周杨参与本书第10章实例的设计和部分文字编写。除此之外,参加本书编写的还有何长有,在此表示感谢。在本书出版的过程中,也得到了电子工业出版社编辑的帮助和指导,在此也表示深深的谢意。

由于编著者水平有限,编写时间仓促,书中难免有疏漏之处,敬请读者批评指正。

作者

2019年5月于北京第1章数字逻辑基础本章主要介绍了数字逻辑的发展史、SPICE仿真工具基础、开关系统、半导体数字集成电路、基本逻辑门电路及特性、逻辑代数理论、逻辑表达式的化简、毛刺产生及消除,以及数字码制表示和转换。为了降低读者的学习难度,在介绍本章重要的知识点时引入了SPICE仿真实例,从多个角度对数字逻辑基础知识进行了解读。本章内容是学习数字逻辑电路的基础,读者必须理解并掌握本章的内容,为后续学习数字逻辑电路知识打下坚实的基础。1.1 数字逻辑的发展史

在过去的60年中,数字逻辑改变了整个世界,整个世界朝着数字化方向发展。今天我们所熟悉的计算机是在第二次世界大战后才出现在人类世界中的。表1.1给出了计算机和数字逻辑发展历史中的重大事件,从该表可以看出数字逻辑设计技术经过了近400年逐步演化的过程。表1.1 计算机和数字逻辑发展历史中的重大事件

最古老的算盘就是一种帮助人们进行计算的工具,它的外面有一个木框,木框中嵌有细杆,杆上串有算盘珠,算盘珠可沿细杆上下拨动,通过拨动算珠完成算术运算。

直到16世纪,人类才开始真正设计帮助人类进行计算的机器。这些计算机器中,最著名的是Blaise Pascal于19岁时发明的Pascaline,用于帮助其父亲进行税务计算工作。Pascal建立了5~8个数字版本的Pascaline,每个数字与一个表盘、轴和齿轮关联,该计算机器能够进行加法和减法(通过生成减数的9位补码进行加法运算)运算。由于机械故障,该计算机器失败,并且其运算能力也非常有限。

Charles Babbage被认为是“计算机之父”,他在1822年建立了差分机工作模型,这个模型可以计算数学表(如对数),通过差分方法计算一个表中的6位数字。Babbage为差分机制制订了详细的计划,该机器可以最多计算到20位,并且可以生产一个金属盘用于打印表格。通过英国政府的资助,Babbage和他的主要的机械工程师一起尝试建立差分机器。由于技术和个人问题(当前的机器工具不能够满足Babbage的精度要求,以及他妻子的病逝和机械师的意见不一致),一直妨碍着这个机器的建成。在1834年,Babbage设想了一种更强的分析机,该分析机用于解决数学问题。但是,政府于1842年终止了这个项目。尽管Babbage知道在那个时代不可能建立分析机,但是他的余生中,他致力于设计这种机器,给出了分析机的大量注释,其中包含成百个轴和上千个齿轮与轮子,也包括今天计算机中的很多部件(如存储器和CPU,其中打孔卡用于给机器编程)。

使用自动织机打孔进行编程的灵感由Joseph-Marie Jacquard于1801年提出。在1880年, Herman Hollerith作为美国人口普查的代理人开始工作,1880年普查的数据需要花费很多年时间进行制表。1882年,Herman Hollerith成为MIT的机械工程教员,随后发明了一个电子机械式系统,该系统能够对包含统计数据的打孔卡进行计算和分类,且该系统可以实现在6周内对1890年的人口统计数据进行制表。1896年,Hollerith成立了制表机器公司,后来成为IBM公司。

研制计算机方面的另一个推动力是二次世界大战,在宾夕法尼亚大学的电气工程摩尔学院,J.Presper Eckert和John W.Mauchly开始研制数字积分器和微分器ENIAC,他们是这个大型电子计算器的主要设计者。从1944年开始,他们专注下一个计算机电子离散变量计算机EDVAC的研制,这是首个存储程序计算机。然而,由于在专利权方面的意见不一,他们于1946年离开了摩尔学院,然后创立了电子控制公司,其目的是生产通用的自动化计算机UNIVAC。由于资金问题所困,他们于1948年重新组建了Eekert-Mauchly计算机公司,并于1950年将其卖给了Remington Rand。

IBM公司于1953年发布了首台电子计算机,比贝尔实验室发明晶体管提早了6年。晶体管的出现对数字逻辑和计算机产生了深远的影响。半导体内的电子能够控制电流和电压的思想,对现代半导体的发展产生了深远的影响。固态技术的不断推进,使得在20世纪60年代产生了集成电路,并分别在20世纪70年代和20世纪80年代诞生了微处理器和可编程逻辑器件。

1965年,Gordon Moore提出了著名的“摩尔定律”,并于1975年进行了修正,该定律的主要内容包括:大约每隔18个月,集成电路上可容纳的晶体管数目就会增加一倍,性能也将提升一倍。也就是说,当价格不变时,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上。这一定律成为半导体工艺不断发展的指南。在过去的40多年,半导体技术的发展一直服从于摩尔定律给出的发展路线。如图1.1所示,给出了Intel公司CPU的发展路线,该路线清楚地表明半导体的发展趋势与摩尔定律相吻合。

微处理器的发展,对人类的生活产生了重要的影响。今天,处理器几乎嵌入到了所有的产品中,从手机到汽车等方面。通过执行保存在存储器里的程序指令,通用微处理器可用于实现通用的算法。

随着现场可编程门阵列(Field Programmable Gate Array, FPGA)的发展,很多算法可以在FPGA内直接实现,这要比微处理器通过执行程序指令来实现算法要快得多,这是因为FPGA的本质是并行的。图1.1 Intel公司CPU的发展路线

思考与练习1-1:根据表1.1给出的重大事件完成下面的题目。(1) 晶体管的发明时间是______年。(2) 第一片集成电路的发明时间是______年。(3) 在______年, 逻辑代数体系由______提出。(4) 在______年, 提出摩尔定理, 并于______年进行修正。(5) 在______年, VHDL成为国际标准, 其标准号为______。(6) 在______年, Verilog HDL成为国际标准, 其标准号为______ 。(7) 在______年, 美国Xilinx公司发明了全球第一片现场可编程门阵列 (FPGA)。

思考与练习1-2:请查阅资料说明摩尔定律的主要内容。1.2 SPICE仿真工具基础

在模拟和数字电路的设计与分析中,以集成电路为重点的仿真程序(Simulation Program With Integrated Circuit Emphasis, SPICE)发挥了重要的作用。通过SPICE提供的分析功能,我们能够快速地评价所设计电路的性能指标,从而最大限度地避免设计缺陷。需要特别注意的是,SPICE是基于晶体管级的电路仿真,SPICE的仿真结果与真实硬件环境测试的结果是有差别的,这是因为在SPICE的仿真中电源和地都是理想的,而实际情况并非这样。

例如,在NI公司的Multisim工具、Altium公司的Altium Designer工具、Cadence公司的OrCAD工具中都嵌入了SPICE,进一步增强了软件工具的电路设计和分析能力。1.2.1 SPICE的分析功能

SPICE最早由加州大学伯克利分校开发,1975年改进成为 SPICE2的标准,它使用FORTRAN语言开发。1989年,Thomas Quarles开发出SPICE3,它使用C语言编写,并且增加了窗口系统绘图功能。如图1.2所示,Multisim工具中SPICE提供的分析功能如下所示。图1.2 Multisim工具中SPICE提供的分析功能

1.直流工作点(DC Operating Point)分析

直流工作点分析用于测量包含短路电感和开路电容电路的直流工作点。在测定瞬态初始化条件时,除了已经在瞬态或傅里叶分析设置中使能了Use Initial Conditions参数的情况,直流工作点分析将优先于瞬态分析。同时,直流工作点分析优先于交流小信号、噪声和零级点分析。为了保证测量的线性化,电路中使用非线性的小信号模型。在直流工作点分析中将不考虑任何交流源的干扰因素。

2.直流扫描(DC Sweep)分析

直流扫描分析就是直流转移特性。当输入在一定范围内变化时,输出一个曲线轨迹。通过执行一系列直流工作点分析,设计者可以修改所选定信号源的电压,从而可以得到一个直流传输曲线。

3.传递函数(Transfer Function)分析

传递函数分析也称为交流小信号分析,它将计算每个电压节点上的直流输入电阻、直流输出电阻和直流增益值。利用传递函数分析可以计算整个电路中直流输入电阻、直流输出电阻和直流增益3个小信号的值。

4.交流扫描(AC Sweep)分析

交流扫描分析在一定的频率范围内计算电路的响应特性。通过交流扫描分析,将得到信号的幅度-频率响应特性和相位-频率响应特性。如果电路中包含非线性器件或元件,在计算频率响应之前,就应该得到此元器件的交流小信号参数。交流扫描分析类似于使用真实的频谱分析仪对电路的频率特性进行分析。

5.瞬态(Transient)分析

瞬态分析在时域中描述瞬态输出变量的值。在未使能“Use Initial Conditions”参数时,对于固定偏置点,在计算偏置点和非线性元件的小信号参数时,节点初始值也应考虑在内。因此,对于有初始值的电容和电感,也被看作电路的一部分。瞬态分析类似于使用真实的示波器对电路的时域特性进行分析。

6.傅里叶(Fourier)分析

基于瞬态分析中最后一个周期的数据完成一个电路的傅里叶分析。在执行傅里叶分析后,系统将自动创建一个数据文件,该文件包含了每一个谐波的幅度和相位信息。

7.噪声(Noise)分析

噪声分析是利用噪声谱密度来测量由电阻和半导体器件引入的噪2声对电路的影响的。通常,由“V/Hz”表征测量噪声值。电阻和半导体器件等都能产生噪声,噪声电平取决于频率。电阻和半导体器件产生不同类型的噪声。在噪声分析中,电容、电感和受控源被看作无噪声元器件。

对于交流分析的每一个频率,计算电路中每一个噪声源(电阻或晶体管)的噪声电平。通过将各个均方根值相加,得到它们对输出节点的贡献。

8.零极点(Pole Zero)分析

在单输入输出的线性系统中,利用电路的小信号交流传递函数,通过计算传递函数中的极点或零点来分析电路的稳定性。传递函数可以是电压增益(输出与输入电压之比)或阻抗(输出电压与输入电流之比)中的任意一个。

零极点分析可用于对电阻、电容、电感、线性控制源、独立源、二极管、BJT 管、MOSFET管和JFET管的分析,但是不支持传输线。对复杂电路进行零极点分析可能需要耗费大量时间,并且可能找不到全部的极点和零点。因此,一般先将其拆分为较小的电路后再分析零极点会更有效。

9.蒙特卡罗(Monte Carlo)分析

蒙特卡罗分析是一种统计模拟方法,它是在给定电路元器件参数容差为统计分布规律的情况下,用一组伪随机数求得元器件参数的随机抽样序列,然后对这些随机抽样的电路进行直流扫描、直流工作点、传递函数、噪声、交流小信号和瞬态分析,并且通过多次的分析结果估算出电路性能的统计分布规律。

在蒙特卡罗分析的基础上可以进行最坏情况(Worst Case)分析。

10.温度扫描(Temperature Sweep)分析

温度扫描分析是指在一定的温度范围内计算电路参数,以确定电路的温度漂移等性能指标。温度扫描分析时,一般会产生大量的分析数据。

11.参数扫描(Parameter Sweep)分析

参数扫描分析可以与直流分析、交流分析或瞬态分析配合使用。通过对电路所执行的分析进行参数扫描,便于研究电路参数变化对电路特性的影响。在分析功能上,参数扫描分析与蒙特卡罗分析和温度扫描分析类似,它是按照扫描变量对电路的所有分析执行参数扫描的,其分析结果产生一个数据列表或一组曲线图,同时还可以设置第二个参数扫描分析,但参数扫描分析所收集的数据不包括子电路中的器件。

参数扫描分析至少应与标准分析类型中的一项一起执行,这样就可以观察到不同参数值所对应的曲线。曲线之间的偏离度表明该参数对电路性能的影响程度。1.2.2 SPICE的分析流程

SPICE的基本程序模块包括电路原理图输入程序、激励源编辑程序、电路仿真程序SPICE、输出结果绘图程序、模型参数提取程序,以及包含 SPICE 元器件模型的参数库。SPICE的分析流程如图1.3所示。图1.3 SPICE的分析流程

注:本书配套提供的公开教学视频中提供了Multisim 14.0工具中使用SPICE对数字电路执行分析的详细操作过程,请读者观看视频学习。

思考与练习1-3:请说明SPICE提供的3大基本分析功能,包括______ 、______和______ 。

思考与练习1-4:请说明在模拟电子电路中直流工作点的重要性。

思考与练习1-5:请说明瞬态分析和交流扫描分析分别相当于哪种测试仪器。1.3 开关系统

开关系统是构成数字逻辑最基本的结构,它通过半导体物理器件实现数字逻辑的开关功能。

所谓的开关系统,实际上就是常说的由工作在“0”或者“1”状态下的物理器件所构成的数字电路。例如,家里的普通电灯,通过开关的控制,不是闭合(灯亮),就是断开(灯灭)。此外,用于控制强电设备的继电器也是典型的数字器件,不是处于常开状态,就是处于常闭状态。1.3.1 0和1的概念

数字电路中的信号是一个电路网络,通过这个网络,将一个元件的输出电压传送到所连接的另一个元件或者其他元件的输入。与模拟电路中的信号变化是连续的相比,数字电路中的信号变化是不连续的。在数字电路中,信号的电压取值只有两种情况,即VCC或者GND。其中,VCC表示逻辑高电平,GND表示逻辑低电平。这样,数字电路中用于表示所有数据的信号只有两个取值状态。只使用两个状态来表示数据的系统称为二进制系统;具有两个状态的信号称为二进制信号。所有由二进制构成的输入信号,其操作产生二进制的输出结果。电压值的集合{VCC,GND}定义了数字系统中一个信号线的状态,通常表示为{1,0}。其中,“1”表示VCC,“0”表示GND。因此,数字系统只能表示两个状态的数据,并且已经给这两个状态分配了数字符号“0”和“1”,于是出现了用二进制数表示数字系统的方法。数字电路中的一个信号线携带着信息的一个二进制数字,也称为比特位(bit)。总线是由多个工作在开关状态下的信号线构成的,因此总线可以包含多个比特位,可以定义一个二进制数。在数字电路中,使用比特位表示数据可以让人们在学习数字电路时能够很容易地接受现存的数字和逻辑技术。

下面通过两个典型的开关系统进一步说明0和1的概念。

1.串联开关构成的开关系统

由串联开关构成的开关系统如图1.4所示。从图1.4中可知,要点亮灯泡X1,要求开关K1和K2同时闭合。如果只闭合K1而断开K2;或者只闭合K2而断开K1;或者K1和K2都断开时,均不会点亮灯泡。很明显,这样一个开关系统满足逻辑与的关系。

假设将开关 K1设置为变量 A,将其闭合状态表示为“1”,断开状态表示为“0”;将开关K2设置为变量B,将其闭合状态表示为“1”,断开状态表示为“0”;将灯泡的状态设置为变量Y,将灯亮状态表示为“1”,灯灭状态表示为“0”,这个串联开关系统的逻辑关系可以用表1.2表示。表1.2 串联开关系统的逻辑关系图1.4 由串联开关构成的开关系统

注:读者进入本书配套提供例子的\eda_verilog\switch_and.ms14路径下,用Multisim 14工具打开该设计,执行仿真,观察仿真结果。

从表1.2中可知,它描述的是一种典型的逻辑与关系。也就是说,当变量A和B均为“1”时,变量Y的状态才为“1”;在变量A和B的组合为“00”、“01”和“10”的情况下,变量Y的状态均为“0”。

2.并联开关构成的开关系统

由并联开关构成的开关系统如图1.5所示。从图1.5中可知,要点亮灯泡X1,要求开关K1或K2其中有一个闭合即可。只有K1和K2都断开时,才不会点亮灯泡。很明显,这样一个系统满足逻辑或的关系。

假设将开关K1设置为变量A,将其闭合状态表示为“1”,断开状态表示为“0”;将开关K2设置为变量B,将其闭合状态表示为“1”,断开状态表示为“0”;将灯泡的状态设置为变量 Y,将灯亮状态表示为“1”,灯灭状态表示为“0”,这个并联开关系统的逻辑关系可以用表1.3表示。表1.3 并联开关系统的逻辑关系图1.5 由并联开关构成的开关系统

注:读者进入本书配套提供例子的\eda_verilog\switch_or.ms14路径下,用Multisim 14工具打开该设计,执行仿真,观察仿真结果。

从表1.3中可知,它描述的是一种典型的逻辑或关系。也就是说,当变量A和B有一个为“1”时,变量Y的状态就为“1”;只有在变量A和B都为“0”的情况下,变量Y的状态才为“0”。

思考与练习1-6:在开关系统中,开关串联构成逻辑______关系;开关并联构成逻辑______关系。1.3.2 开关系统的优势

与数字电路相比,模拟电路中使用的信号的电压值并不限定只取VCC和GND这两个不同的值,而是可以是VCC和GND之间的任何值。许多输入元件,特别是那些用于电传感器的元件(如麦克风、照相机、温度计、压力传感器、运动和接近传感器等),在它们的输出端产生模拟电压。在现代电子设备中,先将模拟信号转换为数字信号,然后进行处理。例如,一个数字语音备忘录,通过使用模拟麦克风设备,在内部电路节点处将声波转换为电压信号。在数字化处理电路中,模拟-数字转换器(Analog-To-Digital Converter, ADC)将模拟电压信号转换为离散的数字信号。通过对模拟输入信号的采样,ADC可以测量输入电压信号的幅度,然后为这个测量值分配一个对应的二进制数。只要将模拟信号采样点的电压值转换为对应的二进制数,就可以使用数字系统(如DSPs、FPGA、CPU)对其进行处理。

类似地,通过使用数字-模拟转换器(Digital-To-Analog Converter, DAC)就可以将离散的数字信号重新恢复成模拟信号。

模拟信号对噪声非常敏感,并且信号的强度会随着时间的推移和传输距离的增加而衰减。但是,数字信号对噪声和信号强度衰减的敏感度显著降低。这是因为数字信号为状态“0”和状态“1”定义了两个宽范围电压区域,在这个区域内的任何电压变化都不会改变数字信号的状态。如图1.6所示,一个包含噪声的模拟信号可以转换为具有稳定状态“0”和“1”的数字信号。对于图1.6给出的包含噪声的模拟信号,如果直接用模拟电路进行处理,成本将显著增加。图1.6 对包含噪声的模拟信号进行数字化处理

一句话概括,由于数字信号具有抗干扰能力强和处理方式灵活的显著优势,使得电子系统迈向了数字化时代。

下面通过对图1.7给出的数字电路进行SPICE瞬态分析来进一步说明数字电路的抗干扰能力。在该电路中,反相器(节点3)的输入信号由方波和正弦波(干扰信号)叠加而成,如图1.8所示。图1.7 数字系统的抗干扰能力分析电路

注:读者进入本书配套提供例子的\eda_verilog\digtial_add_noise.ms14路径下,用Multisim 14工具打开该设计,执行仿真,观察仿真结果。图1.8 节点3的电压波形(反相器的输入信号波形)

通过观察图1.9给出的节点4的电压波形(反相器的输出信号波形),反相器的输出信号和输入信号(节点1)呈现逻辑取反关系。由于噪声(正弦信号)的波动对方波的影响仍然在逻辑“1”和逻辑“0”所允许的电压范围内,所以即使输入到反相器的信号存在波动,但是不影响反相器对输入信号的正确理解,所以从反相器输出的数字信号状态是正确的。图1.9 节点4的电压波形(反相器的输出信号波形)

一旦噪声波动超过了状态“0”和状态“1”规定的电压范围,则反相器对输入信号的理解就会发生错误,使得最终从反相器输出的数字信号状态发生错误。

思考与练习1-7:与模拟信号相比,数字信号具有______和______的优点。

思考与练习1-8:为什么说在数字电路中逻辑“1”和逻辑“0”表示两种状态,而不是某个具体的值?

思考与练习1-9:状态“1”和状态“0”的确定与______密切相关。1.3.3 晶体管作为开关

前面介绍的开关系统通过机械开关控制。很明显,使用机械开关控制系统,不仅灵活性差,而且系统的切换速度很低,同时开关的工作寿命也十分有限。因此,人们就使用半导体器件作为电子开关来取代前面提到的机械开关,用于对开关系统进行控制。与机械开关不一样的是,半导体物理器件的导通和截止是靠外面施加的电压进行控制的。用于现代数字电路的晶体管开关称为金属氧化物半导体场效应晶体管(Metal Oxide Semiconductor Field Effect Transistor, MOSFET),它是三端口器件。当在第3个端口(栅极)施加合适的逻辑电平时,可以在两个端口(源极和漏极)之间流经电流。在最简单的FET模型中,源极和漏极之间的电阻是一个栅-源电压的函数,即栅极电压越高,这个电阻就越小,因此就可以流过更大的电流。当用在模拟电路(如音频放大器)时,栅-源电压值可以取GND和VCC之间的任何值。但是,在数字电路中,栅-源电压值只能是VCC或GND(当然,当栅极电压从VCC变化到GND或从GND变化到VCC时,必须假定电压在VCC和GND之间)。此处,假设状态变化的过程非常快,忽略栅极电压在这段时间变化的FET(Field Effect Transistor,场效应晶体管)特性。

在一个简单的数字电路模型中,可以将MOSFET当作一个可控的断开(截止)或者闭合(导通)的电子开关。如图1.10所示,根据不同的物理结构,FET 包含两种类型,即nFET和pFET。图1.10 nFET和pFET的特性和等效开关

1. nFET

当栅极电压为VCC时,源极和漏极导通,即闭合;当栅极电压为GND时,源极和漏极断开,即截止。

2. pFET

当栅极电压为GND时,源极和漏极导通,即闭合;当栅极电压为VCC时,源极和漏极断开,即截止。

单个的FET经常用作独立的电子可控开关。例如,对于一个nFET,如果电源接到源极,负载(如发动机、灯或其他的应用中的电子元件)接到漏极,在该应用中,nFET可以打开或关闭开关。当栅极接入GND时,导通负载元件;而栅极接入VCC时,断开负载元件。例如,导通一个FET只需要一个很小的电压(几伏特的量级),即使这个FET正在切换的是一个大电压或大电流,用于这种目的的单个FET通常是巨大的设备。

在数字电路中,FET也可以充当有用的逻辑功能,如逻辑与、逻辑或和逻辑非等。在这种应用中,几个非常小的FET组成一个简单的小硅片(或硅芯片),然后用金属导线将它们连接在一起。例如,这-72些微小的FET所占用的空间小于1×10m。因此,一个硅芯片的一端可以是几毫米,一个单芯片上可以集成数百万的FET。当所有的电路元件整合集成到同一块硅片上时,将这种形式构成的电路称为集成电路。1.3.4 半导体物理器件

大多数的FET使用半导体硅制造。如图1.11(a)所示,在制造的过程中,植入离子的硅片在这个区域的导电性能更好,用作FET的源极和漏极区域,这些区域通常称作扩散区。接下来,如图1.5(b)所示,在这些扩散区的中间创建一个绝缘层,并且在这个绝缘材料的上面“生长”另一个导体。这个“被生长”的导体(典型的用硅)形成了栅极,如图1.11(c)和图1.11(d)所示,位于栅极之下和扩散区之间的区域称为沟道,最后用导线连接源极、漏极和栅极,于是这个FET就可以连接到一个大的电路中。生产晶体管需要几个处理过程,包括高温、精确的物理布局和各种材料。图1.11 FET的制造工艺

实际上,FET的基本工作原理非常直观。接下来仅对 nFET 的最基本应用进行介绍。pFET的工作原理与nFET的工作原理完全相似,但是必须将电压颠倒过来。

如图1.12所示,一个 nFET 的源极和漏极扩散区都植入了带负电荷的粒子。当一个nFET用于逻辑电路时,它的源极接到GND;于是,nFET的源极像GND节点一样,拥有丰富的带负电荷的粒子。如果nFET的栅极电压和源极电压一样(如GND),那么栅极上存在的带负电荷的粒子立刻排斥栅极下面来自带沟道区域的负电荷的粒子(注意,在半导体中,如硅,正负电荷的粒子是可以移动的,在带电粒子形成的电场影响下,移动半导体晶格)。正电荷聚集在栅极下面,形成两个反向的正-负结(称为PN结),这些PN结阻止任何一个方向的电流流过。如果栅极上的电压超过源极电压,并且超过了阈值电压th(或V,大于或等于0.5V)时,正电荷开始在栅极聚集,并且立即排斥栅极下沟道区域的正电荷。负电荷聚集在栅极下面,在栅极下面及源极和漏极扩散区域之间形成一个连续的导电区域。当栅极电压达到VCC时,形成一个大的导电沟道,并且nFET处于强导通状态。图1.12 nFET的打开与关闭

如图1.13所示,用于逻辑电路中的nFET,把其源极接到GND,栅极接到VCC,就可以使它导通(闭合);而对于pFET,将其源极接到VCC,栅极接到GND,就可以使它导通(闭合)。图1.13 逻辑电路中的nFET和pFET

根据上述原理可知,源极接VCC时,不会强行打开nFET,所以很少将nFET的源极连接到VCC。类似地,源极接到GND时,也不能很好地打开pFET。所以,很少将pFET的源极接到GND。

注:这就是常说的,nFET传输强0和弱1,而pFET传输强1和弱0。1.3.5 半导体逻辑电路

只要掌握了FET的工作原理,就可以使用它构建基本的逻辑电路来实现所要求的逻辑功能。这些逻辑电路将一个或多个逻辑输入信号进行组合,然后产生满足逻辑功能要求的输出信号。下面将讨论实现最基本逻辑功能(如逻辑与、逻辑或和逻辑非)的电路。

当构建一个FET电路用来实现逻辑关系时,必须注意下面的4个基本规则:(1)pFET的源极必须连接到VCC, nFET的源极必须连接到GND;(2)电路输出必须通过一个pFET连接到VCC,电路输出必须通过一个nFET连接到GND(如电路输出永远不能悬空);(3)逻辑电路的输出绝不能同时连接到VCC和GND(绝不能将逻辑电路的输出短路);(4)逻辑电路使用最少数量的FET。

遵循这4个原则,构造一个两输入的逻辑“与”关系电路。但是,首先要注意在如图1.14所示的电路中,当且仅当两个输入A和B都连接VCC时,输出(标记为Y)才连接到GND,也就是Q1和Q2同时导通,这个逻辑关系可以如下描述:

当A和B都连接到逻辑高电平(Logic High Voltage, LHV)时,即VCC时,Y的输出为逻辑低电平(Logic Low Voltage, LLV)。

在如图1.9所示的电路中,构造一个两输入的逻辑“或”关系电路。只要A或者B有一个连接到VCC时,输出(标记为Y)就会连接到GND,也就是Q3和Q4中至少有一个FET是导通的,这个逻辑关系可以如下描述:

当A或者B连接逻辑高电平(Logic High Voltage, LHV)时,即VCC时,Y的输出为逻辑低电平(Logic Low Voltage, LLV)。图1.14 串联FET图1.15 并联FET

图1.16给出了由FET的串联结构和并联结构构成的组合逻辑电路。从图1.16中可知,这个电路遵循以上4个基本规则,即pFET只连接到VCC, nFET只连接到地,输出总是连接到VCC或连接到GND,但绝不同时连接到VCC和GND,以及使用最少数量的FET。如表1.4所示,下面对这个逻辑门电路输入和输出电平之间的关系进行简要分析:图1.16 FET组合构成逻辑门电路(1)当A和B都连接到VCC时,Q1和Q2同时导通,而Q3和Q4同时截止。因此,Y的输出为GND。(2)当A连接到GND和B连接到VCC时,Q3和Q2同时导通,而Q1和Q4同时截止。因此,Y的输出为VCC。(3)当A连接到VCC和B连接到GND时,Q1和Q4同时导通,而Q2和Q3同时截止。因此,Y的输出为VCC。(4)当A连接到GND和B连接到GND时,Q3和Q4同时导通,而Q1和Q2同时截止。因此,Y的输出为VCC。

为了更直观地体现图1.16所示电路所要表示的逻辑关系,规定输入电平为VCC时,表示逻辑“1”;输入电平为GND时,表示逻辑“0”,并且用同样的规则定义输出信号电平的逻辑关系,如表1.5所示。从表1.5可以看出,该电路表示的是逻辑“与非”关系,因此将该电路称为逻辑与非电路。表1.4 门电路输入和输出电平表1.5 门电路输入和输出的逻辑关系

注:在数字逻辑中,表示一个逻辑门电路输入和输出关系的表格称为真值表。

将nFET和pFET进行组合,构成实现不同逻辑关系的电路,如图1.17所示。图1.17中,每个逻辑电路由上面的pFET和下面的nFET构成,它们实现互补关系。当pFET表示逻辑或关系时,nFET表示逻辑与关系。显示出互补特性的FET电路也称为互补金属氧化物半导体(Complementary Metal Oxide Semiconductor, CMOS)电路。迄今为止,在数字和计算机电路中,CMOS电路占有统治地位。MOS名字是指以前的半导体工艺,门是由金属构成的,门下面的绝缘体由硅氧化物构成。这些基本的逻辑电路是构成数字和计算机电路的基础。图1.17 5个基本逻辑电路

注:图1.17中,INVERTER表示逻辑非关系,NAND表示逻辑与非关系,NOR表示逻辑或非关系,AND表示逻辑与关系,OR表示逻辑或关系。

当在原理图中绘制这些电路时,使用如图1.18所示的符号,而不是FET电路符号。这是由于直接使用FET符号绘制逻辑电路时会显得冗长乏味,而且对整个逻辑电路的分析来说显得很不方便。图1.18 原理图中基本的逻辑电路符号

注:图1.18中,INV表示逻辑非关系,NAND表示逻辑与非关系,NOR表示逻辑或非关系,AND表示逻辑与关系,OR表示逻辑或关系。

图1.18中,不同逻辑关系的符号特点如下:(1)逻辑输入端是一直角、输出端是一个光滑的曲线的符号表示逻辑与关系。(2)当逻辑输入端是曲线边且指向输出端的符号表示逻辑或关系。(3)输入端的小圆圈表示输入信号必须是逻辑低电平时才能产生所表示逻辑功能的输出。(4)输出端的小圆圈表示逻辑功能的结果产生一个逻辑低电平输出信号,输出端没有小圆圈时,表示逻辑功能产生一个逻辑高电平输出信号。(5)输入端没有小圆圈表示输入信号必须是逻辑高电平时才能实现所需要表示的功能。

如图1.18所示,除逻辑非关系外,其他的每一个逻辑关系都有两种符号表现形式。上面的符号是基本逻辑的符号,下面的符号是共轭符号。共轭符号交换逻辑与关系和逻辑或关系的符号形状,并且改变输入端和输出端的逻辑电平。很明显,使用后面介绍的德·摩根定理就可以验证它们之间的等效性。

思考与练习1-10:根据图1.17,说明实现下面的逻辑关系需要的晶体管个数。

NAND:______,  OR:______,  INV:______,  AND:______, NOR:______。

思考与练习1-11:根据图1.17,实现一个与非关系,直接使用逻辑与非门电路和使用逻辑与电路串联逻辑非电路有何不同(提示:直接使用逻辑与非门电路只使用4个晶体管,而使用逻辑与电路串联逻辑非电路会使用8(6+2=8)个晶体管。一方面会增加逻辑与非电路的实现成本;另一方面由于使用晶体管的数量增加,显著降低电路的性能)?

思考与练习1-12:分析图1.19~图1.23给出的FET电路结构,填写表1.6 ~表1.10 (注意,表中FET的状态填写导通/截止),并说明每个电路所实现的逻辑关系。图1.19 晶体管构成逻辑电路(1)图1.20 晶体管构成逻辑电路(2)图1.21 晶体管构成逻辑电路(3)图1.22 晶体管构成逻辑电路(4)图1.23 晶体管构成逻辑电路(5)

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载