《Verilog HDL数字系统设计-原理、实例及仿真》课件第8章_第1页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第8章_第2页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第8章_第3页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第8章_第4页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第8章_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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】实现普通编码器的VerilogHDL描述。

其功能仿真结果见图8.2。图8.2普通编码器的功能仿真结果

【代码8.2】实现8位优先编码器的VerilogHDL描述。

其功能仿真结果见图8.3。图8.38位优先编码器的功能仿真结果

8.2译码器

8.2.1二进制译码器

二进制译码器的逻辑功能是把输入的二进制代码表示的所有状态翻译成对应的输出信号。若输入的是3位二进制代码,3位二进制代码可以表示8种状态,因此就有8个输出端,每个输出端分别表示一种输入状态。因此,又把3位二进制译码器称为3线—8线译码器,简称3-8译码器,与此类似的还有2-4译码器和4-16译码器等。图8.43-8译码器的逻辑符号常用的3-8译码器74LS138的逻辑符号如图8.4所示。图中,STA、和是译码控制信号,只有当STA=1,

+

=0时,译码器才对输入信号A2A1A0进行译码,其真值表如表8.3所示。

【代码8.3】3-8译码器模块。

其功能仿真结果见图8.5。图8.53-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”就需要a~g七个段中只有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的状态,从输入的四路数据D3~D0中选择一个作为输出,图中,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.144选1数据选择器功能仿真结果8.3.2数据分配器

数据分配器实现与数据选择器相反的功能,是将某一路数据分配到不同的数据通道上,因此也称为多路分配器。

图8.15是一个4路数据分配器的功能示意图。图中,S相当于一个由信号A1A0控制的单刀多掷输出开关,输入数据D在地址输入信号A1A0的控制下,传送到输出Y0~Y3的不同数据通道上。

表8.6是4路数据分配器的真值表。图8.154路数据分配器的功能示意图

【代码8.7】8路数据分配器模块。

其功能仿真结果见图8.16。图8.168路数据分配器的功能仿真结果

8.4数 据 比 较 器

数据比较器是能够对两个数值数据进行比较并给出比较结果的逻辑电路。

设数据比较器的两个待比较的输入分别为A、B,比较结果可能出现大于、等于、小于三种情况,分别用变量FA>B、FA=B,FA<B表示比较的结果。若A>B,则FA>B=1;若A=B,则FA=B=1;若A<B,则FA<B=1。一位数据比较器的真值表如表8.7所示。

图8.17是数据比较器的逻辑符号。图中,信号A、B是两个需要比较的数据,FA<B、FA=B、FA>B是比较的结果,输入信号中的A=B、A>B和A<B是在比较位数进行扩展时需要考虑的来自低位的比较结果。图8.17数据比较器的逻辑符号

【代码8.8】8位数值比较器模块。

其功能仿真结果见图8.18。图8.188位数据比较器的功能仿真结果

8.5奇偶产生/校验器

1.奇偶产生/校验电路的工作原理

奇(偶)校验码具有一位的检错能力,其基本思想是通过在原数据信息后增加一位奇校验位(偶校验位),形成奇(偶)校验码。发送端发送奇(偶)校验码,接收端对收到的奇(偶)校验码中的数据位采用同样的方法产生新的校验位,并将该校验位与收到的校验位进行比较,若一致则数据正确,否则数据错误。具有产生检验码和奇偶检验功能的电路称为奇偶产生/校验器。奇偶校验码包含n位数据位和1位校验位,对于奇校验码而言,其数据位加校验位后,“1”的总个数是奇数;对于偶校验码而言,数据位加校验位后“1”的总个数是偶数。

下面设计一个采用偶校验的4位二进制(奇)偶产生/校验器。表8.8列出了偶校验的真值表,由此可写出校验位P的逻辑表达式:实现校验位P的电路如图8.19所示。为了检验所传送的数据位及偶校验位是否正确,还应设计偶校验检测器。在接收端根据接收的数据位生成校验位P' 与收到的校验位P进行比较就实现了校验功能,电路如图8.20所示。其中,E是输出的校验结果,若P' = P,则E = 0,表示校验正确;若P'≠P,则E=1,表示校验错误。图8.19偶校验位产生电路

图8.20偶校验电路图8.21是常用奇偶产生/校验器CT74180的逻辑符号,其输入、输出信号的含义分别描述如下:图8.21CT74180的逻辑符号

CT74180的逻辑功能真值表见表8.9。

2.奇偶产生/校验电路的VerilogHDL设计与仿真

代码8.9是一个奇偶产生/校验模块的VerilogHDL程序,当该模块的数据位宽度参数选择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;若数据dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论