【文章內(nèi)容簡介】
le = , lpm_type = LPM_ROM) PORT MAP (address = address, q = sub_wire0)。END SYN。2,制作計數(shù)器模塊COUNTER實驗步驟如上::LIBRARY ieee。USE 。LIBRARY lpm。USE 。ENTITY counter IS PORT(clk_en : IN STD_LOGIC 。 clock : IN STD_LOGIC 。 q : OUT STD_LOGIC_VECTOR (5 DOWNTO 0))。END counter。ARCHITECTURE SYN OF counter IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (5 DOWNTO 0)。 COMPONENT lpm_counter GENERIC (lpm_direction : STRING。 lpm_port_updown : STRING。 lpm_type : STRING。 lpm_width : NATURAL)。 PORT (clk_en : IN STD_LOGIC 。 clock : IN STD_LOGIC 。 q : OUT STD_LOGIC_VECTOR (5 DOWNTO 0))。 END COMPONENT。BEGIN q = sub_wire0(5 DOWNTO 0)。 lpm_counter_ponent : lpm_counter GENERIC MAP ( lpm_direction = UP, lpm_port_updown = PORT_UNUSED, lpm_type = LPM_COUNTER, lpm_width = 6) PORT MAP (clk_en = clk_en, clock = clock, q = sub_wire0)。END SYN。3,制作數(shù)控分頻器SPKEAR模塊LIBRARY IEEE。USE 。USE 。ENTITY speaker IS PORT(CLK: IN STD_LOGIC。 tone:IN integer range 0 to 2048。 spks:out std_logic)。END speaker。ARCHITECTURE ONE OF speaker IS SIGNAL FULL: STD_LOGIC。 BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8:integer range 0 to 2048。 BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN IF CNT8=2048 THEN CNT8:=tone。 FULL=39。139。 ELSE CNT8:=CNT8+1。 FULL=39。039。 END IF。 END IF。 END PROCESS P_REG。 P_DIV:PROCESS(FULL) VARIABLE CNT2:STD_LOGIC。 BEGIN IF FULL39。EVENT AND FULL=39。139。 THEN CNT2:=NOT CNT2。 IF CNT2=39。139。 THEN spks=39。139。 ELSE spks=39。039。 END IF。 END IF。 END PROCESS P_DIV。END ONE。4,制作TONE TAB模塊library ieee。use 。use 。entity tonetab is port(index: in std_logic_vector(2 down