OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [rtl/] [core/] [neorv32_xirq.vhd] - Diff between revs 66 and 69

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 66 Rev 69
Line 208... Line 208...
  -- IRQ Arbiter --------------------------------------------------------------
  -- IRQ Arbiter --------------------------------------------------------------
  -- -----------------------------------------------------------------------------
  -- -----------------------------------------------------------------------------
  irq_arbiter: process(clk_i)
  irq_arbiter: process(clk_i)
  begin
  begin
    if rising_edge(clk_i) then
    if rising_edge(clk_i) then
 
      cpu_irq_o <= '0';
      if (irq_run = '0') then -- no active IRQ
      if (irq_run = '0') then -- no active IRQ
        if (irq_fire = '1') then
        if (irq_fire = '1') then
 
          cpu_irq_o <= '1';
          irq_run <= '1';
          irq_run <= '1';
          irq_src <= irq_src_nxt;
          irq_src <= irq_src_nxt;
        end if;
        end if;
      else -- active IRQ, wait for CPU to acknowledge
      else -- active IRQ, wait for CPU to acknowledge
        if (wren = '1') and (addr = xirq_source_addr_c) then -- write _any_ value to acknowledge
        if (wren = '1') and (addr = xirq_source_addr_c) then -- write _any_ value to acknowledge
Line 221... Line 223...
        end if;
        end if;
      end if;
      end if;
    end if;
    end if;
  end process irq_arbiter;
  end process irq_arbiter;
 
 
  -- interrupt request --
 
  cpu_irq_o <= irq_run;
 
 
 
 
 
end neorv32_xirq_rtl;
end neorv32_xirq_rtl;
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.