VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx

上传人(卖家):晟晟文业 文档编号:4281187 上传时间:2022-11-25 格式:PPTX 页数:174 大小:1.82MB
下载 相关 举报
VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx_第1页
第1页 / 共174页
VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx_第2页
第2页 / 共174页
VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx_第3页
第3页 / 共174页
VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx_第4页
第4页 / 共174页
VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx_第5页
第5页 / 共174页
点击查看更多>>
资源描述

1、第8章 基本逻辑电路设计第8章 基本逻辑电路设计8.1 组合逻辑电路设计8.2 时序电路设计习题与思考题第8章 基本逻辑电路设计8.1 组合逻辑电路设计8.1.1 简单门电路简单门电路包括2输入“与非”门、集电极开路的2输入“与非”门、2输入“或非”门、反相器、集电极开路的反相器、3输入“与”门、3输入“与非”门、2输入“或”门和2输入“异或”门等,它们是构成所有逻辑电路的基本电路。第8章 基本逻辑电路设计12输入“与非”门电路2输入“与非”门电路的逻辑表达式为y=(ab)其逻辑电路图如图8-1所示。利用VHDL描述2输入“与非”门有多种形式,现举两个例子加以说明。第8章 基本逻辑电路设计图8

2、-1 2输入“与非”门电路第8章 基本逻辑电路设计【例8-1】用VHDL描述2输入“与非”门电路示例一。第8章 基本逻辑电路设计【例8-2】用VHDL描述2输入“与非”门电路示例二。第8章 基本逻辑电路设计第8章 基本逻辑电路设计从上面两个例子中可以看出,例8-1的描述更简洁,更接近于2输入“与非”门的行为描述,因此也更易于阅读;例8-2的描述是以2输入“与非”门的真值表为依据来编写的,罗列了2输入“与非”门的每种输入状态及其对应的输出结果。第8章 基本逻辑电路设计集电极开路的2输入“与非”门和一般的2输入“与非”门在VHDL的描述上没有什么差异,所不同的只是从不同元件库中提取相应的电路而已。

3、例如:第8章 基本逻辑电路设计在第一个例子中要生成的是一般TTL的2输入“与非”门,而在第二个例子中要生成的是TTL集电极开路的2输入“与非”门。这里所叙述的情况对其他门电路同样适用。因此,对不同类型门电路的集电极开路输出门,本节将不再赘述。第8章 基本逻辑电路设计22输入“或非”门电路2输入“或非”门电路的逻辑表达式为y=(ab)其逻辑电路图如图8-2所示。现举两个用VHDL描述2输入“或非”门电路的例子。第8章 基本逻辑电路设计图8-2 2输入“或非”门电路第8章 基本逻辑电路设计【例8-3】用VHDL描述2输入“或非”门电路示例一。第8章 基本逻辑电路设计【例8-4】用VHDL描述2输入

4、“或非”门电路示例二。第8章 基本逻辑电路设计第8章 基本逻辑电路设计3反相器反相器电路的逻辑表达式为y=a其逻辑电路图如图8-3所示。VHDL对反相器的描述如例8-5和例8-6所示。第8章 基本逻辑电路设计图8-3 反相器电路第8章 基本逻辑电路设计【例8-5】VHDL对反相器的描述一。第8章 基本逻辑电路设计【例8-6】VHDL对反相器的描述二。第8章 基本逻辑电路设计第8章 基本逻辑电路设计43输入“与非”门电路3 输入“与非”门电路的逻辑表达式为y=(abc)其逻辑电路如图8-4所示。3输入“与非”门和2输入“与非”门的差异仅在于多了一个输入引脚,在用VHDL编程时,在端口说明中应加一

5、个输入端口。例如,原来的输入端口为a、b两个,现在应变为a、b、c三个。当然,根据逻辑表达式,该输入端口的信号c应与a、b一样,一起参与逻辑运算,以得到最后的输出y。用VHDL描述3输入“与非”门电路示例如例8-7和例8-8所示。第8章 基本逻辑电路设计图8-4 3输入“与非”门电路第8章 基本逻辑电路设计【例8-7】用VHDL描述3输入“与非”门电路示例一。第8章 基本逻辑电路设计【例8-8】用VHDL描述3输入“与非”门电路示例二。第8章 基本逻辑电路设计第8章 基本逻辑电路设计52输入“异或”门电路2输入“异或”门电路的逻辑表达式为其逻辑电路如图8-5所示。用VHDL描述2输入“异或”门

