📄 counter_100.vhd
字号:
------------------------------------------- QUARTUS II TECHNICAL TRAINING ---- 2-Digit Decimal ---- Modulus-100 Counter -------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;use IEEE.STD_LOGIC_ARITH.ALL;entity COUNTER_100 IS port ( CLK : in std_logic;-- CLR : in std_logic; -- Removed as is it unnecessary. All registers p0wer -- up low ONES_OUT : out std_logic_vector (5 downto 0); TENS_OUT : out std_logic_vector (5 downto 0); ROW_OUT : out std_logic_vector (7 downto 0) );end entity COUNTER_100;architecture LOGIC of COUNTER_100 is signal CLR : std_logic; signal MEM_COUNT_OUT : std_logic_vector (2 downto 0); signal CNT_ONE_OUT : std_logic_vector (3 downto 0); signal CNT_TEN_OUT : std_logic_vector (3 downto 0); signal LED_IN_ONES : std_logic_vector (6 downto 0); signal LED_IN_TENS : std_logic_vector (6 downto 0); signal Q_A_OUT : std_logic_vector (7 downto 0); signal Q_B_OUT : std_logic_vector (7 downto 0); component MEM_COUNT is -- Counter port ( CLK : in std_logic; RESET : in std_logic; CNT : out std_logic_vector(2 downto 0) ); end component MEM_COUNT;-------- LED_STORAGE : ROM to store number patterns for LED display ----------- component LED_STORAGE PORT ( clock : IN STD_LOGIC ; aclr : IN STD_LOGIC := '0'; address_a : IN STD_LOGIC_VECTOR (6 DOWNTO 0); address_b : IN STD_LOGIC_VECTOR (6 DOWNTO 0); q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); q_b : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); end component LED_STORAGE;--------- COUNTER : Two digit decimal counter --------------------------------- component COUNTER generic ( PRESCALER : integer ); port( CLOCK : in std_logic; RESET : in std_logic; CNT_ONE : out std_logic_vector(3 downto 0); CNT_TEN : out std_logic_vector(3 downto 0) ); end component COUNTER; --------- ROW_MEM : ROM which cycles rows for LED display--------- component row_mem PORT ( address : IN STD_LOGIC_VECTOR (2 DOWNTO 0); clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); end component; begin CLR <= '1'; MEM_COUNT_INT : MEM_COUNT port map ( CLK => CLK, RESET => CLR, CNT => MEM_COUNT_OUT ); LED_STORAGE_INST : LED_STORAGE port map ( clock => CLK, aclr => CLR, address_a => LED_IN_ONES, address_b => LED_IN_TENS, q_a => q_a_out, q_b => q_b_out ); COUNTER_INST : COUNTER generic map ( PRESCALER => 8388608 * 2 ) port map ( CLOCK => CLK, RESET => CLR, CNT_ONE => CNT_ONE_OUT, CNT_TEN => CNT_TEN_OUT ); row_mem_inst : row_mem port map ( address => MEM_COUNT_OUT, clock => CLK, q => ROW_OUT ); LED_IN_ONES <= MEM_COUNT_OUT + (CNT_ONE_OUT & "000"); LED_IN_TENS <= MEM_COUNT_OUT + (CNT_TEN_OUT & "000"); ONES_OUT <= Q_A_OUT(5 downto 0); TENS_OUT <= Q_B_OUT(5 downto 0);end architecture LOGIC;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -