- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA数据比较器的VHDL设计
复习:
1.简单信号赋值语句
2.条件信号赋值语句
3.选择信号赋值语句
§4-4 数据比较器的VHDL设计
VHDL语言的语句分为顺序语句和并行语句两大类,并行语句可以直接在结构体中使用,而顺序语句必须在进程中使用。
一、进程(PROCESS)语句
进程语句作为一个独立的结构,在结构体中以一个完整的结构存在,是VHDL语言中描述能力最强,使用最多的语句结构。进程语句是结构体的有机组成部分,各个进程之间可以通过信号(signal)通信,共同组成一个功能强大的结构体。
一个结构体内可以包含多个进程语句,多个进程之间是同时执行的。进程语句本身是并行语句,但每个进程的内部则由一系列顺序语句构成。
1.PROCESS语句的格式
[进程名:] PROCESS (敏感信号表 )
[进程说明语句;]
BEGIN
进程内顺序描述语句;
END PROCESS [进程名];
进程名是可选项,如果有多个进程,则以进程名加以区别。
敏感信号表中的信号可以是在结构体中定义的信号,也可以是在实体说明中定义的端口(但只能是输入端口、双向端口或Buffer类型端口),进程的启动是通过敏感信号表中敏感量的变化激励的,也即当且仅当敏感信号表中的敏感量有变化时进程才能启动。应用时应将进程中所有输入信号都列入敏感表内,但切勿将变量列入敏感表,因为进程只对信号敏感。另外,wait语句在进程中的作用与敏感信号表相似,有敏感信号表就不需要wait语句,有wait语句则不能出现敏感表。
进程说明语句是可选项,主要用途是定义进程中将要用到的中间变量或常量,但此处只能定义“变量”,而不能定义“信号”。
进程中语句的执行具有顺序性,真正的具有描述行为的语句是BEGIN开始到END PROCESS之间的语句。
2.进程语句的主要特点
(1)同一结构体中的各个进程之间是并发执行的,并且都可以使用实体说明和结构体中所定义的信号;而同一进程中的描述语句则是顺序执行的,即PROCESS结构中的语句是按顺序一条一条向下执行的,并且在进程中只能设置顺序语句。
(2)为启动进程,进程的结构中必须至少包含一个敏感信号或包含一个WAIT语句,但是在一个进程中不能同时存在敏感信号和WAIT语句。
(3)一个结构体中的各个进程之间可以通过信号或共享变量来进行通信,但任一进程的进程说明部分只能定义局部变量,不允许定义信号和共享变量。
(4)在敏感信号表中的任意一个敏感量发生变化,则启动PROCESS语句,从上到下逐句执行一遍。当执行完成就返回到PROCESS语句,并悬挂在该语句处,等待敏感量的再次变化。
二、IF语句
IF 语句又称条件语句。是根据所指定的一种或多种条件来决定执行哪些语句的一种重要顺序语句,因此也可以说成是一种控制转向语句。
1.IF 语句的格式
IF 语句一般有三种格式:
(1)跳转控制。格式如下:
IF 条件 THEN
顺序语句;
END IF;
(2)二选一控制。格式如下:
IF 条件 THEN
顺序语句;
ELSE
顺序语句;
END IF;
(3)多选择控制语句。格式如下:
IF 条件 1 THEN 顺序语句1;
ELSIF 条件2 THEN 顺序语句2;
……;
ELSIF 条件n THEN 顺序语句n;
ELSE
顺序语句;
END IF;
2.IF语句的主要特点
(1)每个IF语句必须有一个对应的END IF语句 。
(2)if 语句中的条件值必须是布尔类型(boolen)
例: IF(a b) THEN
output =‘1’;
END IF;
如果条件(ab)的结果为true ,则output=1,否则output维持原数据不变,且跳到END IF后面语句执行。
(3)IF语句是顺序语句,不仅能实现条件分支处理,而在条件判断上有先后顺序,因此特别适合处理含有优先级的电路描述。
三、数据比较器的VHDL设计
数值比较器是对两个位数相同的二进制数进行比较并判定其大小关系的算术运算电路。
数值比较器的逻辑电路图如下图所示:
Comp
Comp
YA
YB
YC
A
B
数值比较器的真值表为:
A与B的关系
YA
YB
YC
AB
1
0
0
AB
0
1
0
A=B
0
0
1
下例是一个采用IF语句编制的对两个4位二进制数进行比较的例子,其中A和B分别是参与比较的两个4位二进制数,YA、YB和YC是用来分别表示AB、AB和A=B的3个输出端。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY comp4_1 IS
PORT(A:IN STD_LO
您可能关注的文档
最近下载
- 档案整理及数字化投标方案(517页).doc VIP
- 2025解读新《监察法实施条例》核心要点与条文速览PPT学习课件(含文字稿).pptx VIP
- 铁路信号电缆配线作业.ppt VIP
- 2025江苏邳州农村商业银行招聘10人笔试历年典型考题及考点剖析附带答案详解.docx
- 采砂船水上船舶运输安全应急预案 .docx VIP
- 2025年自贡市中考英语试卷(含答案解析).docx
- 2024年北京昌平四年级(下)期末英语(含答案).pdf
- 七年级下册数学期末试卷.pdf VIP
- SH_T 3043-2014石油化工设备管道钢结构表面色和标志规定.pdf VIP
- 新人教版数学四年级上册课本练习题《练习一》可编辑可打印.pdf VIP
文档评论(0)