6、电路示例如例8-9和例8-10所示。第8章 基本逻辑电路设计图8-5 2输入“异或”门电路第8章 基本逻辑电路设计【例8-9】用VHDL描述2输入“异或”门电路示例一。第8章 基本逻辑电路设计【例8-10】用VHDL描述2输入“异或”门电路示例二。第8章 基本逻辑电路设计第8章 基本逻辑电路设计上述简单的门电路大多用两种不同形式的VHDL程序来描述,其行为和功能是完全一样的。事实上还可以运用VHDL中所给出的语句来描述这些门电路,这就给编程人员提供了较大的编程灵活性。但是,一般来说,无论是编程人员还是阅读这些程序的人员,都希望程序能一目了然,因此尽可能采用VHDL中所提供的语言和符号,用简洁的

7、语句描述其行为,这总是首选的描述方式。第8章 基本逻辑电路设计8.1.2 编、译码器与选择器编、译码器和选择器是组合电路中较简单的3种通用电路。它们可以由简单的门电路组合连接构成。例如,图8-6所示是一个3-8译码器电路(74LS138)。由有关手册可知,该译码器由8个3输入“与非”门、4个反相器和一个3输入“或非”门构成。如果事先不作说明,只给出电路,让读者来判读该电路的功能,那么毋庸置疑,要看懂该电路就要花较多的时间。如果采用VHDL,从行为、功能来对3-8译码器进行描述,则不仅逻辑设计变得非常容易,而且阅读也会很方便。第8章 基本逻辑电路设计图8-6 3-8译码器电路第8章 基本逻辑电路

8、设计13-8译码器3-8译码器是最常用的一种小规模集成电路,它有3个二进制输入端a、b、c和8个译码输出端y0y7。对输入a、b、c的值进行译码,就可以确定输出端y0y7的哪一个输出端变为有效(低电平),从而达到译码的目的。3-8译码器的真值表如表8-1所示。第8章 基本逻辑电路设计第8章 基本逻辑电路设计3-8译码器还有3个选通输入端g1、g2a和g2b。只有在g1=1,g2a=0,g2b=0时,3-8译码器才进行正常译码,否则y0y7输出均为高电平。第8章 基本逻辑电路设计【例8-11】3-8译码器用VHDL描述如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计2优先级编码器优先级编码

9、器常用于中断的优先级控制。例如,74LS148是一个8输入、3位二进制码输出的优先级编码器。当其某一个输入有效时,就可以输出一个对应的3位二进制编码。另外,当同时有几个输入有效时,将输出优先级最高的那个输入所对应的二进制编码。图8-7是优先级编码器的引脚图,它有8个输入input(0)input(7)和3位二进制码输出y0y2。第8章 基本逻辑电路设计图8-7 优先级编码器第8章 基本逻辑电路设计该优先级编码器的真值表如表8-2所示。表中,“X”表示任意项,它可以是“0”,也可以是“1”。input(0)的优先级最高,input(7)的优先级最低。第8章 基本逻辑电路设计第8章 基本逻辑电路设

10、计【例8-12】用VHDL描述优先级编码器的程序如下:第8章 基本逻辑电路设计因为VHDL中目前还不能描述任意项,所以不能用前面一贯采用的CASE语句来描述,而采用了IF语句。第8章 基本逻辑电路设计3四选一选择器选择器常用于信号的切换。四选一选择器可以用于4路信号的切换。四选一选择器有4个信号输入端input(0)input(3)、2个信号选择端a和b及一个信号输出端y。当a、b输入不同的选择信号时,就可以使input(0)input(3)中某个相应的输入信号与输出y端接通。例如,当a=b=“0”时,input(0)就与y接通。其逻辑电路如图8-8所示。第8章 基本逻辑电路设计图8-8 四选

11、一电路第8章 基本逻辑电路设计四选一电路的真值表如表8-3所示。第8章 基本逻辑电路设计【例8-13】用VHDL对四选一电路进行描述的程序如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计例8-13中的四选一选择器是用IF语句描述的,程序中的ELSE项作为余下的条件,将选择input(3)从y端输出,这种描述比较安全。当然,不用ELSE项也可以,这时必须列出sel所有可能出现的情况,加以一一确认。第8章 基本逻辑电路设计8.1.3 加法器与求补器1加法器加法器有全加器和半加器之分,全加器可以用两个半加器构成,因此下面先以半加器为例加以说明。半加器有两个二进制一位的输入端a和b、一位和的输出

