| if 语句的一般形式为: if 条件表达式 then 语句; [elsif 条件表达式 then 语句;] --注意elsif的写法。 [else 语句;] end if; case语句是VHDL提供的另一种形式的条件控制结构,它根据所给表达式的值域选 择执行语句集。case语句与if语句的相同之处在于:它们都根据某个条件在多个语句集中进行选择;而不同之处在于:case语句根据某个表达式的值而选择执行体。设计者给出表达式并根据该表达式的类型的各种可能的值指定一个执行语句集。case语句中的表达式必须是离散类型或一维数组类型. case 语句的一般形式为: case 值表达式 is when 值 => 语句; when 值|值 => 语句; -- 几个不同的值,执行的语句相同。 when 离散范围 => 语句; -- 某个范围的值,执行的语句相同。 when others => 语句; -- others必须放在最后一个分支。 end case; case语句选择项的要求: 选择唯一,覆盖全集。 例: signal C: Integer range 1 to 20; signal Out1: ( '0', '1', '2', '3'); process ( C ) begin case C is when 1 => Out1 <= '0'; -- C= 1 when 2 | 4 | 8 => Out1 <= '1'; -- C= 2,4,8 when 3 | 5 to 7| 10 to 15 => Out1 <= '2'; -- C= 3,5,6,7,10,11,12,13,14,15 -- 表示或者3,或者5到7,或者10到15的情况 when others => Out1 <= '3'; -- C= 9, 16, 17, 18, 19, 20 -- 表示出去上面所列出的值之外的所有其它值。 end case; end process;
|