文档详情

5,VHDL语言的顺序语句.ppt

发布:2017-05-01约2.81千字共28页下载文档
文本预览下载声明
五、VHDL语言的顺序语句;顺序语句只能出现在 进程(PROCESS) 过程(PROCEDURE) 函数(FUNCTION) 中,其它都是并行语句。;VHDL有如下六类基本顺序语句:;目的变量 := 表达式;;2、流程控制语句;第三种;例 :IF (SET=’1’) THEN c=b END IF;;例 用IF语句描述一个四选一电路;ARCHITECTURE rt1 OF mux4 IS BEGIN PROCESS (input, sel) BEGIN IF (sel=”00”) THEN Y=input (0); ELSIF (Sel=”01”) THEN Y=input (1); ELSIF (Sel=”10”) THEN Y=input (2); ELSE Y=input (3); END IF; END PROCESS; END rt1;; IF语句不仅可用于选择器设计,还可用于比较器,译码器等进行条件控制的逻辑设计。IF语句中至少应有一个条件句,条件句必须由布尔表达式构成,条件表达式中能使用关系运算操作及逻辑运算操作的组合表达式。;B、CASE 语句;例 用CASE语句描述4选1多路选择器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC); END ENTITY MUX41;;ARCHITECTURE ART OF MUX41 IS SIGNA S :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN S=S1 S2; PROCESS(S,A,B,C,D) IS BEGIN CASE S IS WHEN 00=Z=A; WHEN 01=Z=B; WHEN 10=Z=C; WHEN 11=Z=D; WHEN OTHERS =Z=X; END CASE; END PROCESS; END ARCHITECTURE ART;; (1) 条件句中的选择值必须在表达式的取值范围内。 (2) 除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用“OTHERS”表示。 (3) CASE语句中每一条语句的选择只能出现一次,不能有相同选择值的条件语句出现。 (4) CASE语句执行中必须选中,且只能选中所列条件语句中的一条。这表明CASE语句中至少要包含一个条件语句。;C、LOOP 语句; [标号:] WHILE 条件 LOOP 顺序语句; END LOOP [标号];;D、NEXT 语句;用法示例: … L1: FOR CNT IN 1 TO 8 LOOP S1:A(CNT):=‘0’; NEXT WHEN (B=C); S2 :A(CNT+8):=‘0’; END LOOP L1;;E、EXIT 语句;3、等待语句; 一般地,只有WAIT_UNTIL格式的等待语句可以被综合器接受(其余语句格式只能在VHDL仿真器中使用) ,WAIT_UNTIL语句有以下三种表达方式: WAIT UNTIL 信号=Value ; -- (1) WAIT UNTIL 信号’EVENT AND 信号=Value; -- (2) WAIT UNTIL NOT 信号’STABLE AND 信号=Value; -- (3) ;例: PROCESS BEGIN rst_loop : LOOP WAIT UN
显示全部
相似文档