K康还科技 7.1顺序语句 7.1.4L00P语句 (1)单个工O0P语句,其语法格式如下: [LOOP标号:]LOOP 顺序语句 END LOOP[LOOP标号]: L2:LOOP a:=a+l; EXIT L2 WHEN a >10; -当a大于10时跳出循环 END LOOPL2;
KX 康芯科技 7.1 顺序语句 7.1.4 LOOP语句 (1) 单个LOOP语句,其语法格式如下: [ LOOP标号:] LOOP 顺序语句 END LOOP [ LOOP标号 ]; . L2 : LOOP a := a+1; EXIT L2 WHEN a >10 ; - 当a大于10时跳出循环 END LOOPL2;
K能苏科技 7.1顺序语句 7.1.4L00P语句 (2)FOR LOOP语句,语法格式如下: [LOoP标号:]EOR循环变量,IN循环次数范围 LOOP 顺序语句 END LOOP[LOOP标号];
KX 康芯科技 7.1 顺序语句 7.1.4 LOOP语句 (2) FOR_LOOP语句,语法格式如下: [LOOP标号:] FOR 循环变量,IN 循环次数范围 LOOP 顺序语句 END LOOP [LOOP标号];
K康还科技 7.1顺序语句 7.1.4L00P语句 【例7-4】 LIBRARY IEEE; USE IEEE.STD LOGIC 1164.ALL; ENTITY p check IS PORT a:IN STD LOGIC VECTOR (7 DOWNTO 0); y:OUT STD LOGIC ) END p check; ARCHITECTURE opt OF p check IS SIGNAL tmp STD LOGIC BEGIN PROCESS(a) BEGIN tmp<='0'; FOR n IN 0 TO 7 LOOP tmp <tmp XoR a(n); END LOOP y <=tmp; END PROCESS; END opt;
KX 康芯科技 7.1 顺序语句 7.1.4 LOOP语句 【例7-4】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY p_check IS PORT ( a : IN STD_LOGIC_VECTOR (7 DOWNTO 0); y : OUT STD_LOGIC ); END p_check; ARCHITECTURE opt OF p_check IS SIGNAL tmp :STD_LOGIC ; BEGIN PROCESS(a) BEGIN tmp <='0'; FOR n IN 0 TO 7 LOOP tmp <= tmp XOR a(n); END LOOP ; y <= tmp; END PROCESS; END opt;
K能苏科技 7.1顺序语句 7.1.4L00P语句 【例7-5】 SIGNAL a,b,c STD LOGIC VECTOR (1 TO 3); FOR n IN 1 To 3 LOOP a(n)<=b(n)AND c(n); END LOOP; 此段程序等效于顺序执行以下三个信号赋值操作: a(1)<=b(1)ANDc(1): a(2)<=b(2)ANDc(2); a(3)<=b(3)ANDc(3);
KX 康芯科技 7.1 顺序语句 7.1.4 LOOP语句 【例7-5】 SIGNAL a, b, c : STD_LOGIC_VECTOR (1 TO 3); . FOR n IN 1 To 3 LOOP a(n) <= b(n) AND c(n); END LOOP; 此段程序等效于顺序执行以下三个信号赋值操作: a(1)<=b(1) AND c(1); a(2)<=b(2) AND c(2); a(3)<=b(3) AND c(3);
K康还科技 7.1顺序语句 7.1.5NEXT语句 NEXT; 一第一种语句格式 NEXT LOOP标号; 一第二种语句格式 NEXT LOOP标号WHEN条件表达式; -第三种语句格式 【例7-6】 。 L1 FOR cnt value IN 1 TO 8 LOOP s1 a(cnt value):=0'; NEXT WHEN (b=c); s2 a(cnt value 8 )0'; END LOOP L1;
KX 康芯科技 7.1 顺序语句 7.1.5 NEXT语句 NEXT; - 第一种语句格式 NEXT LOOP标号; - 第二种语句格式 NEXT LOOP标号WHEN 条件表达式; - 第三种语句格式 【例7-6】 . L1 : FOR cnt_value IN 1 TO 8 LOOP s1 : a(cnt_value) := '0'; NEXT WHEN (b=c); s2 : a(cnt_value + 8 ):= '0'; END LOOP L1;