K康科技 8.3VHDL子程序 8.3.7子程序调用语句 1.过程调用 2.函数调用 函数调用与过程调用是十分相似的,不同之处是,调用 函数将返还一个指定数据类型的值,函数的参量只能是输入 值
KX 康芯科技 8.3 VHDL子程序 8.3.7 子程序调用语句 1. 过程调用 2.函数调用 函数调用与过程调用是十分相似的,不同之处是,调用 函数将返还一个指定数据类型的值,函数的参量只能是输入 值
K能芯科技 8.3VHDL子程序 8.3.8并行过程调用语句 过程名(关联参量名); 【例8-14】 PROCEDURE adder(SIGNAL a,b:IN STD_LOGIC;-过程名为adder SIGNAL sum OUT STD_LOGIC ) adder(al,bl,suml); -并行过程调用 -在此,al、b1、suml即为分别对应于a、b、sum的关联参量名 PROCESS(c1,c2); 一进程语句执行 BEGIN Adder(c1,c2,sI);-顺序过程调用,在此cl、c2、sl即为分别对 END PROCESS -应于a、b、sum的关联参量名
KX 康芯科技 8.3 VHDL子程序 8.3.8 并行过程调用语句 过程名(关联参量名); 【例8-14】 . PROCEDURE adder(SIGNAL a, b :IN STD_LOGIC ; -过程名为adder SIGNAL sum : OUT STD_LOGIC ); . adder(a1,b1,sum1) ; - 并行过程调用 . - 在此,a1、b1、sum1即为分别对应于a、b、sum的关联参量名 PROCESS( c1,c2) ; - 进程语句执行 BEGIN Adder(c1,c2,s1) ; - 顺序过程调用,在此c1、c2、s1即为分别对 END PROCESS ; - 应于a、b、sum的关联参量名
K康还科技 8.3VHDL子程序 8.3.8并行过程调用语句 【例8-15】 PROCEDURE check(SIGNAL a IN STD LOGIC VECTOR; 在调用时 SIGNAL error OUT BOOLEAN IS -再定位宽 VARIABLE found_one BOOLEAN :FALSE; .设初始值 BEGIN FORi IN a'RANGE LOOP-对位矢量a的所有的位元素进行循环检测 Fa(①=1'THEN-发现a中有I' IF found one THEN -若found one为TRUE,则表明发现了一个以上的'1' ERROR<=TRUE;-发现了一个以上的'I',令found one为TRUE RETURN; 结束过程 END IF; Found_one:=TRUE;-在a中已发现了一个'1' End IF; End LOOP; -再测a中的其他位 eror<=NOT found_one;-如果没有任何'1'被发现,error将被置TRUE END PROCEDURE check;
KX 康芯科技 8.3 VHDL子程序 8.3.8 并行过程调用语句 【例8-15】 PROCEDURE check(SIGNAL a : IN STD_LOGIC_VECTOR; - 在调用时 SIGNAL error : OUT BOOLEAN ) IS - 再定位宽 VARIABLE found_one : BOOLEAN := FALSE ; - 设初始值 BEGIN FOR i IN a'RANGE LOOP - 对位矢量a的所有的位元素进行循环检测 IF a(i) = '1' THEN - 发现a中有 '1' IF found_one THEN - 若found_one为TRUE,则表明发现了一个以上的'1' ERROR <= TRUE; - 发现了一个以上的'1',令found_one为TRUE RETURN; - 结束过程 END IF; Found_one := TRUE; - 在a中已发现了一个'1' End IF; End LOOP; - 再测a中的其他位 error <= NOT found_one; - 如果没有任何'1' 被发现,error 将被置TRUE END PROCEDURE check;
K康芯科拉 8.3VHDL子程序 8.3.8并行过程调用语句 CHBLK:BLOCK SIGNAL s1:STD_LOGIC_VECTOR(0TOO);-过程调用前设定位矢尺寸 SIGNAL s2:STD LOGIC VECTOR (0 TO 1); SIGNAL s3:STD LOGIC VECTOR (0 TO 2); SIGNAL s4:STD_LOGIC_VECTOR (0 TO 3); SIGNAL e1,e2,e3,e4:Boolean; BEGIN Check(s1,e1); -并行过程调用,关联参数名为s1、e1 Check(s2,e2); -并行过程调用,关联参数名为s2、e2 Check (s3,e3); -并行过程调用,关联参数名为s3、3 Check (s4,e4); -并行过程调用,关联参数名为s4、e4 END BLOCK;
KX 康芯科技 8.3 VHDL子程序 8.3.8 并行过程调用语句 . CHBLK:BLOCK SIGNAL s1: STD_LOGIC_VECTOR (0 TO 0); - 过程调用前设定位矢尺寸 SIGNAL s2: STD_LOGIC_VECTOR (0 TO 1); SIGNAL s3: STD_LOGIC_VECTOR (0 TO 2); SIGNAL s4: STD_LOGIC_VECTOR (0 TO 3); SIGNAL e1, e2, e3, e4: Boolean; BEGIN Check (s1, e1); - 并行过程调用,关联参数名为s1、e1 Check (s2, e2); - 并行过程调用,关联参数名为s2、e2 Check (s3, e3); - 并行过程调用,关联参数名为s3、e3 Check (s4, e4); - 并行过程调用,关联参数名为s4、e4 END BLOCK;
K康还科技 8.4VHDL库 8.4.1库的种类 1.IEEE库 2.STD库 3.WORK库 4.VITAL库
KX 康芯科技 8.4 VHDL库 8.4.1 库的种类 1. IEEE库 2. STD库 3. WORK库 4. VITAL库