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

Subversion Repositories rio

[/] [rio/] [branches/] [2.0.0-development/] [rtl/] [vhdl/] [RioCommon.vhd] - Diff between revs 45 and 46

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

Rev 45 Rev 46
Line 55... Line 55...
 
 
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- RioCommon package description.
-- RioCommon package description.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
package rio_common is
package rio_common is
 
 
 
  -----------------------------------------------------------------------------
 
  -- Primitive memory component declarations.
 
  -----------------------------------------------------------------------------
 
 
 
  component MemorySimpleDualPort
 
    generic(
 
      ADDRESS_WIDTH : natural := 1;
 
      DATA_WIDTH : natural := 1);
 
    port(
 
      clkA_i : in std_logic;
 
      enableA_i : in std_logic;
 
      addressA_i : in std_logic_vector(ADDRESS_WIDTH-1 downto 0);
 
      dataA_i : in std_logic_vector(DATA_WIDTH-1 downto 0);
 
 
 
      clkB_i : in std_logic;
 
      enableB_i : in std_logic;
 
      addressB_i : in std_logic_vector(ADDRESS_WIDTH-1 downto 0);
 
      dataB_o : out std_logic_vector(DATA_WIDTH-1 downto 0));
 
  end component;
 
 
 
  component MemoryDualPort is
 
    generic(
 
      ADDRESS_WIDTH : natural := 1;
 
      DATA_WIDTH : natural := 1);
 
    port(
 
      clkA_i : in std_logic;
 
      enableA_i : in std_logic;
 
      writeEnableA_i : in std_logic;
 
      addressA_i : in std_logic_vector(ADDRESS_WIDTH-1 downto 0);
 
      dataA_i : in std_logic_vector(DATA_WIDTH-1 downto 0);
 
      dataA_o : out std_logic_vector(DATA_WIDTH-1 downto 0);
 
 
 
      clkB_i : in std_logic;
 
      enableB_i : in std_logic;
 
      addressB_i : in std_logic_vector(ADDRESS_WIDTH-1 downto 0);
 
      dataB_o : out std_logic_vector(DATA_WIDTH-1 downto 0));
 
  end component;
 
 
 
  -----------------------------------------------------------------------------
 
  -- Logical layer component declarations.
 
  -----------------------------------------------------------------------------
 
 
 
  component RioLogicalCommon is
 
    generic(
 
      PORTS : natural);
 
    port(
 
      clk : in std_logic;
 
      areset_n : in std_logic;
 
      enable : in std_logic;
 
 
 
      readFrameEmpty_i : in std_logic;
 
      readFrame_o : out std_logic;
 
      readContent_o : out std_logic;
 
      readContentEnd_i : in std_logic;
 
      readContentData_i : in std_logic_vector(31 downto 0);
 
 
 
      writeFrameFull_i : in std_logic;
 
      writeFrame_o : out std_logic;
 
      writeFrameAbort_o : out std_logic;
 
      writeContent_o : out std_logic;
 
      writeContentData_o : out std_logic_vector(31 downto 0);
 
 
 
      inboundCyc_o : out std_logic;
 
      inboundStb_o : out std_logic;
 
      inboundAdr_o : out std_logic_vector(7 downto 0);
 
      inboundDat_o : out std_logic_vector(31 downto 0);
 
      inboundAck_i : in std_logic;
 
 
 
      outboundCyc_i : in std_logic_vector(PORTS-1 downto 0);
 
      outboundStb_i : in std_logic_vector(PORTS-1 downto 0);
 
      outboundDat_i : in std_logic_vector(32*PORTS-1 downto 0);
 
      outboundAck_o : out std_logic_vector(PORTS-1 downto 0));
 
  end component;
 
 
 
  component RioLogicalMaintenance is
 
    port(
 
      clk : in std_logic;
 
      areset_n : in std_logic;
 
      enable : in std_logic;
 
 
 
      readRequestReady_i : in std_logic;
 
      writeRequestReady_i : in std_logic;
 
      offset_i : in std_logic_vector(20 downto 0);
 
      wdptr_i : in std_logic;
 
      payloadLength_i : in std_logic_vector(3 downto 0);
 
      payloadIndex_o : out std_logic_vector(3 downto 0);
 
      payload_i : in std_logic_vector(31 downto 0);
 
      done_o : out std_logic;
 
 
 
      readResponseReady_o : out std_logic;
 
      writeResponseReady_o : out std_logic;
 
      wdptr_o : out std_logic;
 
      payloadLength_o : out std_logic_vector(3 downto 0);
 
      payloadIndex_i : in std_logic_vector(3 downto 0);
 
      payload_o : out std_logic_vector(31 downto 0);
 
      done_i : in std_logic;
 
 
 
      configStb_o : out std_logic;
 
      configWe_o : out std_logic;
 
      configAdr_o : out std_logic_vector(21 downto 0);
 
      configDat_o : out std_logic_vector(31 downto 0);
 
      configDat_i : in std_logic_vector(31 downto 0);
 
      configAck_i : in std_logic);
 
  end component;
 
 
 
  component MaintenanceInbound is
 
    port(
 
      clk : in std_logic;
 
      areset_n : in std_logic;
 
      enable : in std_logic;
 
 
 
      readRequestReady_o : out std_logic;
 
      writeRequestReady_o : out std_logic;
 
      readResponseReady_o : out std_logic;
 
      writeResponseReady_o : out std_logic;
 
      portWriteReady_o : out std_logic;
 
      vc_o : out std_logic;
 
      crf_o : out std_logic;
 
      prio_o : out std_logic_vector(1 downto 0);
 
      tt_o : out std_logic_vector(1 downto 0);
 
      dstid_o : out std_logic_vector(31 downto 0);
 
      srcid_o : out std_logic_vector(31 downto 0);
 
      tid_o : out std_logic_vector(7 downto 0);
 
      hop_o : out std_logic_vector(7 downto 0);
 
      offset_o : out std_logic_vector(20 downto 0);
 
      wdptr_o : out std_logic;
 
      payloadLength_o : out std_logic_vector(3 downto 0);
 
      payloadIndex_i : in std_logic_vector(3 downto 0);
 
      payload_o : out std_logic_vector(31 downto 0);
 
      done_i : in std_logic;
 
 
 
      inboundCyc_i : in std_logic;
 
      inboundStb_i : in std_logic;
 
      inboundAdr_i : in std_logic_vector(7 downto 0);
 
      inboundDat_i : in std_logic_vector(31 downto 0);
 
      inboundAck_o : out std_logic);
 
  end component;
 
 
 
  component MaintenanceOutbound is
 
    port(
 
      clk : in std_logic;
 
      areset_n : in std_logic;
 
      enable : in std_logic;
 
 
 
      readRequestReady_i : in std_logic;
 
      writeRequestReady_i : in std_logic;
 
      readResponseReady_i : in std_logic;
 
      writeResponseReady_i : in std_logic;
 
      portWriteReady_i : in std_logic;
 
      vc_i : in std_logic;
 
      crf_i : in std_logic;
 
      prio_i : in std_logic_vector(1 downto 0);
 
      tt_i : in std_logic_vector(1 downto 0);
 
      dstid_i : in std_logic_vector(31 downto 0);
 
      srcid_i : in std_logic_vector(31 downto 0);
 
      status_i : in std_logic_vector(3 downto 0);
 
      tid_i : in std_logic_vector(7 downto 0);
 
      hop_i : in std_logic_vector(7 downto 0);
 
      offset_i : in std_logic_vector(20 downto 0);
 
      wdptr_i : in std_logic;
 
      payloadLength_i : in std_logic_vector(3 downto 0);
 
      payloadIndex_o : out std_logic_vector(3 downto 0);
 
      payload_i : in std_logic_vector(31 downto 0);
 
      done_o : out std_logic;
 
 
 
      outboundCyc_o : out std_logic;
 
      outboundStb_o : out std_logic;
 
      outboundDat_o : out std_logic_vector(31 downto 0);
 
      outboundAck_i : in std_logic);
 
  end component;
 
 
 
  component RioPacketBuffer is
 
    generic(
 
      SIZE_ADDRESS_WIDTH : natural := 6;
 
      CONTENT_ADDRESS_WIDTH : natural := 8);
 
    port(
 
      clk : in std_logic;
 
      areset_n : in std_logic;
 
 
 
      inboundWriteFrameFull_o : out std_logic;
 
      inboundWriteFrame_i : in std_logic;
 
      inboundWriteFrameAbort_i : in std_logic;
 
      inboundWriteContent_i : in std_logic;
 
      inboundWriteContentData_i : in std_logic_vector(31 downto 0);
 
      inboundReadFrameEmpty_o : out std_logic;
 
      inboundReadFrame_i : in std_logic;
 
      inboundReadFrameRestart_i : in std_logic;
 
      inboundReadFrameAborted_o : out std_logic;
 
      inboundReadContentEmpty_o : out std_logic;
 
      inboundReadContent_i : in std_logic;
 
      inboundReadContentEnd_o : out std_logic;
 
      inboundReadContentData_o : out std_logic_vector(31 downto 0);
 
 
 
      outboundWriteFrameFull_o : out std_logic;
 
      outboundWriteFrame_i : in std_logic;
 
      outboundWriteFrameAbort_i : in std_logic;
 
      outboundWriteContent_i : in std_logic;
 
      outboundWriteContentData_i : in std_logic_vector(31 downto 0);
 
      outboundReadFrameEmpty_o : out std_logic;
 
      outboundReadFrame_i : in std_logic;
 
      outboundReadFrameRestart_i : in std_logic;
 
      outboundReadFrameAborted_o : out std_logic;
 
      outboundReadContentEmpty_o : out std_logic;
 
      outboundReadContent_i : in std_logic;
 
      outboundReadContentEnd_o : out std_logic;
 
      outboundReadContentData_o : out std_logic_vector(31 downto 0));
 
  end component;
 
 
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  -- Commonly used types.
  -- Commonly used types.
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  type Array1 is array (natural range <>) of
  type Array1 is array (natural range <>) of
    std_logic;
    std_logic;

powered by: WebSVN 2.1.0

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