资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第8章 常用组合逻辑电路设计,8.1 编码器 8.2 译码器 8.3 数据选择器和数据分配器 8.4 数据比较器 8.5 奇偶产生/校验器,8.1 编 码 器 用文字、数字或符号代表特定对象的过程称为编码。电路中的编码就是在一系列事物中将其中的每一个事物用一组二进制代码来表示。编码器就是实现这种功能的电路,图8.1是编码器的逻辑符号。编码器的逻辑功能就是把输入的2N个信号转化为N位输出。常用的编码器根据工作特点有普通编码器和优先编码器两种。,图8.1 编码器的逻辑符号,表8.1和表8.2分别是8线3线的普通编码器和优先编码器的真值表,表中输入用表示,输出用Yi(正逻辑)或(负逻辑)表示。普通编码器仅允许在任何时刻所有输入中只能有一个输入是有效电平(如表8.1中的低电平),否则会出现输出混乱的情况。而优先编码器则允许在同一时刻有两个或两个以上的输入信号有效,当多个输入信号同时有效时,只对其中优先权最高的一个输入信号进行编码。输入信号的优先级别是由设计者根据需要确定的。,【代码8.1】 实现普通编码器的Verilog HDL描述。 其功能仿真结果见图8.2。,图8.2 普通编码器的功能仿真结果,【代码8.2】 实现8位优先编码器的Verilog HDL描述。 其功能仿真结果见图8.3。,图8.3 8位优先编码器的功能仿真结果,8.2 译 码 器 8.2.1 二进制译码器 二进制译码器的逻辑功能是把输入的二进制代码表示的所有状态翻译成对应的输出信号。若输入的是3位二进制代码,3位二进制代码可以表示8种状态,因此就有8个输出端,每个输出端分别表示一种输入状态。因此,又把3位二进制译码器称为3线8线译码器,简称3-8译码器,与此类似的还有2-4译码器和4-16译码器等。,图8.4 3-8译码器的逻辑符号,常用的3-8译码器74LS138的逻辑符号如图8.4所示。图中,STA、 和 是译码控制信号,只有当STA=1, + =0时,译码器才对输入信号A2A1A0进行译码,其真值表如表8.3所示。,【代码8.3】 3-8译码器模块。 其功能仿真结果见图8.5。,图8.5 3-8译码器的功能仿真结果,8.2.2 十进制译码器 十进制译码器的逻辑功能是将输入的4位BCD码翻译成对应的输出信号,因此输入信号有4个,输出信号有10个。图8.6是十进制译码器的逻辑符号,其真值表如表8.4所示。,图8.6 十进制译码器的逻辑符号,【代码8.4】 二十进制译码器模块。 其功能仿真结果见图8.7。,图8.7 二十进制译码功能仿真结果,8.2.3 七段译码器 实际应用中往往需要显示数字,常用最简单的显示器件是七段数码管。它是由多个发光二极管LED分段封装制成的。LED数码管有共阴型和共阳型两种形式,图8.8是七段数码显示器件的外形图、共阴极和共阳极LED电路连接图。,图8.8 七段LED数码管,图8.9所示是常用七段译码器的输出与显示字形的对应关系。 七段译码器的功能就是给出输入信号对应的段码输出,例如对共阴极译码器而言,当输入为“0”时,为了显示“0”就需要ag七个段中只有g段是灭的,其余段都应点亮,因此输出为abcdefg=11111110,即“0”的段码。输入为“6”时,只有b段是灭的,其余段都应点亮,因此输出为abcdefg=10111111,即“6”的段码。七段译码器的逻辑符号见图8.10。,图8.9 常用七段译码器字形,图8.10 七段译码器的逻辑符号,【代码8.5】 共阴、共阳极输出可选七段译码器模块。 其功能仿真结果见图8.11。,图8.11 七段译码器的功能仿真结果,8.3 数据选择器和数据分配器 8.3.1 数据选择器 在实际应用中,往往需要在多路输入数据中根据需要选择其中一路,完成这样功能的电路称为数据选择器或多路选择器。,数据选择器的作用可以用如图8.12所示的多路开关来描述。根据输入信号A1A0的状态,从输入的四路数据D3D0中选择一个作为输出,图中,A1A0=11,所以输出的数据是D3。其对应的真值表如表8.5所示。图8.13是4选1数据选择器的逻辑符号,图中的控制信号 =0时,实现表8.5的功能;当 =1时,Y不受A1A0的控制,输出为0。,图8.12 数据选择器的工作原理示意图,【代码8.6】 4选1数据选择器模块。 其功能仿真结果见图8.14。,图8.14 4选1数据选择器功能仿真结果,8.3.2 数据分配器 数据分配器实现与数据选择器相反的功能,是将某一路数据分配到不同的数据通道上,因此也称为多路分配器。 图8.15是一个4路数据分配器的功能示意图。图中,S相当于一个由信号A1A0控制的单刀多掷输出开关,输入数据D在地址输入信号A1A0的控制下,传送到输出Y0Y3的不同数据通道上。 表8.6是4路数据分配器的真值表。,图8.15 4路数据分配器的功能示意图,【代码8.7】 8路数据分配器模块。 其功能仿真结果见图8.16。,图8.16 8路数据分配器的功能仿真结果,8.4 数 据 比 较 器 数据比较器是能够对两个数值数据进行比较并给出比较结果的逻辑电路。 设数据比较器的两个待比较的输入分别为A、B,比较结果可能出现大于、等于、小于三种情况,分别用变量FAB、FA=B,FAB,则FAB =1;若A=B,则FA=B=1;若AB,则FAB =1。一位数据比较器的真值表如表8.7所示。,图8.17是数据比较器的逻辑符号。图中,信号A、B是两个需要比较的数据,FAB是比较的结果,输入信号中的A=B、AB和AB是在比较位数进行扩展时需要考虑的来自低位的比较结果。,图8.17 数据比较器的逻辑符号,【代码8.8】 8位数值比较器模块。 其功能仿真结果见图8.18。,图8.18 8位数据比较器的功能仿真结果,8.5 奇偶产生/校验器 1奇偶产生/校验电路的工作原理 奇(偶)校验码具有一位的检错能力,其基本思想是通过在原数据信息后增加一位奇校验位(偶校验位),形成奇(偶)校验码。发送端发送奇(偶)校验码,接收端对收到的奇(偶)校验码中的数据位采用同样的方法产生新的校验位,并将该校验位与收到的校验位进行比较,若一致则数据正确,否则数据错误。具有产生检验码和奇偶检验功能的电路称为奇偶产生/校验器。,奇偶校验码包含n位数据位和1位校验位,对于奇校验码而言,其数据位加校验位后,“1”的总个数是奇数;对于偶校验码而言,数据位加校验位后“1”的总个数是偶数。 下面设计一个采用偶校验的4位二进制(奇)偶产生/校验器。表8.8列出了偶校验的真值表,由此可写出校验位P的逻辑表达式:,实现校验位P的电路如图8.19所示。为了检验所传送的数据位及偶校验位是否正确,还应设计偶校验检测器。在接收端根据接收的数据位生成校验位P 与收到的校验位P进行比较就实现了校验功能,电路如图8.20所示。其中,E是输出的校验结果,若P = P,则E = 0,表示校验正确;若PP,则E=1,表示校验错误。,图8.19 偶校验位产生电路,图8.20 偶校验电路,图8.21是常用奇偶产生/校验器CT74180的逻辑符号,其输入、输出信号的含义分别描述如下:,图8.21 CT 74180的逻辑符号,CT74180的逻辑功能真值表见表8.9。,2奇偶产生/校验电路的Verilog HDL设计与仿真 代码8.9是一个奇偶产生/校验模块的Verilog HDL程序,当该模块的数据位宽度参数选择8时可以实现CT74180器件的功能,其数据位的宽度可以用参数n进行设置。,【代码8.9】 奇偶校验/产生模块。 代码8.9的功能仿真结果见图8.22。,图8.22 奇偶产生/校验器的功能仿真结果,图8.22中的数据为二进制显示结果,与表8.9所示功能一致。图中,当even=1、odd=0时,若数据data中的1为奇数个(如图中的data为00000001和00111011),则校验位Fev=1、Fod=0;若数据data中的1为偶数个(如图中的10010000),则校验位Fev=0、Fod=1。当even=0、odd=1时,若数据data中的1为奇数个(如图中的data为00111110和10010010),则校验位Fev=1、Fod=0;若数据data中的1为偶数个(如图中的11110101和11011101),则校验位Fev=0、Fod=1。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号