版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 数字电子基础31.1 导读31.2 数字电路概述31.2.1 数字信号与数字电路31.2逻辑函数及其表示方法41.2.1逻辑代数41.2.2逻辑函数的表示方法及相互转换41.3逻辑函数的公式化简法61.3.1逻辑函数的不同表达方式61.3.2逻辑函数的公式化简法61.4逻辑函数的卡诺图化简法61.4.1逻辑函数的最小项及其表达式61.4.2逻辑函数的卡诺图表示法71.4.3用卡诺图化简逻辑函数82逻辑门电路102.1 导读102.1逻辑门电路102.1.1三种基本门电路102.1.2 DTL与非门122.2 TTL逻辑门电路132.2.1 TTL与非门的电路结构132.2.2 TTL与非门
2、的工作原理132.3 其他类型的TTL门电路142.3.1集电极开路与非门(OC门)142.3.2三态门(TSL门)152.4多余输入端的处理173组合逻辑193.1 导读193.2组合逻辑电路基础193.2.1组合逻辑电路的基本概念193.2.2组合逻辑电路的分析方法203.2.3组合逻辑电路的设计方法203.3常用组合逻辑建模213.3.1编码器213.3.2 译码器和数据分配器243.3.3数据选择器293.3.4数值比较器303.3.5加法器(减法器)323.3.6乘法器343.3.7除法器364触发器384.1导读384.2触发器的电路结构及工作原理384.2.1基本RS触发器(异步
3、)384.2.2同步RS触发器394.2.3主从触发器和边沿触发器424.3触发器的功能分类及相互转换444.3.1触发器的功能分类444.3.2不同类型时钟触发器的相互转换455时序逻辑电路475.1导读475.2时序逻辑电路的基本概念475.2.1时序逻辑电路的结构及特点475.3 时序逻辑的设计485.3.1同步时序逻辑电路的设计步骤485.3.2时序电路通用设计方法485.3时序逻辑建模495.3.1数码寄存器495.3.2移位寄存器505.3.3锁存器505.3.4寄存器集成电路介绍515.3.5计数器536总结601 数字电子基础1.1 导读个人认为,现代信息技术就是,把现实世界,
4、利用强大的计算机技术处理和变换。而数字电路技术是整个信息技术的一个桥梁。现代计算机是基于是微电体系的,至少现阶段计算机只能做“电计算”。所以我们需要一门技术把丰富多彩的现实世界,用电信号表示出来让计算机也能理解,数字电路就是起这个作用。他能够把现实世界中的各种信息,转换到计算机的物理的电世界。本章介绍了把现实世界用物理的电信号表示出来的基本技术。本章主要讨论数字电子技术的基础理论知识。同时,还给出了逻辑函数的概念、表示方法及相互转换。1.2 数字电路概述1.2.1 数字信号与数字电路电子电路中的信号可分为两类,一类在时间和幅度上都是连续的,称为模拟信号,如图1.1所示,例如电压、电流、温度、声
5、音等信号。传送和处理模拟信号的电路称为模拟电路; 图1.1 模拟信号另一类在时间和幅度上都是离散的,称为数字信号,如图1.2所示,例如计时装置的时基信号、灯光闪烁等信号都属于数字信号。传送和处理数字信号的电路称为数字电路。图1.2 数字信号数字电路的特点l 信号是离散的数字信号。数字信号常用0、1二元数值表示。l 半导体器件均工作在开关状态,即工作在截止区和饱和区。l 研究的主要问题是输入、输出之间的逻辑关系。l 主要分析工具是逻辑代数。1.2逻辑函数及其表示方法1.2.1逻辑代数逻辑代数又叫布尔代数或开关代数,是由英国数学家乔治布尔于1847年创立的。逻辑代数与普通代数都由字母来代替变量,但
6、逻辑代数与普通代数的概念不同,它不表示数量大小之间的关系,而是描述客观事物一般逻辑关系的一种数学方法。 逻辑变量的取值只有两种,即逻辑0和逻辑1,它们并不表示数量的大小,而是表示两种对立的逻辑状态,如开关的通与断、电位的高与低、灯的亮与灭等。0和1称为逻辑常量。例如,在图1.3所示的指示灯控制电路中,我们用字母Y表示指示灯,用A、B表示两个开关。指示灯Y的亮与灭两种状态取决于开关A、B的通断状态。我们将A、B称为输入逻辑变量,将Y称为输出逻辑变量。图1.3 指示灯控制电路逻辑代数有两种逻辑体制,其中,正逻辑体制规定,高电平为逻辑1,低电平为逻辑0;负逻辑体制规定,低电平为逻辑1,高电平为逻辑0
7、。1.2.2逻辑函数的表示方法及相互转换逻辑函数常用的表示方法有5种:逻辑真值表,逻辑函数表达式,逻辑图,波形图和卡诺图。1. 逻辑真值表逻辑真值表是将输入变量的各种可能取值和相应的函数值排列在一起组成的表格,一个确定的逻辑函数只有一个逻辑真值表,具有惟一性。逻辑真值表能够直观明了地反映变量取值和函数值的对应关系,但输入变量较多时,列写起来比较繁琐,它是将实际问题抽象为逻辑问题的首选描述方法。2. 逻辑函数表达式实际在FPGA设计中此方法较常用。函数表达式是面向人类的,易于人类理解,实际设计时我们主要工作就是把逻辑函数转换为RTL代码。而逻辑函数表达式的获得就是算法设计。逻辑函数的表达式不是惟
8、一的,可以有多种形式,并且能互相转换。逻辑函数的特点是:简洁、抽象,便于化简和转换。 3. 逻辑图与、或、非等运算关系用相应的逻辑符号表示出来,就是函数的逻辑图。例如,异或逻辑关系也可用如图1.14所示的逻辑图来表示。优点是:逻辑图与数字电路的器件有明显的对应关系,便于制作实际电路。缺点是不能直接进行逻辑推演和变换。 图1.14 异或逻辑关系的逻辑图4. 波形图实际在FPGA分析中此方法最常用。当然如果要做时序分析(提高系统性能,达到使用标准的必然分析)波形不会是如此陡峭,必须把上升沿和下降沿也表现出来,这样才能精确地分析电路的最高频率。反映输入和输出波形变化规律的图形,称为波形图,也称为时序
9、图。异或逻辑关系中,当给定A、B的输入波形后,可画出函数Y的波形,如图1.15所示。图1.15 异或逻辑关系的波形图波形图的优点是,能直观反映变量与时间的关系和函数值变化的规律,它与实际电路中的电压波形相对应。5. 各种表示方法之间的相互转换同一逻辑函数可以用几种不同的方式来表示,这几种表示方法之间必然可以相互转换 。由真值表写出逻辑函数的一般步骤如下。(1) 找出真值表中使输出Y=1的那些输入变量的组合。(2)每组输入变量的取值组合对应一个乘积项,其中变量取值为1的用原变量表示,取值为0的用反变量表示。(3)将这些乘积项相加,得到的即为真值表对应的逻辑函数表达式。1.3逻辑函数的公式化简法现
10、代EDA工具基本可以优化逻辑函数,所以化简不是必需的。但是现在的EDA并不是非常的成熟,有些情况下,化简是减少电路的竞争和冒险的唯一手段,具体情况见两本数电教材。1.3.1逻辑函数的不同表达方式同一逻辑函数可以有多种不同的表达方式,它们之间能互相转换。1.3.2逻辑函数的公式化简法在逻辑电路设计中,对逻辑函数化简具有十分重要的意义。逻辑函数表达式越简单,实现该函数所用的逻辑元件就越少,电路的可靠性就越高。一般情况下,都将逻辑函数化为最简与或表达式。最简与或表达式应遵循乘积项最少,且每个乘积项的变量数最少的原则。 1.4逻辑函数的卡诺图化简法在应用公式法对逻辑函数进行化简时,不仅要求对公式能熟练
11、应用,而且对最后结果是不是最简要进行判断,遇到较复杂的逻辑函数时,此方法有一定难度。下面介绍的卡诺图化简法,只要掌握了其要领,化简逻辑函数非常方便。1.4.1逻辑函数的最小项及其表达式1. 最小项的定义与性质在n变量的逻辑函数中,若其与或表达式的每个乘积项都包含有n个因子,而且每个因子仅以原变量或反变量的形式在该乘积项中出现一次,这样的乘积项称为n变量逻辑函数的最小项。每个乘积项都是最小项形式的表达式称为逻辑函数的最小项表达式。最小项的性质:(1) 对于输入变量的任何一组取值,有且只有一个最小项的值为1。(2) 对于变量的任一组取值,任意两个最小项的乘积为0。(3) 全体最小项之和为1。注意:
12、不说明变量数目的最小项是没有意义的 。2. 逻辑函数的最小项表达式任何一个逻辑函数表达式都可以转化为最小项之和的形式。方法是,先将逻辑函数写成与或表达式,然后在不是最小项的乘积项中乘以(X+X)补齐所缺变量因子即可。 1.4.2逻辑函数的卡诺图表示法1. 最小项的卡诺图图1.20 三变量的卡诺图图1.21 四变量的卡诺图注意:为了确保卡诺图中小方格所表示的最小项在几何上相邻时,在逻辑上也有相邻性,两侧标注的数码不能从小到大依次排列。除几何相邻的最小项有逻辑相邻的性质外,图中每一行或每一列两端的最小项也具有逻辑相邻性,因此,卡诺图可看成是一个上下左右闭合的图形。卡诺图形象、直观地反映了最小项之间
13、的逻辑相邻关系,但变量增多时,卡诺图会变得更为复杂。当变量的个数在5个或5个以上时,就不能仅用二维空间的几何相邻来代表其逻辑相邻,故一般较少使用。2. 逻辑函数的卡诺图表示既然任何逻辑函数式都可以表达成最小项形式,而最小项又可以表示在卡诺图中,故逻辑函数可用卡诺图表示。方法是:把逻辑函数式转换成最小项表达式,然后在卡诺图上与这些最小项对应的方格内填1,其余填0(也可以不填),就得到了表示这个逻辑函数的卡诺图。任一逻辑函数的卡诺图是惟一的。1.4.3用卡诺图化简逻辑函数1. 化简依据相邻最小项的合并规律是:两个相邻的最小项可合并为一项,消去一个变量;4个相邻的最小项可合并为一项,消去两个变量;8
14、个相邻的最小项可合并为一项,并消去3个变量。消去的是包围圈中发生过变化的变量,而保留下的是包围圈内保持不变的变量,如图1.23所示。图1.23 最小项的合并规律2. 化简步骤用卡诺图化简逻辑函数的步骤如下。(1) 将逻辑函数化成最小项之和的形式(有时可以跳过)。(2)用卡诺图表示逻辑函数。(3) 对可以合并的相邻最小项(填1的方格)画出包围圈。(4) 消去互补因子,保留公共因子,写出每个包围圈合并后所得的乘积项。用卡诺图化简时,为了保证结果的最简化和正确性,在选取可合并的最小项即画包围圈时,应遵循以下几个原则。(1)每个包围圈只能包含2n个填1的小方格,而且必须是矩形或正方形。(2) 包围圈能
15、大勿小。包围圈越大,消去的变量就越多,对应乘积项的因子就越少,化简的结果越简单。(3) 包围圈个数越少越好。因个数越少,乘积项就越少,化简后的结果就越简单。(4) 画包围圈时,最小项可以被重复包围,但每个包围圈中至少应有一个最小项是单独属于自己的,以保证该化简项的独立性。(5) 包围圈应把函数的所有最小项都圈完。2逻辑门电路 2.1 导读如果是做基于FPGA的设计应该是不用考虑到三极管、二极管这么低层的电路结构吧?开始我也是这么认为的,但是做了一个项目之后,随着学习的升入发现,逻辑门电路内部的结构必须要十分清楚。至少我们要有重视它的意识,因为,我们设计的系统式在硬件上运行,限制硬件运行频率的就
16、是二极管、三极管的组装结构,虽然随着工艺的发展,工作速度可以越来越快,但是电路始终还是有频率的上限的,只要上限存在我们就必须做时序分析。在设计达不到设计要求时,做静态时序分,依据分析结果添加相关约束或修改电路的关键路径,改善电路时序是通用的做法。而如果在RTL级设计时我们就可以预估电路的延时,然后精确地加入延时参数,这时多么美妙的事情啊!能够做到这一点我们的布局布线后仿真就是“走走形式”,功能仿真通过的电路就可以下载运行,免去了无数的排错,约束设计等等。但是,冰冻三尺,非一日之寒。达到这种境界是需要时间的。所以,还犹豫什么?开始好好学习这个咋看咋像模电的东西吧。2.1逻辑门电路在数字系统中,大
17、量地运用着执行基本逻辑操作的电路,这些电路称为基本逻辑电路或门电路。早期的门电路主要由继电器的触点构成,后来采用二极管、三极管,目前则广泛应用集成电路。2.1.1三种基本门电路1. 二极管与门电路实现“与”逻辑关系的电路叫做与门电路。由二极管组成的与门电路如图2.1(a)所示,图2.1所示(b)为其逻辑符号。图中A、B为信号的输入端,Y为信号的输出端。图2.1 二极管与门对二极管组成的与门电路分析如下。(1) A、B都是低电平UY0V(2) A是低电平,B是高电平UY0V(3) A是高电平,B是低电平UY0V(4) A、B都是高电平UY5V从上述分析可知,该电路实现的是与逻辑关系,即“输入有低
18、,输出为低;输入全高,输出为高”,所以,它是一种与门。2. 二极管或门电路实现或逻辑关系的电路叫做或门电路。由二极管组成的或门电路如图2.2所示,其功能分析如下。图2.2 二极管或门(1) A、B都是低电平UY=0V(2) A是低电平,B是高电平UY5V(3) A是高电平,B是低电平UY5V(4) A、B都是高电平UY5V通过上述分析,该电路实现的是或逻辑关系,即“输入有高,输出为高;输入全低,输出为低”,所以,它是一种或门。3. 三极管非门实现非逻辑关系的电路叫做非门电路。因为它的输入与输出之间是反相关系,故又称为反相器,其电路如图2.3所示。图2.3 三极管反相器2.1.2 DTL与非门采
19、用二极管门电路和三极管反相器,可组成与非门和或非门扩大逻辑功能,这种电路应用非常广泛。 DTL与非门电路是由二极管与门和三极管反相器串联而成的,其电路图及逻辑符号分别如图2.4(a)和图2.4(b)所示。图2.4 DTL与非门当输入端A、B都是高电平时,VD1、VD2均截止,而VD3、VD4和三极管导通,注入三极管的基极电流足够大,三极管饱和导通,输出低电平,UY=0V,在两个输入端A、B中有一个为低电平时,VD3、VD4和三极管均截止,输出高电平,UY=VCC。可见此逻辑门能实现与非逻辑关系。2.2 TTL逻辑门电路TTL门电路是晶体管-晶体管逻辑(Transistor-Transistor
20、 Logic)门电路的简称,这种电路由于其输入级和输出级均采用晶体三极管而得名。按照国际通用标准,根据工作温度不同,TTL电路分为54系列(-55125)和74系列(070);根据工作速度和功耗不同,TTL电路又分为标准系列、高速(H)系列、肖特基(S)系列和低功耗肖特基(LS)系列。2.2.1 TTL与非门的电路结构TTL与非门的基本电路如图2.5(a)所示,它由输入级、中间级和输出级三部分组成。 图2.5 基本TTL与非门电路及V1管的等效电路2.2.2 TTL与非门的工作原理(1) 当A、B两端有一个输入为低电平0.3V时,V1的发射结导通,其基极电压等于输入低电压加上发射结正向压降 。
21、V2、V5都截止V3和V4导通UY3.6V实现了“输入有低,输出为高”的逻辑关系。2) 当A、B两端均输入高电平3.6V时,V2、V5饱和导通,V3和V4均截止。输出为低电平,即UY0.3V 此时,电路实现了“输入全高,输出为低”的逻辑关系。2.3 其他类型的TTL门电路将两个门的输出端并联以实现与逻辑的功能,把这种连接方式称为“线与”。如果将两个门电路的输出端连接在一起,如图2.6所示。当一个门的输出处于高电平,而另一个门的输出为低电平时,将会产生很大的电流,有可能导致器件损坏,无法形成有用的线与逻辑关系。图2.6 推拉式输出级并联的情况2.3.1集电极开路与非门(OC门)集电极开路与非门是
22、将推拉式输出级改为集电极开路的三极管结构,做成集电极开路输出的门电路(Open Collector Gate),简称为OC门,其电路如图2.7(a)所示。图2.7 OC与非门的电路和图形符号将OC门输出连在一起时,再通过一个电阻接外电源,这样可以实现“线与”逻辑关系。只要电阻的阻值和外电源电压的数值选择得当,就能做到既保证输出的高、低电平符合要求,而且输出三极管的负载电流又不至于过大。 而且输出三极管的负载电流又不至于过大。两个OC门并联时的连接方式如图2.8所示。图2.8 OC门输出并联的接法及逻辑图在图2.9中表示出“线与”电路中OC门输出高电平的情况,假定n个OC门连接成“线与”逻辑,带
23、m个与非门负载。当所有OC门都处于截止状态时,“线与”后输出为高电平。 图2.9“线与”电路中OC门输出高电平的情况OC门除了可以实现多门的线与逻辑关系外,还可用于直接驱动较大电流的负载,如继电器、脉冲变压器、指示灯等,也可以用来改变TTL电路输出的逻辑电平,以便与逻辑电平不同的其他逻辑电路相连接。OC门可以“线与”,但需要上拉电阻。2.3.2三态门(TSL门)三态门应用广泛,在FPGA的设计中可以直接用代码写出三态门,比较方便。关于Verilog建模技巧的资料中有建模方法,有兴趣自己查。为保持推拉式输出级的优点,还能作线与连接,人们又开发了一种三态与非门,它的输出除了具有一般与非门的两种状态
24、外,还可以呈现高阻状态,或称开路状态、禁止状态。一个简单的三态门的电路如图2.10(a)所示,图2.11(b)所示为它的逻辑符号,它是由一个与非门和一个二极管构成的,EN为控制端,A、B为数据输入端。图2.10 三态与非门电路图2.10所示电路中,当EN=1时电路为工作状态,所以称为控制端高电平有效。三态门的控制端也可以是低电平有效,即EN为低电平时,三态门为工作状态;EN为高电平时,三态门为高阻状态。其电路图及逻辑符号如图2.11所示。图2.11 控制端为低电平有效的三态门三态门的应用比较广泛,下面举例说明三态门的3种应用:l 作多路开关l 信号双向传输l 构成数据总线电路图如图2.12所示
25、。图2.12 三态门三种应用的连接方式2.4多余输入端的处理FPGA多余角的处理没有看到相关介绍,个人估计会出现在FPGA 的PCB设计资料上,如果哪位查到,谢谢分享。在使用集成门电路时,如果输入信号数小于门的输入端数,就有多余输入端。一般不让多余的输入端悬空,以防止干扰信号引入。对多余输入端的处理,以不改变电路工作状态及稳定可靠为原则。对于TTL与非门,通常将多余输入端通过1k的电阻R与电源+VCC相连;也可以将多余输入端与另一接有输入信号的输入端连接。这两种方法如图2.34所示。TTL与门多余输入端的处理方法和与非门完全相同。图2.13 TTL与非门多余输入端的处理方法对于TTL或非门,则
26、应该把多余输入端接地,或把多余输入端与另一个接有输入信号的输入端相接。这两种方法如图2.14所示。TTL或门多余输入端的处理方法和或非门完全相同。 图2.14 TTL或非门多余输入端的处理方法对于CMOS电路,多余的输入端必须依据相应电路的逻辑功能决定是接在正电源VDD上(与门、与非门)或是与地相接(或门、或非门)。一般不宜与使用的输入端并联使用,因为输入端并联时将使前级的负载电容增加,工作速度下降,动态功耗增加。这里对基本门电路的介绍很简单,我认为这是不太够用的,有兴趣大家可以查阅模电教材。另外,如果要设计除具有实用价值的电路,必须学习时序分析和约束设计。本章内容重在一个概念的建立,不要过多
27、的纠缠细节。3组合逻辑3.1 导读笔者认为,组合逻辑是数电路中的两大核心部分之一(另一部分是时序逻辑)。组合逻辑的任务就是完成从输入到输出的变换,它是一种处理型的器件。各种处理任务都是他完成的。数电教材上说,没有组合逻辑,就算电路规模再大(例如RAM)也称不上是电路系统。我认为还是说得很贴切的。在FPGA的设计中,组合逻辑是一部信号产生的根源之一。组合逻辑的竞争冒险也加剧了电路的不稳定性,在进行FPGA的数字系统设计时应该注意。本章后面有一部分是ALU设计,ALU有些设计方法设计出的电路不是纯组合逻辑,在这里对此做一个说明。本章后一部分主要分类介绍了组合逻辑的建模,其中主要注重建模方式的介绍,
28、由于所有的数点资料基本都是基于传统的电路图设计方式分析的。这里借鉴了分析方法,列出了许多引脚图,这在我们自己建模时是由参考意义的。借鉴千人的引脚图,模块化设计时我们可以直接写出端口,然后再做详细的RTL级设计。本章后一部分给出的ALU建模方法并不限于介绍的几种(尤其是除法器),笔者尽量把ALU的建模写全,但是由于水平、精力、时间都有限并未写完整。其中的乘法器和除法器更是复杂,每一个ALU器件的设计方法都可以写本书,内容非常之多。ALU是现代CPU的一个核心电路,发展已经很成熟了,如果有兴趣,各位可以继续升入学习。3.2组合逻辑电路基础3.2.1组合逻辑电路的基本概念1. 组合逻辑电路的定义组合
29、逻辑电路是指在任一时刻,电路的输出状态仅取决于该时刻各输入状态的组合,而与电路的原状态无关的逻辑电路。其特点是输出状态与输入状态呈即时性,电路无记忆功能。2. 组合逻辑电路的描述方法组合逻辑电路模型如图3.1所示。 图3.1 组合逻辑电路的一般框图3、竞争冒险参考数电教材。3.2.2组合逻辑电路的分析方法组合逻辑电路的分析一般是根据已知逻辑电路图求出其逻辑功能的过程,实际上就是根据逻辑图写出其逻辑表达式、真值表,并归纳出其逻辑功能。1. 组合逻辑电路的分析步骤(1) 写出逻辑函数表达式(2) 化简逻辑函数式(3) 列真值表(4) 说明功能3.2.3组合逻辑电路的设计方法组合逻辑电路设计主要是将
30、客户的具体设计要求用逻辑函数加以描述,再用具体的电路加以实现的过程。组合逻辑电路的设计可分为小规模集成电路、中规模集成电路、定制或半定制集成电路的设计,这里主要讲解用小规模集成电路(即用逻辑门电路)来实现组合逻辑电路的功能。1. 组合逻辑电路设计步骤(1) 列真值表。根据电路功能的文字描述,将其输入与输出的逻辑关系用真值表的形式列出。(2) 写表达式,并化简。通过逻辑化简,根据真值表写出最简的逻辑函数表达式。(3) 选择合适的门器件,把最简的表达式转换为相应的表达式。(4) 根据表达式画出该电路的逻辑电路图。(5) 根据逻辑函数写出RTL级代码。3.3常用组合逻辑建模3.3.1编码器l 编码器
31、的定义把若干位二进制数码0和1,按一定的规律进行编排,组成不同的代码,并且赋予每组代码以特定的含义,叫做编码。实现编码操作的电路称为编码器。二进制编码器实现用n位二进制数码对N(N=2n)个输入信号进行编码的电路叫做二进制编码电路。其特点是,任一时刻只能对一个输入信号进行编码,即只允许一个输入信号为有效电平,而其余信号均为无效电平。图3.1所示电路是实现由3位二进制代码对8个输入信号进行编码的二进制编码器,这种编码器有8根输入线,3根输出线,常称为8/3线编码器。 图3.2 3位二进制编码器逻辑图二-十进制编码器实现用四位二进制代码对一位十进制数码进行编码的数字电路叫做二-十进制编码器,简称为
32、BCD码编码器。最常见的BCD码编码器是8421BCD码编码器,它有10根输入线,4根输出线,常称为10/4线编码器。其特点也是任一时刻只允许对一个输入信号进行编码。优先编码器优先编码器在多个信息同时输入时只对输入中优先级别最高的信号进行编码,编码具有惟一性。优先级别是由编码者事先规定好的。显然,优先编码器改变了上述两种编码器任一时刻只允许一个输入有效的输入方式,而采用了允许多个输入同时有效的输入方式,这正是优先编码器的特点,也是它的优点所在。图3.8为3位二进制优先编码器的逻辑图。图3.3 3位二进制优先编码器的逻辑图集成编码器集成3位二进制优先编码器(8/3线)148148主要包括TTL系
33、列中的54/74148、54/74LS148、54/74F148和CMOS系列中的54/74HC148、40H148等。其外引脚排列图如图3.4所示。图3.4 74LS148引脚S为使能输入端,低电平有效,即只有当S=0时,编码器才工作。YS为使能输出端,当S=0允许工作时,如果YS=0则表示无输入信号,YS=1表示有输入信号,有编码输出。YEX为扩展输出端,当S=0时,只要有编码信号,则YEX=0,说明有编码信号输入,输出信号是编码输出;YEX=1表示不是编码输出。YS和S配合可以实现多级编码器之间优先级别的控制。图3.5是利用2片集成3位二进制优先编码器74LS148实现一个16/4线优先
34、编码器的接线图。图3.5 有限编码器应用集成二-十进制优先编码器(10/4线)147147主要包括TTL系列中的54/74147、54/74LS147和CMOS系列中的54/74HC147、54/74HCT147和40H147等。其外引脚排列图如图3.6所示。 图3.6 74LS147引脚图其他编码器个人认为编码方式分类还可分为,其他两种编码器以下两种,常用与工控系统,我们微电系统也可以借鉴其设计思想增量式编码器:根据前一时刻的编码值,计算出当前编码相对值。1、 百度百科2、 通信原理(5版) 樊昌信 P215差分编码。绝对式编码器:计算当前编码绝对值,与前一时刻码值无关。1、 百度百科2、
35、通信原理(5版) 樊昌信 P206脉冲编码调制。最后,我们还可以把比较大型的编码器归为一类。例如Turbo码 编码器、JPEG2000编码器、mp3编码器等等。这类编码器一般都有专门的IP核供应商。3.3.2 译码器和数据分配器将每一组输入的二进制代码“翻译”成为一个特定的输出信号,用来表示该组代码原来所代表的信息的过程(编码的逆过程)称为译码。实现译码功能的数字电路称为译码器。二进制译码器将输入的二进制代码翻译成为原来对应信息的组合逻辑电路,称为二进制译码器。它具有n个输入端,2n个输出端,故称之为n/2n线译码器。 图3.7为3/8线译码器的逻辑电路图图3.7 3/8线译码器的电路图二-十
36、进制译码器二-十进制译码器(又称为BCD码译码器)是将输入的每一组4位二进制码翻译成对应的1位十进制数。因编码过程不同,即编码时采用的BCD码不同,所以相应的译码过程也不同,故BCD码译码器有多种。但此种译码器都有4个输入端,10个输出端,常称之为4/10线译码器。8421BCD码译码器是最常用的BCD码译码器,图3.8所示是其逻辑图。图3.8 8421BCD码译码器应当注意的是,BCD码译码器的输入状态组合中总有6个伪码状态存在。所用BCD码不同,则相应的6个伪码状态也不同,8421BCD码译码器的6个伪码状态组合为10101111。在设计BCD码译码器时,应使电路具有拒绝伪码的功能,即当输
37、入端出现不应被翻译的伪码状态时,输出均呈无效电平。上面的8421BCD码译码器便具有拒绝伪码的功能。数字显示译码器用来驱动各种显示器件,从而将用二进制代码表示的数字、文字、符号翻译成人们习惯的形式直观的显示出来的电路,称为显示译码器。(1)显示器件 数字显示器件的种类很多,按发光物质的不同分为半导体(发光二极管)显示器、液晶显示器、荧光显示器和辉光显示器等;按组成数字的方式不同,又可分为分段式显示器、点阵式显示器和字型重叠式显示器等。点阵式显示器主要用于大屏幕显示器,通常要有计算机控制其显示过程。目前使用较多的是分段式显示器,其显示方式是通过七段显示器完成09字符的显示过程。七段显示器主要有辉
38、光数码管和半导体显示器。半导体显示器使用最多,它有共阴极和共阳极两种接法,如图3.9所示。 图3.9 七段显示器(2)七段显示译码器字型重叠式显示器适用于BCD码译码器;而分段式显示器显然不适合于前面所述任何一种译码器,需要另外设计合适的译码电路来与分段显示器配合使用。七段显示译码器的输入信号为8421BCD码,输出信号应该能够驱动半导体七段显示器相应段发光。对于共阴极七段显示器,待点亮的段应给予高电平驱动信号,对于共阳极七段显示器,待点亮的段应给予低电平驱动信号。 集成译码器(1) 3位二进制译码器(3/8线)138138包括TTL系列中的54/74LS138、54/74S138、54/74
39、ALS138、54/74F138和54/74AS138,CMOS系列中的54/74HC138、54/74HCT138和40H138等。138为3位二进制译码器,其外引脚排列如图3.10所示。 图3.10 74LS138应注意的是,138的输入采用原码的形式;而输出采用的却是反码形式。 (2) 8421BCD码译码器(4/10线)42此种译码器包含有TTL系列的54/7442、54/74LS42和CMOS中的54/74HC42、54/74HCT42及40HC42等。其外引脚排列图如图3.11示。 图3.11 74LS42(3) 七段显示译码器4848主要有TTL系列中的74LS48等。其引脚排列
40、图如图3.18所示。逻辑功能表如表3.15所示。图3.12 七段显示译码器七段显示译码器48与共阴极七段数码管显示器BS201A的连接方法如图3.13所示。图3.13七段显示译码器应用数据分配器(1) 数据分配器的原理数据分配器的逻辑功能是,将1个输入数据传送到多个输出端中的1个输出端,具体传送到哪一个输出端,也是由一组选择控制信号确定。数据分配器的逻辑框图及等效电路如图3.14所示。图3.14 数据分配器的逻辑框图及等效电路通道地址选择码的位数n与数据输出端的数目m有如下关系m=2n(2)数据分配器的实现电路数据分配器实际上是译码器(分段显示译码器除外)的一种特殊应用。译码器必须具有“使能端
41、”,且“使能端”要作为数据输入端使用,而译码器的输入端要作为通道选择地址码输入端,译码器的输出端就是分配器的输出端。作为数据分配器使用的译码器通常是二进制译码器。图3.15是将2/4线译码器作为数据分配器使用的逻辑图。图3.15 2/4线译码器作为数据分配器其他译码器与编码器对应,我们可以把比较大型的译码器归为一类。例如Turbo码译码器、JPEG2000译码器、mp3译码器等等3.3.3数据选择器数据选择器1. 数据选择器的逻辑功能数据选择器的逻辑功能恰好与数据分配器的逻辑功能相反,即能从多个输入数据中选出一个送到输出端。数据选择器的逻辑框图及等效电路如图3.16所示。图3.16 数据选择器
42、的逻辑框图及等效电路2. 数据选择器的实现电路数据选择器的主体电路一定是与或门阵列。数据选择器还有一个十分重要的用途,即可以用来作为函数发生器实现任意组合的逻辑函数。图3.17 数据选择器 用来实现同一逻辑函数的选择器不同,会使电路的输入部分不同。在可能的情况下,应尽量选用通道地址码变量个数与所要实现的逻辑函数输入变量的个数相等或减少一个,从而使实现函数的电路简化。3.集成数据选择器(1) 集成双4选1数据选择器153集成双4选1数据选择器包含有TTL系列的54/74153、54/74LS153、54/74S153、54/74153和CMOS中的54/74HC153、54/74HCT153及4
43、0H153等。其外引脚排列图如图3.18所示。图3.18集成数据选择器153(2) 集成8选1数据选择器151集成8选1数据选择器包含有TTL系列的54/74151、54/74LS151、54/74S151、54/74151和CMOS中的54/74HC151、54/74HCT151及40H151等。其外引脚排列图如图3.27所示。图3.19 74LS151再利用FPGA实现数据选择器是常用的是ifelse语句和case语句,两者分别对应优先数据选择器和普通数据选择器3.3.4数值比较器数值比较器定义具有实现两个二进制数大小的比较,并把比较结果作为输出的数字电路称为数值比较器。1位数值比较器数值
44、比较器的真值表:A BL1(AB) L2(AB、AB、AB接低电平、A=B接高电平。若需扩大比较器的位数时,可用多片连接。图3.20 用3片85组成12位数值比较器的逻辑电路3.3.5加法器(减法器)注意:在硬件设计中减法器是用加法器实现的具体分析参见康华光教材4.4.5节P167。半加器能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。 全加器能对两个1位二进制数进行相加并考虑低位来的进位,即相当于对3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。 如果要进行多位的加法需要多个全加器构成多为全加器,构成多为全加器的方法很多,现在介绍如下级连加法器级连加法器又叫行波进位加
45、法器,由1位全加器串联构成,本级的进位输出作为下一级的进位输入。这种加法器结构简单,但速度慢,字长为N的加法运算需要N一1级门延时,延时主要是进位信号级连造成的。所以在需要高性能的设计中,一般不用这种结构的加法器。但是在用可编程逻辑器件实现这种加法器时,Xillnx和Altera的器件都为这种进位逻辑设置了专门的进位链。如果能充分利用这些专有资源,这种加法器在可编程逻辑器件中也能达到比较高的性能。并行加法器又称查找表型加法器,可采用硬件描述语言的运算符直接描述。这种结构预先将N位加法表放在一个查找表中,使用操作数作为地址去访问查找表,得到的输出数据就是加法值。例如,一个4位+4位的加法器可以放
46、到一个的查找表中。查找表一般由RAM或ROM构成,也可由逻辑结构实现。虽然这种结构的加法器实现起来很容易,并且运算速度快,但耗用资源多,尤其是当加法运算的位数较宽时,其耗用的资源将会非常大。超前进位加法器级连加法器的延时主要是由进位的延时造成的,因此要加快加法器的运算速度,就必须减小进位延迟,超前进位链能有效减小进位的延迟。超前进位加法器的特点是各级进位信号同时产生,大大减少了进位产生的时间。下面以4位超前进位链的推导为例,简要介绍超前进位的概念。首先对1位全加器其本位值和与进位输出表示如下:在这里,我们令G=ab,P =a+b,则有:由此,可用G和P来写出4位超前进位链如下(设定4位被加数和
47、加数为A和B,进位输入为,进位输出为,进位产生,进位传输为):由上面的超前进位链可以看出:各个进位彼此独立产生,将进位级连传播给去掉了,因此,减小了进位产生的延迟时间。但是,随着加法器位数的增加,进位的表达式会越来越长,这样电路结构就会变得越来越复杂。而且受到器件扇入系数的限制,电路的性能就会下降,所以完全采用并行进位是不可能的。为此,通常可以采用分组的方法来解决该问题,即把N位字长的加法器分成若干小组(例如4hit一组,充分利用FPGA四输入LUT结构)。在组内实现超前进位,组间既可以用行波进位,也可以采用超前进位。一般情况下,把组内采用超前进位,组间采用行波进位的加法器称为单级超前进位加法
48、器,把组内组间都采用超前进位的加法器称为多级超前进位加法器。跳跃进位加法器参考:1、 二级进位跳跃加法器的优化方块分配.pdf2、 快速静态进位跳跃加法器.pdf3、 基于方块超前进位的快速进位跳跃加法器.pdf4、 精通Verilog HDL语言编程15.3 P438流水线加法器并行加法器速度快,只有一级门延时,对于实现4位以下的加法器比较合适。但随着加法器位数的增加,在CPLD中受到逻辑宏单元输入信号数和乘积项资源的限制,在FPGA中也受到查找表容量的限制(呈指数级增长),所以我们可以采用流水线结构来设计加法器。因为FPGA器件的触发器非常丰富,所以充分利用触发器资源可大大提高加法器的工作
49、速度。下面将以一个八位加法器为例,讨论如何进行流水线设计。设S=A+B。其中,A=(AI,AII),其中AI和AII分别代表A的高四位和低四位,同样的方式B和S也可被表示为B=(BI,BII),S=(SI,SII),所以加法可分解为:按上述式子,8位+8位加法可以分为下列步骤进行:1)分别求出部分SI和SII2)高位部分和SI加上低位进位。经过改进,实现8位+8位加法运算只需2个4位加法器。用FPGA实现时,查找表的规模减少到。在FPGA中由于查找表输入线少,往往需要将运算分解为更小的规模进行。在CPLD中实现4位+4位加法器比较容易。图3.21 8位+8位2级流水线加法器实现加法运算的方法有
50、很多。从资源耗费和速度性能等多方面综合考虑,查找表加法器比较适合于实现规模较小的加法器,而规模较大的加法器可以使用流水线加法器来实现。从速度的角度来讲,流水线结构加法器最优,从资源占用的角度来讲,级连加法器(又称串行进位加法器)占用资源最少。可以看出,速度(性能)和资源消耗(开销)始终是一对矛盾体。对于流水线加法器,流水深度同运算速度在一定程度上是成正比的,然而随着流水深度的增加,连线延迟在总的延迟中所占的比重越来越大,逻辑延迟所占比重逐渐变小,总的延迟不一定减小,而资源耗费却直线上升。所以具体要分成几级流水结构来实现,要根据实际项目的需要进行综合分析。3.3.6乘法器乘法器是运算处理运算中最
51、基本的设计单元之一。实现硬件乘法运算主要可以采用以下几种方法:移位相加、查找表与逻辑树、加法器树和混合乘法器等。下面以一个8位乘法器为例,讨论几种乘法器的优缺点。(1)基本乘法器(移位相加)移位相加乘法器实现起来相对较简单,大多数的单片机和微处理器的乘法运算都采用这种方法。8位的乘法器只需一个16位移位寄存器和一个16位加法器即可实现。移位相加乘法器的最大缺点是速度慢,8位乘法需要8个时钟周期才能得到结果。(2)查找表与逻辑树乘法器把乘积放在存储器中,使用操作数作为地址访问存储器,得到的输出数据就是乘法运算的结果。查找表方式的乘法器的速度只局限于所使用的存储器的速度,小型乘法器使用这种技术则非
52、常合适。但是随着操作数精度的提高,查询表变得非常庞大,因此不宜用于位数高的乘法操作。例如,一个4位x4位的乘法运算就需要一个的查找表来实现。但查找表的规模随着操作数的精度提高而迅速扩大,例如一个8位x8位的乘法就需要一个位的查找表来实现,可见这是个比较庞大的数据。逻辑树的输出数据的每一位都可以写成所有操作数的逻辑函数。这种方法的速度和查找表一样快,但实现起来比较困难,因为乘法器需要很多输入线和乘积项资源,而逻辑器件的资源不一定能满足乘法器运算的需要。为此,有些研究者设计了许多种非常复杂的使用乘积项共享的逻辑树来实现乘法器。逻辑树也可视为一种精简的查询表,8位乘法器设计需要16个输入。(3)加法
53、器树乘法器加法器树乘法器(Adder-tree)实际上是由移位相加器和查询表组成,如图3.22所示。图3.22 加法器树乘法器图中的8位xl位乘法器可以用8个与门实现,最终的移位相加是通过一个并行的加法器来实现的。加法器树需要的加法器数目等于操作数位数减1,加法器精度为操作数位数的2倍,需要的与门数等于操作数的平方。8位乘法器需要7个16位加法器和64个与门。如果采用流水线技术,加法器树乘法运算需要的时间仅为1个时钟周期。不过,通过仔细观察上面的结构可以发现,其实在进行累加结果时,后面的几个16位加法器还可以进一步减小规模,由此可以得到如图3的改进结构。图3.23改进后的加法器树乘法器我们可以
54、用FPGA内部闲置的片内RAM实现高速的乘法器,但对于大型乘法器来说,直接进行并不现实。因此,我们需要对它进行变形,以满足我们的要求,混合乘法器就是一种比较好的方法。(4)混合型乘法器混合乘法器就是利用查找表做小型乘法器,然后再利用权值相加做大型乘法器,结合了“查找表”和“移位相加”两者的优点。例如,8位乘法器Y=a*b可以分解成两个半字节。其中,。因此,乘式可以写成:这样就把一个8x8乘法运算转化成4个4x4乘法运算,相对而言,减小了查找表的尺寸。需要注意的是,这种乘法器最后进行相加运算时,必须对高位乘积进行加权,对低位乘积高位补0。另外,可以根据运算精度的要求,舍去最无效的部分,以节省硬件资源的消耗。从速度的角度来讲,采用流水线技术的加法器树乘法器最优,从资源占用的角度来讲,移位累加乘法器占用资源最少。综合考虑,实现规模较小的乘法运算可以使用查找表乘法器,规模较大的乘法运算可以使用采用了流水线技术的加法器树结构乘法器来实现。但要注意,虽然流水深度同运算速度在一定程度上是成正比的,但是随着流水深度的增加,布线延迟在总的延迟中所占的比重越来越大,逻辑延迟所占比重逐渐变小,总的延迟不一定减小,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年赣州环保工程承包合同
- 2024年版电子竞技赛事组织合同
- 2024年美术培训学校聘请美术教学研究专家服务协议3篇
- 2025版汽车抵押贷款服务专项合同
- 2024年甲乙双方关于新能源汽车充电设施建设与运营的合同
- 2025年度高新技术公司技术入股合作协议3篇
- 2025年度企业搬迁项目策划与办公设备搬迁服务合同3篇
- 2025版智能交通信号控制系统合作合同3篇
- 2025年度专业翻译公司兼职翻译人员聘用协议3篇
- 2025版建筑泥水工劳务分包与建筑信息化管理系统合同3篇
- 2024年马拉松比赛项目合作计划书
- 苗圃购销合同范本
- 《二十四节气融入幼儿园教育活动的个案研究》
- ICU患者跌倒、坠床应急预案及防范措施
- 电力监控系统安全防护总体方案
- 炉渣炉灰采购合同模板
- 国家开放大学Python程序设计形考任务实验六-互联网评论数据分析及其展示综合案例
- GB/T 44899-2024商品条码散装和大宗商品编码与条码表示
- 施工企业五年规划
- 2024年保密知识测试试题附答案(综合卷)
- 高考英语一轮复习知识清单(全国版)专题06 语法填空倒装句100题(精练) 含答案及解析
评论
0/150
提交评论