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

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [rtl/] [core/] [neorv32_xirq.vhd] - Diff between revs 64 and 65

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

Rev 64 Rev 65
Line 210... Line 210...
  -- 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 (host_ack = '1') then
        if (host_ack = '1') then
Line 225... 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.