123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- library IEEE;
- use IEEE.STD_LOGIC_1164.ALL;
- use IEEE.std_logic_arith.ALL;
- use IEEE.STD_LOGIC_UNSIGNED.ALL;
- entity myfirst_niosii is port (
- clk: in std_logic;
- rst: in std_logic;
- pio_led: out std_logic_vector(31 downto 0);
- toggle_button: in std_logic;
- toggle_led: out std_logic
- );
- end myfirst_niosii;
- architecture behav of myfirst_niosii is
- component nios2_uc is
- port (
- clk_clk : in std_logic := 'X'; -- clk
- pio_led_ext_conn_export : out std_logic_vector(31 downto 0); -- export
- reset_reset_n : in std_logic := 'X' -- reset_n
- );
- end component nios2_uc;
-
- signal toggle_led_s: std_logic := '0';
- signal state: std_logic := '0';
- signal counter: integer range 0 to 2**15-1 := 0;
- begin
-
- u0 : component nios2_uc
- port map (
- clk_clk => clk, -- clk.clk
- pio_led_ext_conn_export => pio_led, -- pio_led_ext_conn.export
- reset_reset_n => rst -- reset.reset_n
- );
-
-
- toggle: process(clk, rst)
-
- begin
- if rst = '0' then
- counter <= 0;
- state <= '0';
- elsif rising_edge(clk) then
- if counter = 2**15-1 then
- counter <= 0;
- if toggle_button = not state then
- state <= toggle_button;
- if toggle_button = '1' then
- toggle_led_s <= not toggle_led_s;
- end if;
- end if;
- else
- counter <= counter + 1;
- end if;
- end if;
- end process;
-
- toggle_led <= toggle_led_s;
- end behav;
|