EDA数据比较器的VHDL设计

上传人:206****923 文档编号:91846888 上传时间:2019-07-02 格式:DOC 页数:5 大小:93.52KB
返回 下载 相关 举报
EDA数据比较器的VHDL设计_第1页
第1页 / 共5页
EDA数据比较器的VHDL设计_第2页
第2页 / 共5页
EDA数据比较器的VHDL设计_第3页
第3页 / 共5页
EDA数据比较器的VHDL设计_第4页
第4页 / 共5页
EDA数据比较器的VHDL设计_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《EDA数据比较器的VHDL设计》由会员分享,可在线阅读,更多相关《EDA数据比较器的VHDL设计(5页珍藏版)》请在金锄头文库上搜索。

1、复习:1简单信号赋值语句2条件信号赋值语句3选择信号赋值语句4-4 数据比较器的VHDL设计VHDL语言的语句分为顺序语句和并行语句两大类,并行语句可以直接在结构体中使用,而顺序语句必须在进程中使用。一、进程(PROCESS)语句进程语句作为一个独立的结构,在结构体中以一个完整的结构存在,是VHDL语言中描述能力最强,使用最多的语句结构。进程语句是结构体的有机组成部分,各个进程之间可以通过信号(signal)通信,共同组成一个功能强大的结构体。一个结构体内可以包含多个进程语句,多个进程之间是同时执行的。进程语句本身是并行语句,但每个进程的内部则由一系列顺序语句构成。1PROCESS语句的格式进

2、程名: PROCESS (敏感信号表 )进程说明语句;BEGIN 进程内顺序描述语句; END PROCESS 进程名;进程名是可选项,如果有多个进程,则以进程名加以区别。敏感信号表中的信号可以是在结构体中定义的信号,也可以是在实体说明中定义的端口(但只能是输入端口、双向端口或Buffer类型端口),进程的启动是通过敏感信号表中敏感量的变化激励的,也即当且仅当敏感信号表中的敏感量有变化时进程才能启动。应用时应将进程中所有输入信号都列入敏感表内,但切勿将变量列入敏感表,因为进程只对信号敏感。另外,wait语句在进程中的作用与敏感信号表相似,有敏感信号表就不需要wait语句,有wait语句则不能出

3、现敏感表。进程说明语句是可选项,主要用途是定义进程中将要用到的中间变量或常量,但此处只能定义“变量”,而不能定义“信号”。进程中语句的执行具有顺序性,真正的具有描述行为的语句是BEGIN开始到END PROCESS之间的语句。2进程语句的主要特点(1)同一结构体中的各个进程之间是并发执行的,并且都可以使用实体说明和结构体中所定义的信号;而同一进程中的描述语句则是顺序执行的,即PROCESS结构中的语句是按顺序一条一条向下执行的,并且在进程中只能设置顺序语句。(2)为启动进程,进程的结构中必须至少包含一个敏感信号或包含一个WAIT语句,但是在一个进程中不能同时存在敏感信号和WAIT语句。(3)一

4、个结构体中的各个进程之间可以通过信号或共享变量来进行通信,但任一进程的进程说明部分只能定义局部变量,不允许定义信号和共享变量。(4)在敏感信号表中的任意一个敏感量发生变化,则启动PROCESS语句,从上到下逐句执行一遍。当执行完成就返回到PROCESS语句,并悬挂在该语句处,等待敏感量的再次变化。二、IF语句IF 语句又称条件语句。是根据所指定的一种或多种条件来决定执行哪些语句的一种重要顺序语句,因此也可以说成是一种控制转向语句。1IF 语句的格式IF 语句一般有三种格式:(1)跳转控制。格式如下:IF 条件 THEN 顺序语句;END IF;(2)二选一控制。格式如下:IF 条件 THEN顺

5、序语句;ELSE 顺序语句;END IF;(3)多选择控制语句。格式如下:IF 条件 1 THEN 顺序语句1; ELSIF 条件2 THEN 顺序语句2; ; ELSIF 条件n THEN 顺序语句n; ELSE 顺序语句;END IF;2IF语句的主要特点(1)每个IF语句必须有一个对应的END IF语句 。(2)if 语句中的条件值必须是布尔类型(boolen)例: IF(a b) THENoutput b)的结果为true ,则output=1,否则output维持原数据不变,且跳到END IF后面语句执行。(3)IF语句是顺序语句,不仅能实现条件分支处理,而在条件判断上有先后顺序,因

6、此特别适合处理含有优先级的电路描述。三、数据比较器的VHDL设计数值比较器是对两个位数相同的二进制数进行比较并判定其大小关系的算术运算电路。数值比较器的逻辑电路图如下图所示:CompYAYBYCAB数值比较器的真值表为:A与B的关系YAYBYCAB100AB、A B) THEN YA =1; YB =0; YC =0;ELSIF(A B) THEN YA =0; YB =1; YC =0; ELSE YA =0; YB =0; YC =1; END IF; END PROCESS; END behave; 四位数值比较器的功能仿真为:IF语句处理含有优先级的电路描述我们将在下节的优先编码器的设

7、计中进行讲述。四、练习用IF语句和条件信号赋值语句分别描述4位数据比较器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY comp4_2 IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END comp4_2;ARCHITECTURE behave OF comp4_2 ISBEGIN YB ELSE 010 WHEN AB ELSE 001;END behave;总结:IF语句与条件信号赋值语句的区别:(1)IF语句是顺序描述语句,因此只能在进程内部使用,而条件信号赋值语句是并行描述语句,要在结构体中的进程之外使用。(2)IF语句中,ELSE语句可有可无,而条件信号赋值语句中的ELSE必须有。(3)IF语句可嵌套使用,而条件信号赋值语句不能嵌套使用。(4)IF语句无需太多硬件电路知识,而条件信号赋值语句与实际硬件电路十分接近。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号