12、端s、一位进位位的输出端co。半加器的真值表如表8-4所示,其电路符号如图8-9所示。第8章 基本逻辑电路设计图8-9 半加器第8章 基本逻辑电路设计第8章 基本逻辑电路设计【例8-14】用VHDL描述半加器的程序如下:第8章 基本逻辑电路设计用两个半加器可以构成一个全加器。全加器的电路如图8-10所示。图8-10 用两个半加器构成的全加器第8章 基本逻辑电路设计【例8-15】采用COMPONENT语句和PORT MAP语句描述全加器。第8章 基本逻辑电路设计第8章 基本逻辑电路设计2求补器二进制运算经常要用到求补操作。8位二进制数的求补电路符号如图8-11所示。求补电路的输入为a(0)a(7

13、),补码输出为b(0)b(7),其中a(7)和b(7)为符号位。该电路较复杂,如果像半加器那样对每个门进行描述和连接是可以做到的,但是那样做太繁琐。这里采用RTL描述更加简洁、清楚。第8章 基本逻辑电路设计图8-11 8位二进制数的求补电路符号第8章 基本逻辑电路设计【例8-16】用RTL描述求补器。第8章 基本逻辑电路设计8.1.4 三态门与总线缓冲器三态门与双向总线缓冲器是接口电路和总线驱动电路经常用到的器件。它们虽然不属于组合电路,为简化章节,也列于此处进行介绍。1三态门电路三态门电路如图8-12所示。它具有一个数据输入端din、一个数据输出端dout和一个控制端en。当en=1时,do

14、ut=din;当en=0时,dout=Z(高阻)。三态门的真值表如表8-5所示。第8章 基本逻辑电路设计图8-12 三态门电路第8章 基本逻辑电路设计第8章 基本逻辑电路设计【例8-17】用VHDL描述三态门的程序如下:第8章 基本逻辑电路设计在第3章中读者已经知道,一个实体可以对应多种构造体。例8-18和例8-19就是用不同的VHDL描述的三态门的结构。第8章 基本逻辑电路设计【例8-18】用VHDL描述三态门的结构示例一。第8章 基本逻辑电路设计该例中采用卫式块语句结构来表示三态门。卫式块语句结构的特点是:只有块语句的条件满足时,块中所含的语句才会被执行。在这里只有en=1的条件满足时,d

15、out=GUARDED din语句才会被执行。第8章 基本逻辑电路设计第8章 基本逻辑电路设计2单向总线缓冲器在微型计算机的总线驱动中经常要用单向总线缓冲器,它通常由多个三态门组成,用来驱动地址总线和控制总线。一个8位的单向总线缓冲器如图8-13所示。8位的单向总线缓冲器由8个三态门组成,具有8个输入和8个输出端。所有三态门的控制端连在一起,由一个控制输入端en控制。用VHDL描述的8位单向总线缓冲器的程序实例如例8-20、例8-21和例8-22所示。第8章 基本逻辑电路设计图8-13 单向总线缓冲器第8章 基本逻辑电路设计【例8-20】用VHDL描述的8位单向总线缓冲器的程序实例一。第8章

16、基本逻辑电路设计第8章 基本逻辑电路设计【例8-21】用VHDL描述的8位单向总线缓冲器的程序实例二。第8章 基本逻辑电路设计【例8-22】用VHDL描述的8位单向总线缓冲器的程序实例三。第8章 基本逻辑电路设计在编写上述程序时应注意,不能将“Z”值赋予变量,否则就不能进行逻辑综合。另外,对信号赋值时“Z”和“0”或“1”不能混合使用,例如:dout=Z001ZZZZ;这样的语句是不允许出现的。但是变换赋值表达式时,分开赋值是可以的。例如:dout(7)=Z;dout(6 DOWNTO 4)=001;dout(3 DOWNTO 0)=ZZZZ;第8章 基本逻辑电路设计3双向总线缓冲器双向总线缓

