VHDL设计实例及分析.ppt_第1页
VHDL设计实例及分析.ppt_第2页
VHDL设计实例及分析.ppt_第3页
VHDL设计实例及分析.ppt_第4页
VHDL设计实例及分析.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

第7讲 VHDL设计实例及分析 7.1组合逻辑单元的VHDL描述 7.1.1基本逻辑门的VHDL描述 7.1.2编码器、译码器和多路选通器的VHDL描述 7.1.3加法器和求补器的VHDL描述 7.1.4三态门及总线缓冲器 7.2 时序电路的VHDL描述 7.2.1时钟信号和复位信号 7.2.2触发器 7.2.3寄存器 7.2.4计数器 7.1 组合逻辑单元的VHDL描述 组合逻辑电路有基本逻辑门电路、编码器、译码器、多 路选通器、三态门等。 7.1.1 基本逻辑门的VHDL描述 逻辑门电路是构成所有逻辑电路的基本电路,本节将通 过二输入“与非”门、二输入“或非”门、反相器和二输入“异或” 门等简单门电路的VHDL描述实例来介绍逻辑门电路的VHDL 描述方法。 1二输入“与非”门电路 二输入“与非”门电路是逻辑门电路中最简单的,其逻辑电 路图如图7.1所示。 图7.1 二输入“与非”门电路的逻辑电路图 利用VHDL描述二输入“与非”门有多种形式,如例7.1所示。 2二输入“或非”门电路 二输入“或非”门电路的逻辑电路图如图7.2所示。 图7.2 二输入“或非”门电路的逻辑电路图 例7.2所示为用VHDL描述的二输入“或非”门电路的程序。 3反相器 反相器电路的逻辑电路图如图7.3所示。 图7.3 反相器的逻辑电路图 例7.3所示为用VHDL描述的反相器的程序。 4二输入“异或”门电路 二输入“异或”门电路的逻辑表达式如下: y=ab 其逻辑电路图如图7.4所示。 图7.4 二输入“异或”门电路的逻辑电路图 例7.4所示为用VHDL描述的二输入“异或”门的程序。 7.1.2 编码器、译码器和多路选通器的VHDL描述 编码器、译码器和多路选通器是组合电路中较简单的3种 通用电路,它们可以直接由简单的门电路组合连接而构成。通 过门电路构造译码器过于复杂,如果使用VHDL进行行为级的 描述就清楚多了,本节将介绍编码器、译码器和多路选通器的 VHDL描述方式。 1优先级编码器 优先级编码器常用于中断的优先 级控制。当优先级编码器的某一个输 入电平有效时,编码器输出一个对应 的3位二进制编码。另外,当同时有 多个输入有效时,将输出优先级最高 的那个输入所对应的二进制编码。 图7.7所示就是最简单的优先级 编码器的引脚图,它有8个输入D0 D7和3位二进制输出A0A2。 例7.5所示为用VHDL描述的优先 级编码器的程序。 23-8译码器 3-8译码器是一种常用的小规模集 成电路,如图7.8所示。它有3位二进 制输入端A、B、C和8位译码器输出端 Y0Y7。对输入A、B、C的值进行译 码,就可以确定输出端Y0Y7的某一 个输出端变为有效(低电平),从而达到 译码的目的。 除了基本的输入、输出端口外,3 -8译码器还有3个选通输入端G1、G2A 和G2B。只有在G1=l,G2A=0, G2B=0时,3-8译码器才能进行正常译 码,否则Y0Y7输出将均为高电平。 例7.6所示为用VHDL描述的3-8译码器 的程序。 34选1多路选通器 多路选通器用于信号的切 换。4选1多路选通器如图7.9所 示,它用于4路信号的切换。4 选1多路选通器有4个信号输入 端input(0)input(3)、2个选择 信号a和b及1个信号输出端y。 当a、b输入不同的选择信号时 ,input(0)input(3)中某个相应 的输入信号就与输出y端接通。 7.1.3 加法器和求补器的VHDL描述 1加法器 本小节将介绍关于加法器的结构级描述。多位的加法器由 多个全加器和一个半加器构成。全加器可以用两个半加器构成 。 2求补器 在二进制的运算过程 中,经常要用到求补的操 作。8位二进制数的同步求 补器引脚框图如图7.13所 示。求补电路的输入为a(0) a(7),补码输出为b(0) b(7),其中a(7)和b(7)为符 号位,该电路结构较复杂 ,可以采用如例7.11所示 的行为级的VHDL描述, 其语句更加简洁、清楚。 7.1.4 三态门及总线缓冲器 三态门和双向缓冲器是接口电路和总线驱动电路经常 用到的器件。本小节将介绍三态门和总线缓冲器的VHDL描 述方法。 1三态门的VHDL描述 三态门的引脚框图如图7.14 所示。它具有一个数据输入端din 、一个数据输出端dout和一个控 制端en。当en=1时,dout=din; 当en=0时,dout=Z(高阻)。例7.12 所示为用VHDL描述的三态门的 程序。 2单向总线缓冲器 单向总线缓冲器常用于微型 计算机的总线驱动,通常由多个 三态门并列组成,用来驱动地址 总线和控制总线。一个8位的单 向总线缓冲器如图7.15所示,它 由8个三态门组成,具有8个输入 端和8个输出端,所有的三态门 的控制端连在一起,由一个控制 输入端en控制。 3双向总线缓冲器 双向总线缓冲器用于对数据 总线的驱动和缓冲。典型的双向 总线缓冲器的引脚框图如图7.16所 示。图中的双向总线缓冲器有两 个数据输入/输出端a和b、一个方 向控制端dir和一个选通端en。当 en=1时,双向总线缓冲器未被选 通,a和b都呈现高阻。当en=0时 ,双向总线缓冲器被选通。如果 dr=0,那么ab;如果dir=1,那么 ba。例7.14所示为用VHDL描述 的双向总线缓冲器的程序。 7.2 时序电路的VHDL描述 与组合电路不同,时序电路的输出不仅取决于该时刻的 输入信号,而且与电路的原状态有关。在时序电路中常常存在 时钟信号和复位信号,时钟信号和复位信号的描述在时序 电路的描述中至关重要,因此本节先介绍时钟信号和复位信号 的描述。 7.2.1 时钟信号和复位信号 1时钟信号的描述 一般情况下,时序电路均以时钟信号为驱动信号,时序电 路只是在时钟信号的驱动下运行,其状态才发生改变。因此, 时钟信号通常是描述时序电路的程序的执行条件。时序电路也 总是以时钟进程形式来进行描述的,其描述方式一般有两种。 (1) 时钟信号作为进程的敏感信号。时钟信号应作 为敏感信号,显式地出现在PROCESS语句后的敏感信号列表 中。 描述时钟脉冲的上升沿可采用如下语句: clock_signalevent and clock_signal= 1 同理,描述时钟脉冲的下降沿可采用如下语句: clock_signalevent and clock_signal= 0 (2) 用进程中的“WAIT ON”语句判断时钟。进程通 常停留在“WAIT ON”语句上,只有在时钟信号到来且满足边 沿条件时,其余的语句才能被执行。 WAIT ON语句只能放在 进程的最前面或者最后面。 2复位信号的描述 时序电路的初始状态常常由复位信号来设置。分为同步复 位和非同步复位两种。所谓同步复位,就是当复位信号有效且 在给定的时钟边缘到来时,触发器才被复位,此时复位的状态 与时钟同步,有助于信号的稳定和系统毛刺的消除;而非同步 复位状态与时钟状态不要求同步,一旦复位信号有效,触发器 就被复位。 1) 同步复位 在用VHDL描述时,同步复位的语句必须在以时钟为敏感 信号的进程中,常用“IF”语句来描述复位条件。例7.17和例 7.18就是同步复位方式的程序实例。 例7.17 PROCESS(clock_signal) BEGIN IF (clock_edge_condition) THEN IF (reset_condition) THEN 复位语句; ELSE 时序语句; END IF; END IF; END PROCESS; 例7.18 PROCESS BEGIN WAIT UNTIL (clock_edge_condition) IF (reset_condition) THEN 复位语句; ELSE 时序语句; END IF; END PROCESS; 2) 异步复位 带有复位语句的进程的敏感信号表应包含复位信号;判定 复位条件的“IF”语句的结构必须在判断时钟同步的语句结构之 上,也就是说,复位条件的优先级要比同步条件的优先级高。 其描述方式如例7.19所示。 例7.19 PROCESS(reset_signal,clock_signal) BEGIN IF (reset_condition) THEN 复位语句; ELSIF (clock_edge_condition) THEN 时序语句; END IF; END PROCESS; 7.2.2 触发器 触发器是指能存储1位二进制信息的基本单元,又称双 稳态触发器。 1D触发器 1) 基本D触发器 正沿(上升沿)触发的D触发器的 引脚框图如图7.17所示。它是最基 本的D触发器,仅有一个数据输入 端d、一个时钟输入端clk和一个数 据输出端q。在时钟上升沿,输出端 q输出d端的状态。 2) 非同步复位、置位的D触发器 非同步复位、置位的D触发器的引脚框图如图7.18所示。 它是在基本D触发器的基础上增加了一个复位端口clr和一个置 位端口pset。当复位端口clr=0时,其q端输出被强迫置为0,故 clr端又称清零输入端。当置位端口pset=0时,其q端输出被强 迫置为1。当复位端口和置位端口同时有效,即clr和pset都为0 时,clr端口的优先级高于pset端口的优先级,故q端输出被强 迫置为0。例7.21所示为用VHDL描述的非同步复位、置位的D 触发器的程序。 3) 同步复位、置位的D触发器 同步复位、置位的D触发器的引脚框图如图7.19所示。 图7.19 同步复位、置位的D触发器的引脚框图 2JK触发器 带有复位/置位功能的JK触发器的引脚框图如图7.20所示 。 JK触发器的输入端有置位输入pset、复位输入clr、控制输入 j和k以及时钟信号输入clk;输出端有正向输出端q和反向输出 端qb。 例7.23所示为用VHDL描述的JK触发器的程序。 图7.20 JK触发器的引脚框图 7.2.3 寄存器 寄存器一般由多个触发器连接而成,通常有锁存寄存 器和移位寄存器等。下面主要介绍一些移位寄存器的实例。 1串行输入、串行输出移位寄存器 8位串行输入、串行输出移位寄存器的引脚框图如图 7.21所示。它具有一个数据输入端a、一个时钟输入端clk和 一个数据输出端b。8位的串行移位寄存器最多能同时保存8 位数据,在时钟信号作用下,前级的数据向后级移动。例 7.24所示为8位串行输入、串行输出寄存器的VHDL的行为级 描述程序。 图7.22 8位移位寄存器结构 利用“GENERATE”语句和D触发器的描述很容易写出8位 移位寄存器的结构级的VHDL程序,如例7.25所示。 2循环移位寄存器 在计算机的运算操作中经常用到循环移位,它可以用硬件 电路来实现。8位循环左移寄存器的引脚框图如图7.23所示。 该电路有一个8位并行数据输入端din、移位和数据输出控制端 end、时钟信号输入端clk、3位移位位数控制输入端s和8位数 据输出端dout。当end=1时,根据s(0)s(2)输入的数值,确定 在时钟脉冲作用下,循环左移几位。当end=0时,din直接输出 至dout。 图7.23 8位循环左移寄存器的引脚框图 3串入并出(SIPO)移位寄存器 8位串入并出移位寄存器的引脚框图如图7.24所示。 串入并出移位寄存器用于实现串行数据向并行数据的 转换,其中din端口用于串行输入数据,clk端口是系统时钟 输入端口,dout端口是8位数据并行输出端口。8位串入并出 移位寄存器的VHDL描述如例7.28所示。 图7.24 8位串入并出移位寄存器的引脚框图 4并入串出(PISO)移位寄存器 并入串出(PISO)移位寄存器的功能与串入并出(SIPO)移位 寄存器的相反,其能实现并行数据向串行数据的转化。并入 串出(PISO)移位寄存器的引脚框图如图7.25所示。 并入串出(PISO)移位寄存器的工作过程如下: 首先将load端口置0,同时向din端口并行写入数据,然 后将load端口置1,dout端口将在clk时钟信号的驱动下按照从 高位到低位的顺序依次输出数据的值。 图7.25 并入串出(PISO)移位寄存器的引脚框图 7.2.4 计数器 计数器是一个典型的时序电路,在数字电子设计中使 用非常普遍。常用的计数器分同步计数器和异步计数器两 种。 1同步计数器 所谓同步计数器,就是在时钟脉冲(计数脉冲)的控制下 ,构成计数器的各触发器的状态同时发生变化的那一类计 数器。 1) 带允许端的十进制BCD计数器 带允许端的十进制BCD计数器的引脚框图如图7.26所示 。 该计数器由4个触发器构成,clr输入端用于清零,en端用 于控制计数器工作,clk为时钟脉冲(计数脉冲)输入端,q为计 数器的4位二进制计数值输出端。例7.30所示为用VHDL描述 的带允许端的十进制BCD计数器的程序。 图7.26 带允许端的十进制BCD计数器的引脚框图 图7.27 8位二进制可逆计数器的引脚框图 可逆计数器有一个特殊的控制端 ,这就是updn端。当updn=1时,计数 器进行加1操作;当updn=0时,计数 器进行减1操作。例7.3.1所示为用 VHDL描述的8位二进制可逆计数器的 程序。 2) 可逆计数器 所谓可逆计数器,就是根据计数控制信号的不同,在时钟 脉冲作用下,计数器可以进行加1或减1操作的一种计数器。8 位二进制可逆计数器的引脚框图如图7.27所示。 2异步计数器 异步计数器又称行波计数器,它的低位计数器的输出作为 高位计数器的时钟信号,然后一级一级串行连接起来。异步计 数器与同步计数器的不同之处就在于时钟脉冲的提供方式,除 此之外就完全相同了,它同样可以构成各种各样的计数器。但 是,异步计数器采用行波计数,从而增加了计数延迟,在要求 延迟小的应用领域受到了很大的限制。尽管如此,由于它的电 路简单,因此仍有广泛的应用。 用VHDL描述的异步计数器与上述同步计数器的不同之处 主要表现在对

温馨提示

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

评论

0/150

提交评论