版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四讲 VHDL的基本描述语句,VHDL语言的描述语句按语句执行的顺序分类,可以分为两类: )顺序(Sequential)描述语句, )并发(Concurrent)描述语句。,顺序描述语句,特点:每一条顺序语句的执行顺序与其书写顺序 对应。所谓“顺序执行”是指在仿真意义上的顺序 性,并不意味着顺序语句对应的硬件结构也有相 同的顺序性。顺序语句只能出现在进程或子程序 中(包括函数和过程)。进程是由一系列顺序语句 构成的,而进程本身是并行语句,也就是说,在 同一设计实体中,所有进程是并行执行的,而在 任一时刻,在进程内部只有一条语句被执行。,顺序描述语句的种类: WAIT 语句 顺序断言语句 顺序
2、信号代入语句 顺序变量赋值语句 IF 语句 CASE 语句 LOOP 语句 NEXT 语句 EXIT 语句 顺序过程调用语句 NULL 语句,WAIT语句,WAIT 无限等待 WAIT ON 信号列表 敏感信号量变化 WAIT UNTIL 条件表达式 条件满足 WAIT FOR 时间表达式 时间到,WAIT ON a,b; WAIT UNTIL “en=1; WAIT FOR 10ns;,WAIT ON 信号,信号; eg: Process(a,b) process begin begin y= a and b; wait on a,b; End process; y=a and b; end
3、 process;,Pay: Process(a ,b) begin wait on a,b; -错误语句(如果进程中已有敏感变量, y=a and b; 则再使用WAIT ON是错误的) End process;,WAIT UNTIL 布尔表达式; WAIT UNTIL(x*10)100);,WAIT FOR 时间表达式; WAIT FOR 20ns; WAIT FOR (a+b);,多条件WAIT 语句 WAIT ON en,a UNTIL (EN=1) or (a=true) FOR 5us; 说明:表达式的值至少包含一个信号量的值,如果都是变量,即使有新的变化, 也不会计算表达式,这样
4、就成为恒久等待语句,包含该等待语句的进程 将不能再启动。,2020/6/26,IF,IF 条件表达式 THEN 顺序语句; END IF;,IF 条件表达式 THEN 顺序语句; ELSE 顺序语句; END IF;,判断条件是否成立。若条件成立,则执行THEN 和END IF 之间的顺序语句;若条件不成立,则跳过不执行,IF 语句结束,执行后续语句。,判断条件是否成立。若条件成立,则执行THEN 和ELSE 之间的顺序语句;若条件不成立,则执行ELSE 和END IF 之间的顺序语句。,2020/6/26,IF,IF 条件表达式1 THEN 顺序语句; ELSIF 条件表达式2 THEN 顺
5、序语句; ELSE 顺序语句; END IF;,自上而下逐一判断条件是否成立。若条件成立,则执行相应的顺序语句,并不再判断其它表达式,直接结束 IF 语句的执行。 这种语法格式能够进行优先级的判断,因此各条件表达式中的条件可以重叠。,MUX4-1,Input(0),Input(1),Input(2),Input(3),Sel(0),Sel(1),q,功能表:,Eg: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX4 IS PORT (input: IN STD_LOGIC_VECTOR (3 DOWNTO 0); sel: IN ST
6、D_LOGIC_VECTOR (1 DOWNTO 0); y: OUT STD_LOGIC); END MUX4; ARCHITECTURE MUX4_ARCH OF MUX4 IS BEGIN PROCESS(sel,input) BEGIN IF(sel=“00”) THEN y=input(0); ELSIF(sel=“01”) THEN y=inpit(1); ELSIF(sel=“10”) then y 顺序语句; WHEN OTHERS =顺序语句; END CASE;,若有多个选择值,则用“|” 间隔,例如:2|3 表示2或3。 “=”相当于IF 语句中的THEN。,条件表达式的
7、值不可重叠,例如不可同时出现 WHEN “00” | ”01” 和WHEN “00” | ”11” 。 当CASE语句的条件表达式的值无法覆盖所有情况时,要用OTHERS指出未能列出的其它所有情况的输出值。,2020/6/26,CASE,2020/6/26,CASE,2020/6/26,CASE,library ieee; use ieee.std_logic_1164.all; entity decode_3to8 is Port ( a,b,c,G1,G2A,G2B:in std_logic; y:out std_logic_vector(7 downto 0); end decode_3
8、to8; architecture dec_arch of decode_3to8 is signal indata: std_logic_vector(2 downto 0); begin indatayyyyyyyyy=XXXXXXXX; end case; else y=11111111; end if; end process; end dec_arch;,2020/6/26,LOOP,标号:FOR 循环变量 IN 循环范围 LOOP 顺序处理语句; END LOOP 标号;,循环变量是一个临时变量,仅在此LOOP语句中有效,不必事先定义。,i 不必事先定义。 不要将sum定义成信号而
9、是变量。,sum:=0; FOR i in 1 to 9 LOOP sum:=sum + i; END LOOP;,2020/6/26,LOOP,标号:WHILE 条件 LOOP 顺序处理语句; END LOOP 标号;,如果条件为真,则进行循环,如果条件为假,则结束循环。,i:=1; sum:=0; WHILE i10; END LOOP L1;,2020/6/26,EXIT,EXIT;,EXIT LOOP标号;,EXIT LOOP标号 WHEN 条件表达式,FOR i in 0 TO 7 LOOP IF (flag=TRUE) THEN EXIT; ELSE c=a and b; END
10、IF; END LOOP;,L1: FOR i in 0 TO 7 LOOP IF (flag=TRUE) THEN EXIT L1; ELSE c=a and b; END IF; END LOOP;,L1: WHILE ib , c=ab);,元件例化语句,PROCESS,归纳一下process大致有一下几个特点: 它可以与其他进程并发运行,并可存取构造体或实体 信号中所定义的信号; 进程结构中的所有语句都是按顺序执行的; 为启动进程,在进程结构中必须包含一个显式的敏感 信号量表或者包含一个WAIT语句; 进程之间的通信是通过信号量传递来实现的。,2020/6/26,并发信号代入语句,赋值
11、目标= 表达式;,在进程内部时,作为顺序语句使用;在进程外部时,作为并行语句使用。 作为并行语句使用时,表达式的值是此条语句的敏感信号,即表达式值的变化会激发语句的执行。,2020/6/26,并发信号代入语句,architecture of is begin output=input; end;,architecture of is begin process(input) begin output=input; end process; end;,条件信号代入语句与IF语句: IF语句只能在进程(PROCESS)中使用,因为它是顺序语句, 而条件语句中的ELSE不可以省略,IF中的就可以省略
12、,除此 之外重要的一点是条件信号代入语句不能嵌套。用条件信号 代入语句描述的电路与实际的逻辑电路工作情况类似,所以 需要有较多的硬件知识,掌握起来有些难度。,条件信号代入语句,BLOCK,标号:BLOCK 块头 说明语句; BEGIN 并发处理语句; END BLOCK 标号名;,块头通常用于信号的映射和参数的定义,通常通过GENERIC 语句,GENERIC_MAP 语句,PORT语句和PORT_MAP语句来实现。,说明语句和构造体的说明语句相同,BLOCK,library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH
13、.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity mux is port(d0,d1,sel:in bit; q:out bit); end mux; architecture connect of mux is signal temp1,temp2,temp3:bit; -内部信号不需要声明方向 begin cale: block begin temp1=d0 and sel; temp2=d1 and (not sel); temp3=d0 or temp2; q=temp3; end block cale; end connect;,BLOCK,library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity mux is port(d0,d1,sel:in bit; q:out bit);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年医师定期考核考试综合练习【考试直接用】附答案详解
- 2024-2025学年度施工员练习题附答案详解(B卷)
- 2024-2025学年医院三基考试高频难、易错点题含答案详解【夺分金卷】
- 2024-2025学年医师定期考核考试综合练习完整答案详解
- 2024-2025学年度法律硕士试题预测试卷附答案详解【综合卷】
- 2024-2025学年度燃气职业技能鉴定检测卷及参考答案详解【完整版】
- 2024-2025学年度计算机四级试题预测试卷及完整答案详解(夺冠)
- 2024-2025学年度云南农业职业技术学院单招数学常考点试卷完整版附答案详解
- 2024-2025学年度反射疗法师大赛理论考前冲刺练习题带答案详解(综合卷)
- 2024-2025学年度注册核安全工程师考试历年机考真题集【能力提升】附答案详解
- 混凝土重力坝毕业设计
- 2024年广东省深圳市中考二模数学试题(解析版)
- 感染科科室医生工作总结
- 护士同事间心理暴力的现状及其影响因素研究
- (正式版)JBT 14874-2024 带式输送机 清扫装置
- 2024仁爱版初中英语单词表(七-九年级)中考复习必背
- 矿井开拓与生产系统煤矿采掘基本知识
- 新能源与能源供应链的整合
- 自身免疫性脑炎护理课件
- 癌症的疼痛护理
- 退役军人保密知识讲座
评论
0/150
提交评论