- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
项目4 简易8路抢答器电路设计;项目描述;抢答器的原理框图如图4-1所示。;任务4.1 编码器的VHDL设计;进程语句作为一个独立的结构,在结构体中以一个完整的结构存在,是VHDL语言中描述能力最强,使用最多的语句结构。进程语句是结构体的有机组成部分,各个进程之间可以通过信号(SIGNAL)通信,共同组成一个功能强大的结构体。
一个结构体内可以包含多个进程语句,多个进程之间是同时执行的。进程语句本身是并行语句,但每个进程的内部则由一系列顺序语句构成。
1. PROCESS语句的格式
[进程名:] PROCESS (敏感信号表)
[进程说明语句;]
BEGIN
进程内顺序描述语句;
END PROCESS [进程名];;2. 进程语句的主要特点
(1)同一结构体中的各个进程之间是并发执行的,并且都可以使用实体说明和结构体中所定义的信号;而同一进程中的描述语句则是顺序执行的,即在进程中只能设置顺序语句。
(2)敏感信号为启动进程,进程的结构中必须至少包含一个敏感信号或包含一个WAIT语句,但是在一个进程中不能同时存在敏感信号和WAIT语句。
(3)一个结构体中的各个进程之间可以通过信号或共享变量来进行通信,但任一进程的进程说明部分只能定义局部变量,不允许定义信号和共享变量。
(4)在敏感信号表中的任意一个敏感量发生变化,则启动PROCESS语句。当执行完成就返回到PROCESS语句,并悬挂在该语句处,等待敏感量的再次变化。;4.1.2 IF语句 ;2. IF语句的主要特点
(1)每个IF语句必须有一个对应的END IF语句。
(2)IF语句中的条件值必须是布尔类型(BOOLEN)即TRUE或FALSE。
例:IF(a b)THEN output =‘1’;
END IF;
如果条件(ab)的结果为TRUE,则output=1,否则output维持原数据不变,且跳到END IF后面语句执行。
(3)IF语句是顺序语句,不仅能实现条件分支处理,而且在条件判断上有先后顺序,因此特别适合处理含有优先级的电路描述。 ;8线-3线编码器可对8个输入信号进行编码,输出为3位二进制编码。逻辑符号图如图4-2所示,真值表如表4-1所示。;1. 采用行为描述方式的8线-3线编码器VHDL设计
;2. 采用数据流描述方式的8线-3线编码器VHDL设计
由真值表可得出8线-3线编码器的逻辑表达式为:
Q2=D4+D5+D6+D7
Q1=D2+D3+D6+D7
Q0=D1+D3+D5+D7
;3. 8线-3线编码器的设计仿真
对8线-3线编码器的功能仿真波形如图4-3所示。;优先编码器允许多个输入信号同时出现。当多个输入信号同时出现时,只对其中优先级别最高的一个输入信号进行编码。
8线-3线优先编码器的真值表如表4-2所示。;1. 采用行为描述方式的8线-3线编码器VHDL设计
采用IF语句对8线-3线优先编码器描述如下:; 2. 8线-3线优先编码器的设计仿真
对上述设计进行功能仿真,按照真值表设置输入波形,功能仿真波形如图4-4所示。; 译码器是电子技术中的一种多输入多输出的组合逻辑电路。译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。把编码状态的特定含义“翻译”出来的过程叫做译码,实现译码操作的电路称为译码器。译码器一般分为通用译码器和数字显示译码器两大类。
本节学习使用变量和CASE语句来设计描述通用译码器——3线-8线译码器和显示译码器——BCD-七段译码器。;1. 变量说明语句
格式如下:
VARIABLE 变量名:数据类型[约束条件] [:= 表达式];
2. 变量赋值语句
变量赋值符号为“:=”,变量的赋值是除信号赋值外的另一种重要的赋值形式。
格式如下:
目的变量:=变量表达式(赋值源);
变量只能在进程(PROCESS)或子程序中定义,在进程或子程序之外是不可见的。变量说明语句一般是放在进程开始的PROCESS语句与BEGIN之间。;CASE语句也是分支语句的一种,CASE语句不同于IF语句,它是根据所满足的条件直接执行多项顺序语句中的一项,没有优先级。CASE语句可读性好,很容易找出条件和动作的对应关系,经常用来描述总线、编码和译码等行为。
1. CASE语句的格式
CASE 表达式 IS
WHEN 条件选择值1=
文档评论(0)