Line 73... |
Line 73... |
clk : in std_logic;
|
clk : in std_logic;
|
areset_n : in std_logic;
|
areset_n : in std_logic;
|
|
|
frameValid_i : in std_logic_vector(0 to 63);
|
frameValid_i : in std_logic_vector(0 to 63);
|
frameWrite_i : in RioFrameArray(0 to 63);
|
frameWrite_i : in RioFrameArray(0 to 63);
|
frameComplete_o : out std_logic;
|
frameComplete_o : out std_logic_vector(0 to 63);
|
|
|
frameExpected_i : in std_logic;
|
frameExpected_i : in std_logic;
|
frameRead_i : in RioFrame;
|
frameRead_i : in RioFrame;
|
frameReceived_o : out std_logic;
|
frameReceived_o : out std_logic;
|
|
|
Line 196... |
Line 196... |
signal writeContent : std_logic;
|
signal writeContent : std_logic;
|
signal writeContentData : std_logic_vector(2+(32*NUMBER_WORDS-1) downto 0);
|
signal writeContentData : std_logic_vector(2+(32*NUMBER_WORDS-1) downto 0);
|
|
|
signal frameValid : std_logic_vector(0 to 63);
|
signal frameValid : std_logic_vector(0 to 63);
|
signal frameWrite : RioFrameArray(0 to 63);
|
signal frameWrite : RioFrameArray(0 to 63);
|
signal frameComplete : std_logic;
|
signal frameComplete : std_logic_vector(0 to 63);
|
signal frameExpected : std_logic;
|
signal frameExpected : std_logic;
|
signal frameRead : RioFrame;
|
signal frameRead : RioFrame;
|
signal frameReceived : std_logic;
|
signal frameReceived : std_logic;
|
|
|
begin
|
begin
|
Line 1396... |
Line 1396... |
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
-- Wait for the frame to complete.
|
-- Wait for the frame to complete.
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(0) = '1' and clk'event and clk = '1';
|
frameValid(0) <= '0';
|
frameValid(0) <= '0';
|
|
|
-- Receive the end of the frame.
|
-- Receive the end of the frame.
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
Line 1443... |
Line 1443... |
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
-- Wait for the frame to complete.
|
-- Wait for the frame to complete.
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(1) = '1' and clk'event and clk = '1';
|
frameValid(1) <= '0';
|
frameValid(1) <= '0';
|
|
|
-- Receive the end of the frame.
|
-- Receive the end of the frame.
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
Line 1517... |
Line 1517... |
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
-- Wait for the frame to complete.
|
-- Wait for the frame to complete.
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(2) = '1' and clk'event and clk = '1';
|
frameValid(2) <= '0';
|
frameValid(2) <= '0';
|
|
|
-- Receive the end of the retransmitted frame.
|
-- Receive the end of the retransmitted frame.
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
Line 1592... |
Line 1592... |
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
-- Wait for the frame to complete.
|
-- Wait for the frame to complete.
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(3) = '1' and clk'event and clk = '1';
|
frameValid(3) <= '0';
|
frameValid(3) <= '0';
|
|
|
-- Receive the end of the retransmitted frame.
|
-- Receive the end of the retransmitted frame.
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
Line 1662... |
Line 1662... |
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
-- Wait for the frame to complete.
|
-- Wait for the frame to complete.
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(4) = '1' and clk'event and clk = '1';
|
frameValid(4) <= '0';
|
frameValid(4) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 1704... |
Line 1704... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(5) = '1' and clk'event and clk = '1';
|
frameValid(5) <= '0';
|
frameValid(5) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 1817... |
Line 1817... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(6) = '1' and clk'event and clk = '1';
|
frameValid(6) <= '0';
|
frameValid(6) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 1901... |
Line 1901... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(7) = '1' and clk'event and clk = '1';
|
frameValid(7) <= '0';
|
frameValid(7) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 1973... |
Line 1973... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(8) = '1' and clk'event and clk = '1';
|
frameValid(8) <= '0';
|
frameValid(8) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 2034... |
Line 2034... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(9) = '1' and clk'event and clk = '1';
|
frameValid(9) <= '0';
|
frameValid(9) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 2072... |
Line 2072... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frame.length-1 loop
|
for i in 0 to frame.length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frame.payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(10) = '1' and clk'event and clk = '1';
|
frameValid(10) <= '0';
|
frameValid(10) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 2134... |
Line 2134... |
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frameWrite(11).length-1 loop
|
for i in 0 to frameWrite(11).length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(11).payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(11).payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
|
frameValid(11) <= '0';
|
|
|
|
-- Receive the frame.
|
-- Receive the frame.
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frameWrite(12).length-1 loop
|
for i in 0 to frameWrite(12).length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(12).payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(12).payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(11) = '1' and clk'event and clk = '1';
|
|
frameValid(11) <= '0';
|
|
wait until frameComplete(12) = '1' and clk'event and clk = '1';
|
frameValid(12) <= '0';
|
frameValid(12) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_END_OF_PACKET, "000"));
|
STYPE1_END_OF_PACKET, "000"));
|
Line 2157... |
Line 2156... |
|
|
-- Send packet-accepted for both packets.
|
-- Send packet-accepted for both packets.
|
SendSymbol(SYMBOL_CONTROL,
|
SendSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_PACKET_ACCEPTED, "01011", "11111",
|
RioControlSymbolCreate(STYPE0_PACKET_ACCEPTED, "01011", "11111",
|
STYPE1_NOP, "000"));
|
STYPE1_NOP, "000"));
|
|
-- REMARK: Remove these...
|
|
ReceiveSymbol(SYMBOL_IDLE);
|
|
ReceiveSymbol(SYMBOL_IDLE);
|
|
|
SendSymbol(SYMBOL_CONTROL,
|
SendSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_PACKET_ACCEPTED, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_PACKET_ACCEPTED, "01100", "11111",
|
STYPE1_NOP, "000"));
|
STYPE1_NOP, "000"));
|
|
|
ReceiveSymbol(SYMBOL_IDLE);
|
ReceiveSymbol(SYMBOL_IDLE);
|
Line 2181... |
Line 2184... |
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
|
|
for j in 0 to 47 loop
|
for j in 0 to 47 loop
|
CreateRandomPayload(payload.data, seed1, seed2);
|
CreateRandomPayload(payload.data, seed1, seed2);
|
payload.length := j+13;
|
payload.length := j+13;
|
frame := RioFrameCreate(ackId=>std_logic_vector(to_unsigned((j+13) mod 32, 5)), vc=>'0', crf=>'0', prio=>"00",
|
frame := RioFrameCreate(ackId=>std_logic_vector(to_unsigned((j+13) mod 32, 5)),
|
|
vc=>'0', crf=>'0', prio=>"00",
|
tt=>"01", ftype=>"0000",
|
tt=>"01", ftype=>"0000",
|
sourceId=>x"0000", destId=>x"0000",
|
sourceId=>x"0000", destId=>x"0000",
|
payload=>payload);
|
payload=>payload);
|
frameValid(j+13) <= '1';
|
frameValid(j+13) <= '1';
|
frameWrite(j+13) <= frame;
|
frameWrite(j+13) <= frame;
|
Line 2195... |
Line 2199... |
-- Receive the frames.
|
-- Receive the frames.
|
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
|
|
ReceiveSymbol(SYMBOL_IDLE);
|
ReceiveSymbol(SYMBOL_IDLE);
|
|
|
for j in 0 to 30 loop
|
for j in 0 to 29 loop
|
ReceiveSymbol(SYMBOL_CONTROL,
|
ReceiveSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
STYPE1_START_OF_PACKET, "000"));
|
STYPE1_START_OF_PACKET, "000"));
|
for i in 0 to frameWrite(j+13).length-1 loop
|
for i in 0 to frameWrite(j+13).length-1 loop
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(j+13).payload(i));
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(j+13).payload(i));
|
end loop;
|
end loop;
|
|
|
wait until frameComplete = '1' and clk'event and clk = '1';
|
wait until frameComplete(j+13) = '1' and clk'event and clk = '1';
|
frameValid(j+13) <= '0';
|
frameValid(j+13) <= '0';
|
end loop;
|
end loop;
|
|
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
|
STYPE1_START_OF_PACKET, "000"));
|
|
for i in 0 to frameWrite(43).length-1 loop
|
|
ReceiveSymbol(SYMBOL_DATA, frameWrite(43).payload(i));
|
|
end loop;
|
|
ReceiveSymbol(SYMBOL_CONTROL,
|
|
RioControlSymbolCreate(STYPE0_STATUS, "01100", "11111",
|
|
STYPE1_END_OF_PACKET, "000"));
|
|
wait until frameComplete(43) = '1' and clk'event and clk = '1';
|
|
frameValid(43) <= '0';
|
|
|
ReceiveSymbol(SYMBOL_IDLE);
|
ReceiveSymbol(SYMBOL_IDLE);
|
ReceiveSymbol(SYMBOL_IDLE);
|
ReceiveSymbol(SYMBOL_IDLE);
|
|
|
|
|
SendSymbol(SYMBOL_CONTROL,
|
SendSymbol(SYMBOL_CONTROL,
|
RioControlSymbolCreate(STYPE0_PACKET_ACCEPTED, "01101", "11111",
|
RioControlSymbolCreate(STYPE0_PACKET_ACCEPTED, "01101", "11111",
|
STYPE1_NOP, "000"));
|
STYPE1_NOP, "000"));
|
|
|
|
|
Line 2326... |
Line 2341... |
clk : in std_logic;
|
clk : in std_logic;
|
areset_n : in std_logic;
|
areset_n : in std_logic;
|
|
|
frameValid_i : in std_logic_vector(0 to 63);
|
frameValid_i : in std_logic_vector(0 to 63);
|
frameWrite_i : in RioFrameArray(0 to 63);
|
frameWrite_i : in RioFrameArray(0 to 63);
|
frameComplete_o : out std_logic;
|
frameComplete_o : out std_logic_vector(0 to 63);
|
|
|
frameExpected_i : in std_logic;
|
frameExpected_i : in std_logic;
|
frameRead_i : in RioFrame;
|
frameRead_i : in RioFrame;
|
frameReceived_o : out std_logic;
|
frameReceived_o : out std_logic;
|
|
|
Line 2364... |
Line 2379... |
|
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
--
|
--
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
FrameSender: process
|
FrameSender: process
|
variable frameComplete : std_logic;
|
variable frameComplete : std_logic_vector(0 to 63);
|
variable frameIndex : natural range 0 to 70;
|
variable frameIndex : natural range 0 to 70;
|
variable backIndex, frontIndex : natural range 0 to 63;
|
variable backIndex, frontIndex : natural range 0 to 63;
|
begin
|
begin
|
readFrameEmpty_o <= '1';
|
readFrameEmpty_o <= '1';
|
readFrameAborted_o <= '0';
|
readFrameAborted_o <= '0';
|
readWindowEmpty_o <= '1';
|
readWindowEmpty_o <= '1';
|
readContentEmpty_o <= '1';
|
readContentEmpty_o <= '1';
|
readContentEnd_o <= '0';
|
readContentEnd_o <= '0';
|
readContentData_o <= (others=>'U');
|
readContentData_o <= (others=>'U');
|
frameComplete_o <= '0';
|
frameComplete_o <= (others=>'0');
|
frameComplete := '0';
|
frameComplete := (others=>'0');
|
backIndex := 0;
|
backIndex := 0;
|
frontIndex := 0;
|
frontIndex := 0;
|
wait until areset_n = '1';
|
wait until areset_n = '1';
|
|
|
loop
|
loop
|
Line 2393... |
Line 2408... |
backIndex := 0;
|
backIndex := 0;
|
end if;
|
end if;
|
end if;
|
end if;
|
|
|
if (readWindowReset_i = '1') then
|
if (readWindowReset_i = '1') then
|
frameComplete := '0';
|
frameComplete := (others=>'0');
|
frameIndex := 0;
|
frameIndex := 0;
|
frontIndex := backIndex;
|
frontIndex := backIndex;
|
readContentEnd_o <= '0';
|
readContentEnd_o <= '0';
|
readContentData_o <= (others=>'U');
|
readContentData_o <= (others=>'U');
|
end if;
|
end if;
|
|
|
if (readWindowNext_i = '1') then
|
if (readWindowNext_i = '1') then
|
assert frameComplete = '0' report "Reading next frame too fast." severity error;
|
assert frameComplete(frontIndex) = '0' report "Reading next frame too fast." severity error;
|
assert frameIndex = frameWrite_i(frontIndex).length report "Did not read all frame content." severity error;
|
assert frameIndex = frameWrite_i(frontIndex).length report "Did not read all frame content." severity error;
|
readContentEnd_o <= '0';
|
readContentEnd_o <= '0';
|
readContentData_o <= (others=>'U');
|
readContentData_o <= (others=>'U');
|
frameComplete := '1';
|
frameComplete(frontIndex) := '1';
|
else
|
|
if (frameComplete = '1') and (frameValid_i(frontIndex) = '0') then
|
|
frameComplete := '0';
|
|
frameIndex := 0;
|
frameIndex := 0;
|
if(frontIndex < 63) then
|
if(frontIndex < 63) then
|
frontIndex := frontIndex + 1;
|
frontIndex := frontIndex + 1;
|
else
|
else
|
frontIndex := 0;
|
frontIndex := 0;
|
end if;
|
end if;
|
end if;
|
end if;
|
|
|
|
for i in 0 to 63 loop
|
|
if (frameComplete(i) = '1') and (frameValid_i(i) = '0') then
|
|
frameComplete(i) := '0';
|
end if;
|
end if;
|
|
end loop;
|
frameComplete_o <= frameComplete;
|
frameComplete_o <= frameComplete;
|
|
|
|
if ((frameComplete(frontIndex) = '0') and
|
|
(frameValid_i(frontIndex) = '1')) then
|
|
readWindowEmpty_o <= '0';
|
|
else
|
|
readWindowEmpty_o <= '1';
|
|
end if;
|
|
|
if (readFrameRestart_i = '1') then
|
if (readFrameRestart_i = '1') then
|
frameIndex := 0;
|
frameIndex := 0;
|
readContentEnd_o <= '0';
|
readContentEnd_o <= '0';
|
readContentData_o <= (others=>'U');
|
readContentData_o <= (others=>'U');
|
end if;
|
end if;
|
Line 2436... |
Line 2460... |
else
|
else
|
readContentEnd_o <= '1';
|
readContentEnd_o <= '1';
|
end if;
|
end if;
|
end if;
|
end if;
|
|
|
if(frameValid_i(frontIndex) = '1') and (frameComplete = '0') then
|
if(frameValid_i(frontIndex) = '1') and (frameComplete(frontIndex) = '0') then
|
readFrameEmpty_o <= '0';
|
readFrameEmpty_o <= '0';
|
readWindowEmpty_o <= '0';
|
|
readContentEmpty_o <= '0';
|
readContentEmpty_o <= '0';
|
else
|
else
|
readFrameEmpty_o <= '1';
|
readFrameEmpty_o <= '1';
|
readWindowEmpty_o <= '1';
|
|
readContentEmpty_o <= '1';
|
readContentEmpty_o <= '1';
|
end if;
|
end if;
|
|
|
end loop;
|
end loop;
|
end process;
|
end process;
|