Line 85... |
Line 85... |
writeContent_o : out Array1(SWITCH_PORTS-1 downto 0);
|
writeContent_o : out Array1(SWITCH_PORTS-1 downto 0);
|
writeContentData_o : out Array32(SWITCH_PORTS-1 downto 0);
|
writeContentData_o : out Array32(SWITCH_PORTS-1 downto 0);
|
|
|
readFrameEmpty_i : in Array1(SWITCH_PORTS-1 downto 0);
|
readFrameEmpty_i : in Array1(SWITCH_PORTS-1 downto 0);
|
readFrame_o : out Array1(SWITCH_PORTS-1 downto 0);
|
readFrame_o : out Array1(SWITCH_PORTS-1 downto 0);
|
readFrameRestart_o : out Array1(SWITCH_PORTS-1 downto 0);
|
|
readFrameAborted_i : in Array1(SWITCH_PORTS-1 downto 0);
|
|
readContentEmpty_i : in Array1(SWITCH_PORTS-1 downto 0);
|
|
readContent_o : out Array1(SWITCH_PORTS-1 downto 0);
|
readContent_o : out Array1(SWITCH_PORTS-1 downto 0);
|
readContentEnd_i : in Array1(SWITCH_PORTS-1 downto 0);
|
readContentEnd_i : in Array1(SWITCH_PORTS-1 downto 0);
|
readContentData_i : in Array32(SWITCH_PORTS-1 downto 0);
|
readContentData_i : in Array32(SWITCH_PORTS-1 downto 0);
|
|
|
portLinkTimeout_o : out std_logic_vector(23 downto 0);
|
portLinkTimeout_o : out std_logic_vector(23 downto 0);
|
Line 255... |
Line 252... |
lookupData_i : in std_logic_vector(7 downto 0);
|
lookupData_i : in std_logic_vector(7 downto 0);
|
lookupAck_i : in std_logic;
|
lookupAck_i : in std_logic;
|
|
|
readFrameEmpty_i : in std_logic;
|
readFrameEmpty_i : in std_logic;
|
readFrame_o : out std_logic;
|
readFrame_o : out std_logic;
|
readFrameRestart_o : out std_logic;
|
|
readFrameAborted_i : in std_logic;
|
|
readContentEmpty_i : in std_logic;
|
|
readContent_o : out std_logic;
|
readContent_o : out std_logic;
|
readContentEnd_i : in std_logic;
|
readContentEnd_i : in std_logic;
|
readContentData_i : in std_logic_vector(31 downto 0);
|
readContentData_i : in std_logic_vector(31 downto 0);
|
writeFramePort_o : out std_logic_vector(9 downto 0);
|
writeFramePort_o : out std_logic_vector(9 downto 0);
|
writeFrameFull_i : in std_logic;
|
writeFrameFull_i : in std_logic;
|
Line 333... |
Line 327... |
generic map(
|
generic map(
|
MAINTENANCE_LOOKUP=>false,
|
MAINTENANCE_LOOKUP=>false,
|
PORT_INDEX=>portIndex)
|
PORT_INDEX=>portIndex)
|
port map(
|
port map(
|
clk=>clk, areset_n=>areset_n,
|
clk=>clk, areset_n=>areset_n,
|
masterCyc_o=>masterCyc(portIndex), masterStb_o=>masterStb(portIndex),
|
masterCyc_o=>masterCyc(portIndex),
|
masterWe_o=>masterWe(portIndex), masterAddr_o=>masterAddr(portIndex),
|
masterStb_o=>masterStb(portIndex),
|
|
masterWe_o=>masterWe(portIndex),
|
|
masterAddr_o=>masterAddr(portIndex),
|
masterData_o=>masterDataWrite(portIndex),
|
masterData_o=>masterDataWrite(portIndex),
|
masterData_i=>masterDataRead(portIndex), masterAck_i=>masterAck(portIndex),
|
masterData_i=>masterDataRead(portIndex),
|
slaveCyc_i=>slaveCyc(portIndex), slaveStb_i=>slaveStb(portIndex),
|
masterAck_i=>masterAck(portIndex),
|
slaveWe_i=>slaveWe(portIndex), slaveAddr_i=>slaveAddr(portIndex),
|
slaveCyc_i=>slaveCyc(portIndex),
|
|
slaveStb_i=>slaveStb(portIndex),
|
|
slaveWe_i=>slaveWe(portIndex),
|
|
slaveAddr_i=>slaveAddr(portIndex),
|
slaveData_i=>slaveDataWrite(portIndex),
|
slaveData_i=>slaveDataWrite(portIndex),
|
slaveData_o=>slaveDataRead(portIndex), slaveAck_o=>slaveAck(portIndex),
|
slaveData_o=>slaveDataRead(portIndex),
|
|
slaveAck_o=>slaveAck(portIndex),
|
lookupStb_o=>masterLookupStb(portIndex),
|
lookupStb_o=>masterLookupStb(portIndex),
|
lookupAddr_o=>masterLookupAddr(portIndex),
|
lookupAddr_o=>masterLookupAddr(portIndex),
|
lookupData_i=>masterLookupData(portIndex), lookupAck_i=>masterLookupAck(portIndex),
|
lookupData_i=>masterLookupData(portIndex),
|
readFrameEmpty_i=>readFrameEmpty_i(portIndex), readFrame_o=>readFrame_o(portIndex),
|
lookupAck_i=>masterLookupAck(portIndex),
|
readFrameRestart_o=>readFrameRestart_o(portIndex),
|
readFrameEmpty_i=>readFrameEmpty_i(portIndex),
|
readFrameAborted_i=>readFrameAborted_i(portIndex),
|
readFrame_o=>readFrame_o(portIndex),
|
readContentEmpty_i=>readContentEmpty_i(portIndex), readContent_o=>readContent_o(portIndex),
|
readContent_o=>readContent_o(portIndex),
|
readContentEnd_i=>readContentEnd_i(portIndex), readContentData_i=>readContentData_i(portIndex),
|
readContentEnd_i=>readContentEnd_i(portIndex),
|
|
readContentData_i=>readContentData_i(portIndex),
|
writeFramePort_o=>open,
|
writeFramePort_o=>open,
|
writeFrameFull_i=>writeFrameFull_i(portIndex), writeFrame_o=>writeFrame_o(portIndex),
|
writeFrameFull_i=>writeFrameFull_i(portIndex),
|
writeFrameAbort_o=>writeFrameAbort_o(portIndex), writeContent_o=>writeContent_o(portIndex),
|
writeFrame_o=>writeFrame_o(portIndex),
|
|
writeFrameAbort_o=>writeFrameAbort_o(portIndex),
|
|
writeContent_o=>writeContent_o(portIndex),
|
writeContentData_o=>writeContentData_o(portIndex));
|
writeContentData_o=>writeContentData_o(portIndex));
|
end generate;
|
end generate;
|
|
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
-- Maintenance port instantiation.
|
-- Maintenance port instantiation.
|
Line 445... |
Line 448... |
lookupAck_i : in std_logic;
|
lookupAck_i : in std_logic;
|
|
|
-- Physical port frame buffer interface.
|
-- Physical port frame buffer interface.
|
readFrameEmpty_i : in std_logic;
|
readFrameEmpty_i : in std_logic;
|
readFrame_o : out std_logic;
|
readFrame_o : out std_logic;
|
readFrameRestart_o : out std_logic;
|
|
readFrameAborted_i : in std_logic;
|
|
readContentEmpty_i : in std_logic;
|
|
readContent_o : out std_logic;
|
readContent_o : out std_logic;
|
readContentEnd_i : in std_logic;
|
readContentEnd_i : in std_logic;
|
readContentData_i : in std_logic_vector(31 downto 0);
|
readContentData_i : in std_logic_vector(31 downto 0);
|
writeFramePort_o : out std_logic_vector(7 downto 0);
|
writeFramePort_o : out std_logic_vector(7 downto 0);
|
writeFrameFull_i : in std_logic;
|
writeFrameFull_i : in std_logic;
|
Line 500... |
Line 500... |
masterAddr_o <= (others => '0');
|
masterAddr_o <= (others => '0');
|
masterData_o <= (others => '0');
|
masterData_o <= (others => '0');
|
|
|
readContent_o <= '0';
|
readContent_o <= '0';
|
readFrame_o <= '0';
|
readFrame_o <= '0';
|
readFrameRestart_o <= '0';
|
|
elsif (clk'event and clk = '1') then
|
elsif (clk'event and clk = '1') then
|
readContent_o <= '0';
|
readContent_o <= '0';
|
readFrame_o <= '0';
|
readFrame_o <= '0';
|
readFrameRestart_o <= '0';
|
|
|
|
case masterState is
|
case masterState is
|
|
|
when STATE_IDLE =>
|
when STATE_IDLE =>
|
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
Line 941... |
Line 939... |
lookupData_i : in std_logic_vector(7 downto 0);
|
lookupData_i : in std_logic_vector(7 downto 0);
|
lookupAck_i : in std_logic;
|
lookupAck_i : in std_logic;
|
|
|
readFrameEmpty_i : in std_logic;
|
readFrameEmpty_i : in std_logic;
|
readFrame_o : out std_logic;
|
readFrame_o : out std_logic;
|
readFrameRestart_o : out std_logic;
|
|
readFrameAborted_i : in std_logic;
|
|
readContentEmpty_i : in std_logic;
|
|
readContent_o : out std_logic;
|
readContent_o : out std_logic;
|
readContentEnd_i : in std_logic;
|
readContentEnd_i : in std_logic;
|
readContentData_i : in std_logic_vector(31 downto 0);
|
readContentData_i : in std_logic_vector(31 downto 0);
|
writeFramePort_o : out std_logic_vector(7 downto 0);
|
writeFramePort_o : out std_logic_vector(7 downto 0);
|
writeFrameFull_i : in std_logic;
|
writeFrameFull_i : in std_logic;
|
Line 1127... |
Line 1122... |
lookupAddr_o=>open,
|
lookupAddr_o=>open,
|
lookupData_i=>outboundFramePort0,
|
lookupData_i=>outboundFramePort0,
|
lookupAck_i=>'1',
|
lookupAck_i=>'1',
|
readFrameEmpty_i=>outboundReadFrameEmpty,
|
readFrameEmpty_i=>outboundReadFrameEmpty,
|
readFrame_o=>outboundReadFrame,
|
readFrame_o=>outboundReadFrame,
|
readFrameRestart_o=>open,
|
|
readFrameAborted_i=>'0',
|
|
readContentEmpty_i=>'0',
|
|
readContent_o=>outboundReadContent,
|
readContent_o=>outboundReadContent,
|
readContentEnd_i=>outboundReadContentEnd,
|
readContentEnd_i=>outboundReadContentEnd,
|
readContentData_i=>outboundReadContentData,
|
readContentData_i=>outboundReadContentData,
|
writeFramePort_o=>inboundFramePort0,
|
writeFramePort_o=>inboundFramePort0,
|
writeFrameFull_i=>inboundWriteFrameFull,
|
writeFrameFull_i=>inboundWriteFrameFull,
|
Line 2108... |
Line 2100... |
|
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
-- Interconnection matrix.
|
-- Interconnection matrix.
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
Interconnect: for i in 0 to WIDTH-1 generate
|
Interconnect: for i in 0 to WIDTH-1 generate
|
slaveCyc_o(i) <= masterCyc_i(selectedMaster) when (selectedSlave = i) else '0';
|
slaveCyc_o(i) <= masterCyc_i(selectedMaster) when ((activeCycle = '1') and (selectedSlave = i)) else '0';
|
slaveStb_o(i) <= masterStb_i(selectedMaster) when (selectedSlave = i) else '0';
|
slaveStb_o(i) <= masterStb_i(selectedMaster) when ((activeCycle = '1') and (selectedSlave = i)) else '0';
|
slaveWe_o(i) <= masterWe_i(selectedMaster);
|
slaveWe_o(i) <= masterWe_i(selectedMaster);
|
slaveAddr_o(i) <= masterAddr_i(selectedMaster);
|
slaveAddr_o(i) <= masterAddr_i(selectedMaster);
|
slaveData_o(i) <= masterData_i(selectedMaster);
|
slaveData_o(i) <= masterData_i(selectedMaster);
|
masterData_o(i) <= slaveData_i(selectedSlave);
|
masterData_o(i) <= slaveData_i(selectedSlave);
|
masterAck_o(i) <= slaveAck_i(selectedSlave) when (selectedMaster = i) else '0';
|
masterAck_o(i) <= slaveAck_i(selectedSlave) when (selectedMaster = i) else '0';
|