版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.3
VHDL顺序语句
顺序语句只能出现在进程(PROCESS)、过程(PROCEDURE)和函数(FUNCTION)中,其特点与传统的计算机编程语句类似,是按程序书写的顺序自上而下、一条一条地执行。利用顺序语句可以描述数字逻辑系统中的组合逻辑电路和时序逻辑电路。VHDL的顺序语句有赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句等六类。
3.3.1
VHDL赋值语句顺序语句——在进程(PROCESS)或子程序(PROCEDURE)、函数(FUNCTION)中使用,按程序书写的顺序自上而下、一个一个语句地执行;并行语句——出现在结构体中,各语句并行(同步)执行,与书写的顺序无关。
一、变量赋值语句格式:目标变量名:=赋值源(表达式);例如:x:=5.0;二、
信号赋值语句格式:目标信号名<=赋值源;例如:y<=‘1’;说明:该语句若出现在进程或子程序中则是顺序语句,若出现在结构体中则是并行语句。三、数组元素赋值例如:SIGNALa,b:STD
LOGIC
VECTOR(1TO4);
a<=“1101”;
a(1TO2)<=“10” a(1TO2)<=b(2TO3);
3.3.2
流程控制语句
一、IF语句格式1:IF条件句Then
顺序语句; ENDIF;格式2:IF条件句Then
顺序语句; ELSE
顺序语句; ENDIF;格式3:IF条件句Then
顺序语句; ELSIF条件句Then
顺序语句;
… ELSE
顺序语句; ENDIF;例1:用VHDL语言描述下图硬件电路cabyLIBRARYIEEE;USEIEEE.STD
LOGIC
1164.ALLENTITYcontrol
stmtsISPORT(a,b,c:INBOOLEAN;
y:OUTBOOLEAN);ENDcontrol
stmts;ARCHITECTUREexample1OFcontrol
stmtsISBEGIN PROCESS(a,b,c)
VARIABLEn:BOOLEAN;
BEGIN IFaTHENn:=b;
ELSE n:=c;
ENDIF; y<=n;
ENDPROCESS;ENDexample1;
例2,8线-3线优先编码器的设计
(真值表)输入
输出a0a1a2a3a4a5a6a7y0y1y2xxxxxxx0111xxxxxx01011xxxxx011101xxxx0111001xxx01111110xx011111010x011111110001111111000LIBRARYIEEE;USEIEEE.STD
LOGIC
1164.ALLENTITYcoderISPORT(a:INSTD
LOGIC
VECTOR(0TO7);
y:OUTSTD
LOGIC
VECTOR(0TO2));ENDcoder;ARCHITECTUREexample2OFcoderISBEGINPROCESS(a)
BEGIN IF(a(7)=‘0’)THENy<=”111”;
ELSIF(a(6)=’0’) THENy<=”011”; ELSIF(a(5)=’0’) THENy<=”101”; ELSIF(a(4)=’0’) THENy<=”001”; ELSIF(a(3)=’0’) THENy<=”110”; ELSIF(a(2)=’0’) THENy<=”010”; ELSIF(a(1)=’0’) THENy<=”100”; ELSEy<=”000”; ENDIF; ENDPROCESS;ENDexample2;
二、CASE语句格式:CASE表达式IS When选择值=>顺序语句; When选择值=>顺序语句;
… WhenOTHERS=>顺序语句;
ENDCASE;说明:“=>”不是运算符,相当“THEN”例3,用CASE语句描述4选1数据选择器数据选择器as2zbcds1LIBRARYIEEE;USEIEEE.STD
LOGIC
1164.ALLENTITYmux41ISPORT(s1,s2:INSTD
LOGIC;
a,b,c,d:INSTD
LOGIC;
z:OUTSTD
LOGIC);ENDmux41;ARCHITECTUREexample3OFmux41ISSIGNALs:STD
LOGIC
VECTOR(1DOWNTO0)BEGIN s<=s1&s2 PROCESS(s1,s2,a,b,c,d)
BEGIN CASEsIS WHEN“00”=>z<=a;
WHEN“01”=>z<=b;
WHEN“10”=>z<=c;
WHEN“11”=>z<=d;
WHENOTHERS=>z<=‘X’;
ENDCASE;
ENDPROCESS;ENDexample3;
三、FORLOOP语句格式1:[标号:]FOR循环变量IN初值TO终值LOOP
顺序语句; ENDLOOP[标号];例4,8位奇偶校验器的描述8位奇偶校验器a(0)za(1)a(2)a(3)a(4)a(5)a(6)a(7)8位奇偶校验器za(7..0)LIBRARYIEEE;USEIEEE.STD
LOGIC
1164.ALLENTITYp
checkISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);
y:OUTSTD
LOGIC);ENDp
check;ARCHITECTUREexample4OFp
checkISBEGINPROCESS(a)VARIABLEtemp:STD_LOGIC; BEGIN temp:='0'; FORnIN7DOWNTO0LOOP temp:=tempXORa(n); ENDLOOP; y<=temp; ENDPROCESS; ENDexample4;
四、NEXT语句格式:NEXT[标号][WHEN条件];功能:(1)NEXT——无条件结束本次循环(2)NEXT标号——结束本次循环,从“标号”规定的位置继续循环;(3)NEXTWHEN条件——当“条件”满足时结束本次循环,否则继续循环。五、EXIT语句格式:EXIT[标号][WHEN条件];功能:(1)EXIT——无条件跳出循环(2)EXIT标号——跳出循环,从“标号”规定的位置开始循环;(3)EXITWHEN条件——当“条件”满足时跳出循环,否则继续循环。
3.3.3
WAIT语句
一、格式1:WAITON敏感信号表;功能:将运行的程序挂起直至敏感信号表中的任一信号发生变化时结束挂起,重新执行程序。例如:SIGNALs1,s2:STD
LOGIC;
PROCESS … WAITONs1,s2;
ENDPROCESS;注意:含WAIT语句的进程PROCESS的括弧中后不能加敏感信号,否则是非法的,例如
PROCESS(s1,s2)二、格式2:WAITUNTIL条件表达式;功能:将运行的程序挂起直至表达式中的敏感信号发生变化,而且满足表达式设置的条件时结束挂起,重新执行程序。例如:WAITUNTILenable=‘1’;3.3.4
断言(ASSERT)语句格式:ASSERT条件表达式[ REPORT字符串][ SEVERITY错误等级]功能:当条件为“真”时,向下执行另一个语句,为“假”时,则输出“字符串”信息并指出“错误等级”。用途:用于仿真、调试程序时的人机对话。例如ASSERT(S=‘1’ANDR=‘1’)REPORT“BothvaluesofSandRareequal‘1’”SEVERITYERROR;错误等级:NOTE(注意),WARNING(警告),ERROR(出错),FAILURE(失败)3.3.5
属性(ATTRIBUTE)描述与定义语句
功能:用于检出时钟边沿、完成定时检查、获得未约束的数据类型的范围等。格式:属性测试项目名‘属性标识符;--S‘属性标识符预定义属性函数标识符及功能:例如:TYPEnumberISINTEGERRANGE9DOWNTO0;
I:=number‘LEFT;--I=9 I:=number‘RIGTH;--I=0 I:=number‘HIGH;--I=9 I:=number‘LOW;--I=0EVENT——表示对当前的一个极小的时间段内发生事件的情况进行检测(如时钟的边沿)。例如:clock‘EVENT --检测以clock为属性测试项目的事件
clock‘EVENTANDclock=‘1’; --检测clock的上升沿
clock‘EVENTANDclock=‘0’; --检测clock的下降沿LAST_EVENT——从信号最近一次的发生至今所经历的时间,常用于检查定时时间、建立时间、保持时间和脉冲宽度等。例如:检查D触发器的D输入端的建立时间是否达到要求。LIBRARYIEEE;USEIEEE.STD
LOGIC
1164.ALLENTITYdffISGENERIC(setup_time,hold_time:TIME); PORT(d,clk:INSTD
LOGIC;
q:OUTSTD
LOGIC);BEGINSetup_checkPROCESS(clk)
BEGIN IF(clk=’1’)AND(clk’EVENT)THEN ASSERT(d’LAST_EVENT>=setup_time) REPORT“SETUPVIOLATION” SEVERITYERROR; ENDIF;ENDPROCESS;ENDdff;ARCHITECTUREdff_behavOFdffISBEGINDff_PROCESS:PROCESS(clk) BEGIN IF( clk=’1’)AND(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高校图书馆文化展览策划岗面试题库
- 2026年挑战杯及创青春赛事组织测试题
- 2026年高铁车站消防员招聘面试消防设备
- 2025年甘肃省兰州工业学院招聘考试试卷真题
- 临时排水施工方案(一)
- 丽水市知识产权专利、商标、地理标志类示范企业申报表
- 投标用工作方案
- 阳光护蕾工作方案
- 铁路党建品牌实施方案
- 朝鲜汤粉店团队建设方案
- 2026年医疗三基三严知识考前冲刺测试卷含完整答案详解(必刷)
- 2026年综治网格中心业务知识考核题库
- (2025年)无人机考试复习题库附答案详解
- 2026年全国标准化知识竞赛真强化训练高能及参考答案详解(综合题)
- 2026建安杯信息通信建设行业安全竞赛核心考点试题库(选择题)
- 造价审核时效工作制度
- 2026年智慧矿山整体解决方案商业计划书
- 河北沧州市八县联考2025-2026学年高三下学期3月阶段检测英语试题(含解析)
- 河北邯郸市2026届高三第一次模拟检测 化学试卷
- 2026年全国统一税务执法资格考试模拟试卷(附答案)
- 医药公司反贿赂管理制度
评论
0/150
提交评论