【例9-3】 LIBRARY IEEE USE IEEE STD LOGIC 1164.ALL: USE IEEE STD LOGIC UNSIGNEDALL ENTITY alu Is PORT a, b: IN STD LOGIC VECTOR (7 DOWNTO0); opcode: IN STD LOGIC VECTOR(I DOWNTO0); result: OUT STD LOGIC VECTOR(7 DOWNTOO)) END alu: arChitECtURe behave of alu is CONSTANT plus STD LOGIC VECTOR (I DOWNTO0): =b00 CONSTANT minus STD LOGIC VECTOR (I DOWNTO0): b01; CONSTANTequal STD LOGIC VECTOR(I DOWNTO0: =b"10 CONSTANT not equal: STD LOGIC VECTOR (I DOWNTO0): =bl1"; 接下页
接下页 【例9-3】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY alu IS PORT( a, b : IN STD_LOGIC_VECTOR(7 DOWNTO0); opcode:IN STD_LOGIC_VECTOR(1 DOWNTO0); result:OUT STD_LOGIC_VECTOR(7 DOWNTO0) ); END alu; ARCHITECTUREbehave OF alu IS CONSTANTplus : STD_LOGIC_VECTOR(1 DOWNTO0) := b"00"; CONSTANT minus : STD_LOGIC_VECTOR(1 DOWNTO0) := b"01"; CONSTANTequal : STD_LOGIC_VECTOR(1 DOWNTO0) := b"10"; CONSTANTnot_equal: STD_LOGIC_VECTOR (1 DOWNTO0) := b"11";
【例9-2】 SIGNAL value: INTEGER RANGE O TO 15; SIGNAL outl: STD LOGIC i CASE value Is 缺少以WHEN引导的条件句 END CASE CASE value is WHEN0=>outl<='I’; value2~15的值未包括进去 WhEN I=>out1<=0 END CASE CASE value Is WHEN0To10=>0ut1<='1’; 选择值中5~10的值有重叠 WHEN 5TO 15=>out1<=0 END CASE
【例9-2】 SIGNAL value : INTEGER RANGE 0 TO 15; SIGNAL out1 : STD_LOGIC ; ... CASE value IS -- 缺少以WHEN引导的条件句 END CASE; ... CASE value IS WHEN 0 => out1<= '1' ; -- value2~15的值未包括进去 WHEN 1 => out1<= '0' ; END CASE ... CASE value IS WHEN 0 TO 10 => out1<= '1'; -- 选择值中5~10的值有重叠 WHEN 5 TO 15 => out1<= '0'; END CASE;
BEGIN PROCESS (opcode, a, b) BEGIN CASE opcode is WhEN plus=> result<=a+b;-a、b相加 WHEN minus=> result<=a-b;--a、b相减 WhEN equal=> a、b相等 IF(a=b) THEn result <=x01"i ELSE result <=x00" END IF: WhEN not equal = 、b不相等 IF(a/ = b)then result <=x 0l ELSE result <=x00 END IF END CASE END PROCESS end behave
BEGIN PROCESS (opcode,a,b) BEGIN CASE opcode IS WHEN plus => result <= a + b; -- a、b相加 WHEN minus => result <= a - b; -- a、b相减 WHEN equal => -- a、b相等 IF (a = b) THEN result <= x"01"; ELSE result <= x"00"; END IF; WHEN not_equal => -- a、b不相等 IF (a /= b) THEN result <= x"01"; ELSE result <= x"00"; END IF; END CASE; END PROCESS; END behave;
K述列 9.1顺序语句 914LOOP语句 (1)单个LOOP语句,其语法格式如下: [工OoP标号:]工OoP 顺序语句 END LOOP[LOO标号; L2: LOOP a:=a+1; EXIT L2 WHEN a>10 当a大于10时跳出循环 END LOOP L2
KX 康芯科技 9.1.4 LOOP语句 (1) 单个LOOP语句,其语法格式如下: [ LOOP标号:] LOOP 顺序语句 END LOOP [ LOOP标号 ]; ... L2 : LOOP a := a+1; EXIT L2 WHEN a >10 ; -- 当a大于10时跳出循环 END LOOPL2; ... 9.1 顺序语句
K述列 9.1顺序语句 914LOOP语句 (2) FOR LOOP语句,语法格式如下: [LoOP标号:]FOR循环变量,IN循环次数范 围 LOOP 顺序语句 END LOOP LOOP标号];
KX 康芯科技 9.1.4 LOOP语句 (2) FOR_LOOP语句,语法格式如下: [LOOP标号:] FOR 循环变量,IN 循环次数范 围 LOOP 顺序语句 END LOOP [LOOP标号]; 9.1 顺序语句