17、冲器用于对数据总线进行驱动和缓冲。典型的双向总线缓冲器的电路图如图8-14所示。图中,双向缓冲器有两个数据输入输出端a和b、一个方向控制端dr和一个选通端en。当en=1时,双向总线缓冲器未被选通,a和b都呈现高阻;当en=0时,双向总线缓冲器被选通,如果dr=0,那么a=b,如果dr=1,那么b=a。双向总线缓冲器的真值表如表8-6所示。第8章 基本逻辑电路设计图8-14 双向总线缓冲器第8章 基本逻辑电路设计第8章 基本逻辑电路设计【例8-23】用VHDL描述双向总线缓冲器实例。第8章 基本逻辑电路设计第8章 基本逻辑电路设计从例8-23中可以看出,双向总线缓冲器由两组三态门组成,利用信号

18、aout和bout将两组三态门连接起来。由于在实际工作过程中a和b都不可能同时出现“0”和“1”,因此在这里没有使用判决函数。第8章 基本逻辑电路设计8.2 时序电路设计8.2.1 时钟信号和复位信号1时钟信号的描述众所周知,任何时序电路都以时钟信号为驱动信号,时序电路只是在时钟信号的边沿到来时,其状态才发生改变。因此,时钟信号通常描述时序电路程序的执行条件。另外,时序电路也总是以时钟进程的形式来进行描述的,其描述方式一般有两种。第8章 基本逻辑电路设计(1)进程的敏感信号是时钟信号。在这种情况下,时钟信号应作为敏感信号,显式地出现在PROCESS语句后跟的括号中,例如PROCESS(cloc

19、k_signal)。时钟信号边沿的到来将作为时序电路语句执行的条件。第8章 基本逻辑电路设计【例8-24】进程的敏感信号是时钟信号实例。第8章 基本逻辑电路设计(2)用进程中的WAIT ON语句等待时钟。在这种情况下,描述时序电路的进程将没有敏感信号,而是用WAIT ON语句来控制进程的执行。也就是说,进程通常停留在WAIT ON语句上,只有在时钟信号到来且满足边沿条件时,其余的语句才能执行。第8章 基本逻辑电路设计【例8-25】用进程中的AIT ON语句等待时钟实例。第8章 基本逻辑电路设计在编写上述程序时应注意:无论IF语句还是WAIT ON语句,在对时钟边沿进行说明时,一定要注明是上升沿

20、还是下降沿(前沿还是后沿),只说明是边沿是不行的。当时钟信号作为进程的敏感信号时,在敏感信号的表中不能出现一个以上的时钟信号,除时钟信号以外,复位信号等是可以和时钟信号一起出现在敏感表中的。WAIT ON语句只能放在进程的最前面或者最后面。第8章 基本逻辑电路设计(3)时钟边沿的描述。为了描述时钟边沿,一定要指定是上升沿还是下降沿,这一点可以使用时钟信号的属性描述来进行。也就是说,要指定时钟信号的值是从“0”到“1”变化,还是从“1”到“0”变化,由此可以得知是时钟脉冲信号的上升沿还是下降沿。第8章 基本逻辑电路设计 时钟脉冲上升沿的描述。时钟脉冲上升沿波形与时钟信号属性的描述关系如图8-15

21、所示。从图8-15中可以看到,时钟信号的起始值为“0”,故其属性值clkLAST_VALUE=0;上升沿的到来表示发生了一个事件,故用clkEVENT表示;上升沿以后,时钟信号的值为“1”,故其当前值为clk=1。这样,表示上升沿到来的条件可写为IF clk=1 AND clkLAST_VAULE=0 AND clkEVENT第8章 基本逻辑电路设计 时钟脉冲下降沿的描述。时钟脉冲下降沿波形与时钟信号属性的描述关系如图8-16所示。其关系与图8-15类同,此时clkLAST_VALUE=1;时钟信号当前值为clk=0;下降沿到来的事件为clkEVENT。这样表示下降沿到来的条件可写为IF cl

22、k=0 AND clkLAST_VALUE=1 AND clk EVENT第8章 基本逻辑电路设计图8-15 时钟脉冲上升沿波形和时钟信号属性的描述关系第8章 基本逻辑电路设计图8-16 时钟脉冲下降沿波形和时钟信号属性的描述关系第8章 基本逻辑电路设计根据上面关于上升沿和下降沿的描述,时钟信号边沿检出条件可以统一描述如下:IF clock_signal=current_value AND clock_signalLAST_VALUE AND clock_signalEVENT在某些书刊中边沿检出条件也可简写为IF clock_signal=clock_signalEVENT AND curr

