第4章VHDL主要描述语句.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章VHDL主要描述语句

第四章:VHDL的主要描述语句 ★ 顺序描述语句 ★ 并发描述语句 ★ 其他语句 §4.1 顺序描述语句 ·特点:① 语句的执行(仿真)顺序与它们的书写顺序基本一致; ② 顺序语句只能出现在进程或子程序中; ③ VHDL语言的软件行为和综合后的硬件行为之间是有差异的。 ·种类: 赋值语句; 等待语句; 转向控制语句; 循环语句; 过程调用语句; 断言/空操作语句。 赋值语句 ·功能:将一个值或表达式的运算结果传递给某一数据对象。如:变量、信号或由此组成的数组。VHDL设计实体内的数据传递以及端口数据的读写都是通过它的运行实现的。 ·语句格式 (1) 变量赋值语句 目的变量:= 表达式; 如:a:=3; b:=c+d; (2) 信号赋值语句(信号代入) 目的信号量=信号表达式; 如:y = a AND b; 小结:(变量与信号赋值语句比较) 从语句格式看:“:=” “= ”。 从有效的范围看:变量值是一个局部的、暂时性的数据对象;信号具有全局性特性,它不但可作为一个设计实体内部各单元之间数据传送的载体,而且可通过信号与其它实体进行通信。 从有效的时间看:变量赋值是立即发生的(假设进程已启动),即是一种时间延迟为0的赋值行为;信号赋值通常不是立即发生的,而是发生在一个进程结束时,赋值过程总是有某延时的,它反映了硬件系统的重要性,综合后可以找到与信号对应的硬件结构(如:一个I/O口,一个D触发器等)。 2.等待语句 ·功能:控制进程状态的变化(即执行挂起)。 ·语句格式 (1) 无限等待语句 WAIT;未设置停止挂起条件的表达式,表示永远挂起; (2) 敏感信号等待语句 WAIT ON 信号[,信号]; 如:WAIT ON a , b ;表明等待信号量 a 或b 任一发生变化,进程将结束挂起状态,继续执行 WAIT ON 后的语句。 (3) 条件等待语句 WAIT UNTIL 条件表达式;该语句将把进程挂起,直到条件表达式中所含信号发生变化,且条件表达式为TURE时,进程才能脱离挂起状态,恢复执行WAIT后的语句。 如:WAIT UNTIL clock =’1’ AND CLOCK’EVENT;等待时钟信号上升沿到来。 (4) 超时等待语句 WAIT FOR 时间表达式; 从执行到当前的WAIT语句开始计时,进程处于挂起状态,当时间超过这一“时间表达式”后,进程自动恢复执行下面的语句。 如:WAIT FOR 10ns; 3.转向控制语句 ·功能:通过条件控制开关,决定是否执行一条或几条语句,或重复执行一或几条语句或跳过一条或几条语句。 ·语句格式 IF语句 ;根据所指定的条件来有选择地执行指定的顺序语句。 //--------------------------------- IF 条件 THEN 顺序处理语句; {ELSIF 条件 THEN 顺序处理语句; … ELSIF 条件 THEN 顺序处理语句}; [ELSIF 顺序处理语句]; ENDIF; ---------------------------------// [例4-1] LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PROT(input: IN STD_LOGIC_VECTOR(3 DOWNTO 0); Sel: IN STD_LOGIC_ VECTOR(1 DOWNTO 0; Output: OUT STD_LOGIC ); END mux4; ARCHITECTURE rtl OF mux4 IS BEGIN PROCESS (input,sel) BEGIN IF (sel=”00”) THEN Output = input(0); ELSIF (sel=”01”) THEN Output = input(1); ELSIF (sel=”10”) THEN Output = input(2); ELSE Output = input(3); END IF ; END PROCESS; END rtl; 上述是一个“四选一”电路。 注:① IF语句的条件判断是布尔量,即“TRUE

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档