K述列 917WAI语句 【例9-12】 PROCESS BEGIN rst loop: LOOP WAIT UNTIL clock=" AND clockEVENT;-等待时钟信号 NeXT rst loop When (rst=1; 检测复位信号rst X<=a; 无复位信号,执行赋值操作 WAIT UNTIL clock= 1 AND clockⅤENT;-等待时钟信号 NEXT rst loop When(rst=1; 检测复位信号rst y<=b; 无复位信号,执行赋值操作 END LOOP rst loop END PROCESS;
KX 康芯科技 9.1.7 WAIT语句 【例9-12】 PROCESS BEGIN rst_loop : LOOP WAIT UNTILclock ='1' AND clock’EVENT; -- 等待时钟信号 NEXT rst_loopWHEN (rst='1'); -- 检测复位信号rst x <= a ; -- 无复位信号,执行赋值操作 WAIT UNTILclock ='1' AND clock’EVENT; -- 等待时钟信号 NEXT rst_loopWhen (rst='1'); -- 检测复位信号rst y <= b ; -- 无复位信号,执行赋值操作 END LOOP rst_loop ; END PROCESS;
【例9-13】 LIBRARY IEEE USE IEEE STD LOGIC 1164.ALL: ENTITY shifter Is PORT(data: IN STD LOGIC VECTOR (7 DOWNTOO); shift left: IN STD LOGIC; shift right: IN STD LOGIC; clk: IN STD LOGIC: reset: IN STD LOGIC: mode: IN STD LOGIC VECTOR(I DOWNTO 0); gout: BUFFERSTD LOGIC VECTOR(7 DOWNTOO); END Shifter: architecture behave of shifter is SIGNAL enable: STD LoGIC 接下页
接下页 【例9-13】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY shifter IS PORT( data : IN STD_LOGIC_VECTOR (7 DOWNTO0); shift_left:IN STD_LOGIC; shift_right:IN STD_LOGIC; clk:IN STD_LOGIC; reset : IN STD_LOGIC; mode : IN STD_LOGIC_VECTOR(1 DOWNTO0); qout : BUFFER STD_LOGIC_VECTOR(7 DOWNTO0) ); END shifter; ARCHITECTUREbehave OF shifter IS SIGNAL enable: STD_LOGIC;
BEGIN PROCESS BEGIN WAIT UNTIL( RISING EDGE(ck);-等待时钟上升沿 IF(reset=1)then qout<=000000009 ELSE CASE mode is WHEN"0"→>qout<= shift right&qout(7 DOWNTO1);-右移 WHEN"10"→qout<=qout(6 DOWNTO0)& shift le;-左移 WhEN11=> gout <= data; -并行加载 WHENOTHERS→NULL; END CASE; END IF; END PROCESS ENd behave;
BEGIN PROCESS BEGIN WAIT UNTIL(RISING_EDGE(clk)); --等待时钟上升沿 IF (reset = '1')THEN qout <= "00000000"; ELSE CASE mode IS WHEN "01" => qout<=shift_right & qout(7 DOWNTO1);--右移 WHEN "10" => qout<=qout(6 DOWNTO0) & shift_left;--左移 WHEN "11" => qout <= data; -- 并行加载 WHEN OTHERS => NULL; END CASE; END IF; END PROCESS; END behave;
K述列 9.1顺序语句 918子程序调用语句 1.过程调用 过程名[([形参名=>]实参表达式 ,|形参名一>实参表达式}); (1)将IN和ⅣNOUT模式的实参值赋给欲调用的过程中与它们对应的 形参; (2)执行这个过程; (3)将过程中N和INOU模式的形参值返回给对应的实参
KX 康芯科技 9.1.8 子程序调用语句 9.1 顺序语句 过程名[([形参名=> ]实参表达式 { ,[形参名=>]实参表达式})]; (1) 将IN和INOUT模式的实参值赋给欲调用的过程中与它们对应的 形参; (2) 执行这个过程; (3) 将过程中IN和INOUT模式的形参值返回给对应的实参。 1. 过程调用
【例9-14】 PACKAGE data types Is 定义程序包 SUBTYPE data element IS INTEGER RaNgE0TO3;-定义数据类型 TYPE data array Is array(I 3)of data element; END data types USE WORKdata types.ALL;-打开以上建立在当前工作库的程序包data_ types ENTITY SOrt Is PORT(in array: In data array out array: out data array); END Sort: ARCHITECTURE exmp OF sort Is BEGIN PROCESS (in array 进程开始,设 data types为敏感信号 接下页
接下页 【例9-14】 PACKAGE data_typesIS -- 定义程序包 SUBTYPEdata_elementIS INTEGER RANGE 0 TO 3 ;-- 定义数据类型 TYPE data_array IS ARRAY (1 TO 3) OF data_element; END data_types; USE WORK.data_types.ALL; --打开以上建立在当前工作库的程序包data_types ENTITY sortIS PORT( in_array : IN data_array ; out_array : OUT data_array); END sort; ARCHITECTUREexmp OF sortIS BEGIN PROCESS (in_array) -- 进程开始,设data_types为敏感信号