【正文】
ext_state = st0。 WHEN OTHERS = next_state = st0。 END CASE 。 END PROCESS COM 。 REG: PROCESS (CLK ) BEGIN IF (CLK39。EVENT AND CLK=39。139。) THEN current_state=next_state。 END IF。 END PROCESS REG 。 由信號(hào)current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程:REG LATCH1: PROCESS (LOCK) 此進(jìn)程中,在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入 BEGIN IF LOCK=39。139。 AND LOCK39。EVENT THEN REGL = D 。 END IF。 END PROCESS LATCH1 。 END behav。CNT10B的VHDL源程序:LIBRARY IEEE。USE 。USE 。ENTITY CNT10B IS PORT (LOCK0,CLR : IN STD_LOGIC。 CLK : IN STD_LOGIC。 WE : IN STD_LOGIC。 DOUT : OUT STD_LOGIC_VECTOR(8 DOWNTO 0)。 CLKOUT : OUT STD_LOGIC )。 END CNT10B。ARCHITECTURE behav OF CNT10B IS SIGNAL CQI : STD_LOGIC_VECTOR(8 DOWNTO 0)。 SIGNAL CLK0 : STD_LOGIC。BEGINCLK0 = LOCK0 WHEN WE=39。139。 ELSE CLK。 PROCESS(CLK0,CLR,CQI) BEGIN IF CLR = 39。139。 THEN CQI = 000000000。 ELSIF CLK039。EVENT AND CLK0 = 39。139。 THEN CQI = CQI + 1。 END IF。 END PROCESS。 DOUT = CQI。 CLKOUT = CLK0。END behav。RAM8的VHDL源程序:LIBRARY ieee。USE 。LIBRARY lpm。USE 。ENTITY ram8 IS PORT ( address : IN STD_LOGIC_VECTOR (8 DOWNTO 0)。 data : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 inclock : IN STD_LOGIC 。 we : IN STD_LOGIC := 39。139。 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) )。END ram8。ARCHITECTURE SYN OF ram8 IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0)。 COMPONENT lpm_ram_dq GENERIC ( intended_device_family : STRING。 lpm_address_control : STRING。 lpm_indata : STRING。 lpm_outdata : STRING。 lpm_type : STRING。 lpm_width : NATURAL。 lpm_widthad : NATURAL )。 PORT ( address : IN STD_LOGIC_VECTOR (8 DOWNTO 0)。 inclock : IN STD_LOGIC 。 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)。 data : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 we : IN STD_LOGIC )。 END COMPONENT。BEGIN q = sub_wire0(7 DOWNTO 0)。 lpm_ram_dq_ponent : lpm_ram_dq GENERIC MAP ( intended_device_family = ACEX1K, lpm_address_control = REGISTERED, lpm_indata = REGISTERED, lpm_outdata = UNREGISTERED, lpm_type = LPM_RAM_DQ, lpm_width = 8, lpm_widthad = 9 ) PORT MAP ( address = address, inclock = inclock, data = data, we = we, q = sub_wire0 )。END SYN。23