23、ent_value第8章 基本逻辑电路设计 由于在STD_LOGIC的数据类型中,其值除“0”和“1”以外,还可以取“2”、“X”等9种状态值。这样在综合时有可能出现问题。为避免类似情况发生,建议尽可能用IEEE中的现成边沿描述函数。例如:上升沿可描述为 IF vising_edge(cp)THEN下降沿可描述为 IF falling_edge(cp)THEN第8章 基本逻辑电路设计2触发器的同步和非同步复位触发器的初始状态应由复位信号来设置。复位信号对触发器复位的操作不同,使其可以分为同步复位和非同步复位两种。所谓同步复位,就是复位信号有效且在给定的时钟边沿到来时,触发器才被复位;非同步复位

24、则是指一旦复位信号有效,触发器就被复位。第8章 基本逻辑电路设计1)同步复位在用VHDL描述时,同步复位一定要在以时钟为敏感信号的进程中定义,且用IF语句来描述必要的复位条件。下面两个例子就是同步复位方式的描述实例。第8章 基本逻辑电路设计【例8-26】同步复位方式的描述实例一。第8章 基本逻辑电路设计【例8-27】同步复位方式的描述实例二。第8章 基本逻辑电路设计2)非同步复位非同步复位又称异步复位,在描述时与同步方式不同:首先在进程的敏感信号中除时钟信号以外,还应加上复位信号;其次是用IF语句描述复位条件;最后在ELSIF段描述时钟信号边沿的条件,并加上EVENT属性。非同步复位描述方式如

25、例8-28所示。第8章 基本逻辑电路设计【例8-28】非同步复位方式的描述实例。第8章 基本逻辑电路设计从例8-28中可以看到,非同步复位的信号和变量的代入与赋值必须在时钟信号边沿有效的范围内进行,如例8-28中ELSIF后进行的那样。另外,添加clock_event是为了防止没有时钟事件发生时的误操作。譬如,现在时钟事件没有发生而是发生了复位事件,这样该进程就得到了启动。在此情况下,若复位条件没有满足,而时钟边沿条件却是满足的,那么与时钟信号有关的那一段程序(ELSIF段)就会得到执行,从而造成错误操作。第8章 基本逻辑电路设计8.2.2 触发器触发器的种类很多,这里仅举常用的几种加以说明。

26、1锁存器根据触发边沿、复位和预置的方式以及输出端不同可以将锁存器分为多种不同形式。第8章 基本逻辑电路设计1)D锁存器正沿触发的D锁存器的电路符号如图8-17所示。它是一个正沿(上升沿)触发的D触发器,有一个数据输入端d、一个时钟输入端clk和一个数据输出端q。D锁存器的真值表如表8-7所示。从表中可以看到,D锁存器的输出端只有在正沿脉冲过后,输入端d的数据才传递到输出端q。用VHDL描述D锁存器的程序实例如例8-29和例8-30所示。第8章 基本逻辑电路设计图8-17 D锁存器第8章 基本逻辑电路设计第8章 基本逻辑电路设计【例8-29】用VHDL描述D锁存器的程序实例一。第8章 基本逻辑电

27、路设计【例8-30】用VHDL描述D锁存器的程序实例二。第8章 基本逻辑电路设计2)非同步复位的D锁存器非同步复位的D锁存器的电路符号如图8-18所示。它和一般的D锁存器的区别是多了一个复位输入端clr。当clr=0时,其q端输出被强迫置为“0”。clr又称清零输入端。第8章 基本逻辑电路设计图8-18 非同步复位的D锁存器第8章 基本逻辑电路设计【例8-31】用VHDL描述的非同步复位的D锁存器的程序实例如下:第8章 基本逻辑电路设计3)非同步复位/置位D锁存器非同步复位/置位D锁存器的电路符号如图8-19所示。除了前述的d、clk和q端外,还有clr和pset的复位、置位端。当clr=0时

28、复位,使q=0;当pset=0时置位,使q=1。图8-19 非同步复位/置位D锁存器第8章 基本逻辑电路设计【例8-32】用VHDL描述的非同步复位/置位锁存器的程序实例如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计4)同步复位的D锁存器同步复位的D锁存器的电路如图8-20所示。与非同步方式不同的是,当复位信号clr有效(clr=1)以后,只是在有效时钟边沿到来时才能进行复位操作。图中clr=1以后,在clk的上升沿到来时,q输出才变为“0”。另外,从图中还可以看出,复位信号的优先级比d端数据输入的优先级高。也就是说,当clr=1时,无论d端输入什么信号,在clk的上升沿到来时,q输出

