- 1、本文档共187页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
7.1组合逻辑电路
7.2时序逻辑电路设计
7.3常用时序逻辑电路的设计
7.4实训
习题
7.1组合逻辑电路
对于组合逻辑电路,电路任何时刻的输出信号仅取决于
当时的输入信号,其输出的值由输入决定。在设计组合逻辑
电路时,在进程中要包括所有的输入信号,以确保每一个信
号的变化都要启动进程。常用的组合逻辑电路有编码器、译
码器、比较器、三态门、加法器等。
7.1.1编码器和译码器
1.优先级8-3编码器
优先级8-3编码器有d7~d0八个输入信号,y2、y1、y0三
个输出信号,各信号高电平有效。其真值表如表7-1所示,逻
辑符号如图7-1所示。
硬件电路中的优先级关系在VHDL语言中可以用IF分支判
断语句或在PROCESS进程语句中设置临时变量来实现。如用IF
语句,多条件的IF语句的条件是有优先级的,最前面的条件的
优先级最高,越往后优先级越低。例7-1是使用IF的分支判断语
句实现优先级8-3编码器的VHDL程序,其利用了进程中语句顺
序执行的特点,由于语句是由上至下执行的,因而后面的赋值
将覆盖前面的赋值。例7-2为使用PROCESS进程语句中变量的
特点实现优先级8-3编码器的VHDL程序。(本章的程序为简单
起见,全部采用小写形式,VHDL程序不区分大小写。)
图7-1优先级8-3编码器逻辑符号
2.3-8译码器
3-8译码器的电路功能与编码器相反,其输入为a2、a1、a0
三个信号,输出为y7~y0八个信号,另外还有三个控制信号g1、
g2a和g2b。其真值表如表7-2所示,逻辑符号如图7-2所示。
图7-23-8译码器逻辑符号
7.1.2多位比较器
多位比较器的真值表如表7-3所示,逻辑符号如图7-3所示。
图7-38位比较器逻辑符号
【例7-4】下面为多位比较器的VHDL源程序,此程序为8
位比较器。
7.1.3三态门
三态门是驱动电路经常用到的器件,其输出有三种状态,
分别为“1”、“0”与“Z”(即高阻状态)。三态门的逻辑符号如
图7-4所示。
图7-4三态门逻辑符号
【例7-5】三态门的VHDL源程序如下:
libraryieee;
useieee.std_logic_1164.all;
entitytriis
port(din,en:instd_logic;
dout:outstd_logic);
endtri;
architecturebehaveoftriis
7.1.4加法器
加法器的结构化设计见6.3.3节,其实也可以调用IEEE库中
的STD_LOGIC_UNSIGNED库进行设计,对两个输入类型为
STD_LOGIC_VECTOR的数直接进行加法运算。
【例7-6】两个4位加法器的VHDL程序如下:
7.2时序逻辑电路设计
对于时序逻辑电路,其任何时刻的输出信号不仅取决于
当时的输入信号,而且还取决于电路原来的工作状态,即与
以前的输入信号及输出信号也有关系。在时序逻辑电路的设
计中,时钟信号比较重要,基本每一个时序逻辑电路都是由
时钟控制的。时序逻辑电路的控制信号还包括两种重要的信
号:同步控制信号与异步控制信号。
7.2.1时钟信号
时序逻辑电路只有在时钟信号的边沿到来时,其状态才发
生改变。因此,时钟信号通常描述时序电路程序执行的条件。
另外,时序逻辑电路总是以时钟进程的形式来进行描述的,其
描述方式一般分两种情况。
1.进程的敏感信号是时钟信号
在这种情况下,时钟信号应作为进程敏感信号,显式地出
现在process语句后面的括号中,例如process(clock_signal)。时
钟信号边沿的到来,将作为时序逻辑电路语句执行的条件。
例7-7程序说明,该进程在时钟信号(clock_signal)发生
变化时被启动,而在时钟边沿的条件得到满足后才真正执
行时序电路所对应的语句。
2.用waiton或waituntil语句控制进程启动
在这种情况下,描述时序电路的进程将没有敏感信号,而
是用waiton或waituntil语句来控制进程的执行,也就是说,
进程通常停留在waiton或waituntil语句上,只有在时钟信号到
来且满足边沿条件时,其余的语句才被执行,如例7-8所示。
在编写上述两个程序时应注意:
(1)无论if语句还是wait语句,在对时钟边沿说明时,一定
要注明是上升沿
文档评论(0)