VHDL顺序语句 2、变量代入语句 格式: 变量:=表达式; 注意: 变量是局部量,只能在所定义的进程、过程、和函 数中使用。 变量赋值是立即发生,不能加延时。 在进程中描述逻辑关系及算法时最好使用变量,以 避免出错。 进程结束时,变量的结果只能由信号带出
VHDL顺序语句 2、变量代入语句 格式: 变量:=表达式; 注意: 变量是局部量,只能在所定义的进程、过程、和函 数中使用。 变量赋值是立即发生,不能加延时。 在进程中描述逻辑关系及算法时最好使用变量,以 避免出错。 进程结束时,变量的结果只能由信号带出
VHDL顺序语句 例 architecture abc of example is b egin PROCESS(a, b) variable tmp: std logic; 注意变 begi 量定义 ap: -a and b: 的位置 out<=tmp; end process; end abc
VHDL顺序语句 例: architecture abc of example is begin PROCESS(a,b) variable tmp:std_logic; begin tmp:=a and b; out<=tmp; end process; end abc; 注意变 量定义 的位置
VHDL顺序语句 3、GASE语句 格式: Gase表达式ls WHEN选择值=>顺序处理语句; WHEN选择值=>顺序处理语句; WHEN OTHERS=>顺序处理语句 End case 注意: CASE语句至少包含一个条件句 CASE语句中条件表达式的值必须列举穷尽,但不 能重复; 无法穷举,用 OTHERS表达
VHDL顺序语句 3、CASE语句 格式: Case 表达式 Is WHEN 选择值 =>顺序处理语句; …… WHEN 选择值 =>顺序处理语句; WHEN OTHERS =>顺序处理语句; End case; 注意: CASE语句至少包含一个条件句; CASE语句中条件表达式的值必须列举穷尽,但不 能重复; 无法穷举,用OTHERS表达
例: 四选一数据选择器 architecture abc of example Is signal sel: std logic vector(I downto 0) VHDL begin sek<=b &a: process(sel) 为什么 begin 顺序语句 还要 case sel Is others when“00”=>f=i0; when“01”→>f<=i1 when“10→>f<=i2 when“11”→f<=i3; ● when others=>nul end case; end process; end abc:
V H D L 顺 序 语 句 例: 四选一数据选择器 architecture abc of example is signal sel:std_logic_vector(1 downto 0); begin sel<=b &a; process(sel) begin case sel is when “00” => f<=i0; when “01” => f<=i1; when “10” => f<=i2; when “11” => f<=i3; when others => null; end case; end process; end abc; 为什么 还要 others ?