29、总为“0”。第8章 基本逻辑电路设计图8-20 同步复位的D锁存器第8章 基本逻辑电路设计【例8-33】用VHDL描述的同步复位D锁存器的程序实例如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计2JK触发器带有复位/置位功能的JK触发器的电路符号如图8-21所示。JK触发器的输入端有置位输入pset、复位输入clr、控制输入j和k、时钟信号输入clk,输出端有正向输出端q和反向输出端qb。JK触发器的真值表如表8-8所示。表中,q0表示原状态不变,翻转表示改变原来的状态,如原来为“0”则变成“1”,原来为“1”则变成“0”。第8章 基本逻辑电路设计图8-21 JK触发器第8章 基本逻辑电

30、路设计第8章 基本逻辑电路设计【例8-34】用VHDL描述JK触发器的程序实例如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计例8-34中的复位和置位显然也是非同步的,且pset的优先级比clr高。也就是说,当pset=0且clr=0时,q将输出“1”,qb输出“0”。这种结果和表8-8所示的真值表是不一致的。为了避免这种情况,程序可以改写成例8-35所示。第8章 基本逻辑电路设计【例8-35】例8-34改写以后的程序。第8章 基本逻辑电路设计在例8-35中,pset=0,clr=0这种情况未加以考虑,那么在逻辑综合时,其输出是未知的。第8章 基本逻辑电路设计8.2.3 寄存器寄存器一般

31、由多位触发器连接而成,通常有锁存寄存器和移位寄存器等。下面主要介绍移位寄存器。1串行输入、串行输出移位寄存器串行输入、串行输出移位寄存器的电原理图如图8-22所示。它具有两个输入端(数据输入端a和时钟输入端clk)与一个数据输出端b。图中所示为8位的串行移位寄存器,在时钟信号的作用下,前级的数据向后级移动。该8位移位寄存器由8个D触发器构成。第8章 基本逻辑电路设计图8-22 串行输入、串行输出的 8 位移位寄存器第8章 基本逻辑电路设计【例8-36】利用GENERATE语句和D触发器的描述写出的8位移位寄存器的VHDL程序如下:第8章 基本逻辑电路设计例8-36中把dff看作已经生成的元件,

32、然后利用GENERATE来循环生成串行连接的8个D触发器。第8章 基本逻辑电路设计【例8-37】8位移位寄存器直接利用信号来连接的描述如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计2循环移位寄存器在计算机的运算操作中经常用到循环移位,它可以用硬件电路来实现。一个8位循环左移的寄存器的电路符号如图8-23所示。该电路有8个数据输入端din(0)din(7)、移位和数据输出控制端enb、时钟信号输入端clk、移位位数控制输入端s(0)s(2)、8位数据输出端dout(0)dout(7)。循环左移操作的示意图如图8-24所示。当enb=1时,根据s(0)s(2)输入的数,确定在时钟脉冲作用下

33、,循环左移几位。图8-24 所示是循环左移了3位。当enb=0时,din直接输出至dout。第8章 基本逻辑电路设计图8-23 8位循环移位寄存器第8章 基本逻辑电路设计 图8-24 循环左移操作的示意图第8章 基本逻辑电路设计【例8-38】在CPAC中循环左移函数的描述如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计【例8-39】利用CPAC中循环左移函数描述8位循环左移寄存器的程序如下:第8章 基本逻辑电路设计第8章 基本逻辑电路设计3带清零端的8位并行装载移位寄存器该移位寄存器就是TTL手册中的74166,其引脚图如图8-25所示。图中各引脚的名称及功能如下

34、:ah8位并行数据输入端;se串行数据输入端;q串行数据输出端;clk时钟信号输入端;fe时钟信号禁止端;s/l移位/装载控制端;clr清零端。第8章 基本逻辑电路设计图8-25 带清零端的8位并行装载移位寄存器第8章 基本逻辑电路设计其真值表如表8-9所示。第8章 基本逻辑电路设计从表8-9中可以看到,当清零输入端clr为“0”时,8位寄存器的输出均为“0”,从而使q输出也为“0”。fe是时钟禁止端,当它为“1”时将禁止时钟,即不管时钟信号如何变化,移位寄存器的状态不发生改变。另外,时钟信号只在上升沿时才有效,此时fe=0。如果时钟信号的上升沿未到来,则移位寄存器的状态仍不会发生变化。s/l

