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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.6/] [rtl/] [w11a/] [pdp11_irq.vhd] - Diff between revs 2 and 8

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

Rev 2 Rev 8
Line 1... Line 1...
-- $Id: pdp11_irq.vhd 314 2010-07-09 17:38:41Z mueller $
-- $Id: pdp11_irq.vhd 335 2010-10-24 22:24:23Z mueller $
--
--
-- Copyright 2007-2008 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2007-2010 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
--
-- This program is free software; you may redistribute and/or modify it under
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
-- the terms of the GNU General Public License as published by the Free
-- Software Foundation, either version 2, or at your option any later version.
-- Software Foundation, either version 2, or at your option any later version.
--
--
Line 13... Line 13...
--
--
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-- Module Name:    pdp11_irq - syn
-- Module Name:    pdp11_irq - syn
-- Description:    pdp11: interrupt requester
-- Description:    pdp11: interrupt requester
--
--
-- Dependencies:   -
-- Dependencies:   ib_sel
-- Test bench:     tb/tb_pdp11_core (implicit)
-- Test bench:     tb/tb_pdp11_core (implicit)
-- Target Devices: generic
-- Target Devices: generic
-- Tool versions:  xst 8.1, 8.2, 9.1, 9.2; ghdl 0.18-0.25
-- Tool versions:  xst 8.1, 8.2, 9.1, 9.2, 12.1; ghdl 0.18-0.29
 
--
-- Revision History: 
-- Revision History: 
-- Date         Rev Version  Comment
-- Date         Rev Version  Comment
 
-- 2010-10-23   335   1.2.1  use ib_sel
 
-- 2010-10-17   333   1.2    use ibus V2 interface
-- 2008-08-22   161   1.1.4  use iblib
-- 2008-08-22   161   1.1.4  use iblib
-- 2008-04-25   138   1.1.3  use BRESET to clear pirq
-- 2008-04-25   138   1.1.3  use BRESET to clear pirq
-- 2008-01-06   111   1.1.2  rename signal EI_ACK->EI_ACKM (master ack)
-- 2008-01-06   111   1.1.2  rename signal EI_ACK->EI_ACKM (master ack)
-- 2008-01-05   110   1.1.1  rename IB_MREQ(ena->req) SRES(sel->ack, hold->busy)
-- 2008-01-05   110   1.1.1  rename IB_MREQ(ena->req) SRES(sel->ack, hold->busy)
-- 2007-12-30   107   1.1    use IB_MREQ/IB_SRES interface now
-- 2007-12-30   107   1.1    use IB_MREQ/IB_SRES interface now
Line 71... Line 74...
--  attribute PRIORITY_EXTRACT : string;
--  attribute PRIORITY_EXTRACT : string;
--  attribute PRIORITY_EXTRACT of PI_PRI : signal is "force";
--  attribute PRIORITY_EXTRACT of PI_PRI : signal is "force";
 
 
begin
begin
 
 
  proc_ibsel: process (IB_MREQ)
  SEL : ib_sel
    variable ipirq : slbit := '0';
    generic map (
  begin
      IB_ADDR => ibaddr_pirq)
    ipirq := '0';
    port map (
    if IB_MREQ.req='1' and IB_MREQ.addr=ibaddr_pirq(12 downto 1) then
      CLK     => CLK,
      ipirq := '1';
      IB_MREQ => IB_MREQ,
    end if;
      SEL     => IBSEL_PIRQ
    IBSEL_PIRQ   <= ipirq;
    );
    IB_SRES.ack  <= ipirq;
 
    IB_SRES.busy <= '0';
 
  end process proc_ibsel;
 
 
 
  proc_ibdout : process (IBSEL_PIRQ, R_PIRQ, PI_PRI)
  proc_ibres : process (IBSEL_PIRQ, IB_MREQ, R_PIRQ, PI_PRI)
    variable pirqout : slv16 := (others=>'0');
    variable idout : slv16 := (others=>'0');
  begin
  begin
    pirqout := (others=>'0');
    idout := (others=>'0');
    if IBSEL_PIRQ = '1' then
    if IBSEL_PIRQ = '1' then
      pirqout(pirq_ubf_pir)   := R_PIRQ;
      idout(pirq_ubf_pir)   := R_PIRQ;
      pirqout(pirq_ubf_pia_h) := PI_PRI;
      idout(pirq_ubf_pia_h) := PI_PRI;
      pirqout(pirq_ubf_pia_l) := PI_PRI;
      idout(pirq_ubf_pia_l) := PI_PRI;
    end if;
    end if;
    IB_SRES.dout <= pirqout;
    IB_SRES.dout <= idout;
  end process proc_ibdout;
    IB_SRES.ack  <= IBSEL_PIRQ and (IB_MREQ.re or IB_MREQ.we); -- ack all
 
    IB_SRES.busy <= '0';
 
  end process proc_ibres;
 
 
  proc_pirq : process (CLK)
  proc_pirq : process (CLK)
  begin
  begin
    if CLK'event and CLK='1' then
    if CLK'event and CLK='1' then
      if BRESET = '1' then
      if BRESET = '1' then

powered by: WebSVN 2.1.0

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