5.2.2并行信号赋值语句(续1) 2,条件信号赋值语句 赋值目标<兰表达式WHEN赋值条件ELSE 表达式WHEN赋值条件ELSE 表达式: 例5.23选1多路选择器的行为描述。 A B mux21 mux21 en2 图5.23选1多路选择器
5.2.2 并行信号赋值语句(续1) 2. 条件信号赋值语句 赋值目标 <= 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE … 表达式; 例5.2 3选1多路选择器的行为描述。 S B A Y mux21 S B A Y mux21 a b c en2 en1 z 图5.2 3选1多路选择器
5.2.2 并行信号赋值语句(续2) 2.条件信号赋值语句 例5.23选1多路选择器的行为描述。 LIBRARY IEEE; USE IEEE.STD LOGIC1164.ALL; ENTITY mux31 IS PORT (a,b,c IN STD_LOGIC; en1,en2 IN STD LOGIC; OUT STD_LOGIC); END mux31; ARCHITECTURE behavioral OF mux31 IS BEGIN Z<=a WHEN en2 ='1'ELSE b WHEN en1='1'ELSE Ci END behavioral;
5.2.2 并行信号赋值语句(续2) 2. 条件信号赋值语句 例5.2 3选1多路选择器的行为描述。 LIBRARY IEEE; USE IEEE.STD_LOGIC 1164.ALL; ENTITY mux31 IS PORT (a, b, c : IN STD_LOGIC; en1, en2 : IN STD_LOGIC; z :OUT STD_LOGIC); END mux31; ARCHITECTURE behavioral OF mux31 IS BEGIN Z<= a WHEN en2 = '1' ELSE b WHEN en1= '1' ELSE c ; END behavioral;
5.2.2并行信号赋值语句(续3) 3,选择信号赋值语句 WITH选择表达式SELECT 赋值目标信号<=表达式WHEN选择值, 表达式WHEN选择值, jj. 表达式WHEN选择值, 表达式WHEN选择值; 例5.3简易的指令译码器设计。 DECODER data out data2 图53简易指令译码器
5.2.2 并行信号赋值语句(续3) 3. 选择信号赋值语句 WITH 选择表达式 SELECT 赋值目标信号 <=表达式 WHEN选择值, 表达式 WHEN选择值, … 表达式 WHEN 选择值, 表达式 WHEN 选择值; 例5.3 简易的指令译码器设计。 B A 图5.3 简易指令译码器 data1 data2 data out C DECODER
5.2.2 并行信号赋值语句(续4) 3,选择信号赋值语句 例5.3简易的指令译码器设计。 LIBRARY IEEE; USE IEEE.STD LOGIC 1164.ALL; ENTITY DECODER IS PORT(A,B,C:IN STD LOGIC; data1,data2:IN STD LOGIC; data out OUT STD_LOGIC); END DECODER: ARCHITECTURE behavioral OF DECODER IS SIGNAL instruction:STD_LOGIC_VECTOR(0 TO 2); BEGIN Instruction <=A B&C; WITH instruction SELECT data out <NOT data1 WHEN "00O" data1 AND data2 WHEN "001" data1 OR data2 WHEN "010" data1 NAND data2 WHEN "011" data1 NOR data2 WHEN "100" data1 XOR data2 WHEN "101" data1 XNOR data2 WHEN "110", WHEN OTHERS; END behavioral;
5.2.2 并行信号赋值语句(续4) 3. 选择信号赋值语句 例5.3 简易的指令译码器设计。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DECODER IS PORT (A, B, C : IN STD_LOGIC; data1, data2 : IN STD_LOGIC; data_out : OUT STD_LOGIC); END DECODER; ARCHITECTURE behavioral OF DECODER IS SIGNAL instruction: STD_LOGIC_VECTOR (0 TO 2); BEGIN Instruction <= A & B & C; WITH instruction SELECT data_out <= NOT data1 WHEN "000", data1 AND data2 WHEN "001", data1 OR data2 WHEN "010", data1 NAND data2 WHEN "011", data1 NOR data2 WHEN "100", data1 XOR data2 WHEN "101", data1 XNOR data2 WHEN "110", ‘Z’ WHEN OTHERS; END behavioral;
5.2.3 顺序控制语句 1,IF语句 第一种形式: 第二种形式: IF条件THEN IF条件THEN 一顺序语句: 一顺序语句: ELSE END IF; 一顺序语句 END IF; 第三种形式: 第四种形式: IF条件THEN IF条件THEN 一顺序语句: -顺序语句; ELSIF条件THEN ELSIF条件THEN 顺序语句: -顺序语句 ELSE END IF; 顺序语句: END IF;
5.2.3 顺序控制语句 1. IF语句 第一种形式: IF 条件 THEN --顺序语句; ELSE --顺序语句; END IF; 第二种形式: IF 条件 THEN --顺序语句; END IF; 第三种形式: IF 条件 THEN --顺序语句; ELSIF 条件 THEN --顺序语句; … ELSE --顺序语句; END IF; 第四种形式: IF 条件 THEN --顺序语句; ELSIF 条件 THEN --顺序语句; … END IF;