35、是移位/装载控制信号。当s/l=1时是移位状态,在时钟信号上升沿的控制下,向右移一位,串行输入端se的信号将移入qa位,而q的输出将是移位前的内部qg输出;当s/l=0时是装载状态,在时钟脉冲上升沿的作用下,数据输入端ah的信号就装载到移位寄存器的qaqh。第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计8.2.4 计数器 计数器分为同步计数器和异步计数器两种。计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。1同步计数器所谓同步计数器,就是在时钟脉冲(计数脉冲)的控制下,构成计数器的各触发器状态同时发生变化。第8章 基本逻辑电路设计1)带允许端的十二

36、进制计数器该计数器由4个触发器构成,clr输入端用于清零,en端用于控制计数器工作,clk为时钟脉冲(计数脉冲)输入端,qa、qb、qc、qd为计数器的4位二进制计数值输出端。该计数器的真值表如表8-10所示。第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计该程序对应电路的引脚图如图8-26所示。图8-26 带允许端的十二进制计数器电路第8章 基本逻辑电路设计2)可逆计数器所谓可逆计数器,就是根据计数控制信号的不同,在时钟脉冲作用下,计数器可以进行加1操作或者减1操作。可逆计数器有一个特殊的控制端,即updn端。当updn=1时,计数器进行加1操

37、作;当updn=0时,计数器进行减1操作。一种6位二进制可逆计数器的真值表如表8-11所示。第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计该程序对应电路的引脚图如图8-27所示。图8-27 6位二进制可逆计数器电路第8章 基本逻辑电路设计3)六十进制计数器众所周知,用一个4位二进制计数器可以构成1位十进制计数器,即可以构成1位BCD计数器,而2位十进制计数器连接起来可以构成一个六十进制计数器。六十进制计数器常用于时钟计数。一个六十进制计数器的电路引脚图如图8-28所示。第8章 基本逻辑电路设计图8-28 六十进制计数器电路第8章 基本逻辑电路设

38、计六十进制计数器的输入和输出端的名称及功能说明如下:clk时钟输入端;bcd1wr个位写控制端;bcd10wr十位写控制端;cin进位输入端;co进位输出端;datain数据输入端,共有4条输入线datain(0)datain(3);bcd1计数值个位输出,共有4条输出线bcd1(0)bcd1(3);bcd10计数值十位输出,共有3条输出线bcd10(0)bcd10(2)。第8章 基本逻辑电路设计在该六十进制计数器的电路中,bcd1wr和bcd10wr与datain配合,以实现对六十进制计数器的个位和十位的装载操作,即可以实现对个位和十位值的预置操作。应注意,在对个位和十位进行预置操作时,da

39、tain输入端是公用的,因而个位和十位的预置操作必定要串行进行。第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计在例8-43中,第一个进程处理个位计数,第二个进程处理十位计数,第三个进程处理进位输出co的输出值。应注意,个位和十位的计数条件是不一样的。第8章 基本逻辑电路设计2异步计数器异步计数器又称行波计数器,它的下一位计数器的输出作为上一位计数器的时钟信号,这样一级一级串行连接起来就构成了一个异步计数器。异步计数器与同步计数器的不同之处就在于时钟脉冲的提供方式,异步计数器同样可以构成各种各样的计数器。但是,由于异步计数器采用行波计数,因而使计

40、数延迟增加,在要求延迟小的领域受到了很大限制。尽管如此,由于它的电路简单,故仍有广泛的应用。第8章 基本逻辑电路设计用VHDL描述异步计数器与上述同步计数器的不同之处主要表现在对各级时钟脉冲的描述上,这一点请读者在阅读例程时多加注意。第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计第8章 基本逻辑电路设计 8位行波计数器的电原理图如图8-29所示。图8-29 8位行波计数器的电原理图第8章 基本逻辑电路设计习题与思考题8.1 试设计一个2位二进制的加法器。8.2 试设计一个2位的BCD计数器。8.3 同步计数器和异步计数器在设计时有哪些区别?试用一个六进制计数器和一个十进制计数器构成一个六十进制同步计数器。第8章 基本逻辑电路设计8.4 某一输入/输出接口电路的引脚如图8-30所示。图8-30 某一输入/输出接口电路的引脚图第8章 基本逻辑电路设计感感 谢谢第8章 基本逻辑电路设计谢谢,精品课件资料搜集

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(VHDL硬件描述语言与数字逻辑电路设计(第五版)侯伯亨章课件8.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|