Skip to content
Snippets Groups Projects
Commit 2c03a7ae authored by Tomasz Wlostowski's avatar Tomasz Wlostowski
Browse files

wr_endpoint: ep_tx_framer.vhd: removed framer-level gap generation, waits for...

wr_endpoint: ep_tx_framer.vhd: removed framer-level gap generation, waits for PCS idle only when the packet has to be timestamped
parent e6924f55
No related merge requests found
...@@ -101,7 +101,7 @@ end ep_tx_framer; ...@@ -101,7 +101,7 @@ end ep_tx_framer;
architecture behavioral of ep_tx_framer is architecture behavioral of ep_tx_framer is
constant c_IFG_LENGTH : integer := 8; constant c_IFG_LENGTH : integer := 1;
type t_tx_framer_state is (TXF_IDLE, TXF_ADDR, TXF_PAUSE, TXF_QHEADER, TXF_DATA, TXF_OOB, TXF_WAIT_CRC, TXF_EMBED_CRC1, TXF_EMBED_CRC2, TXF_EMBED_CRC3, TXF_GAP, TXF_PAD, TXF_ABORT); type t_tx_framer_state is (TXF_IDLE, TXF_ADDR, TXF_PAUSE, TXF_QHEADER, TXF_DATA, TXF_OOB, TXF_WAIT_CRC, TXF_EMBED_CRC1, TXF_EMBED_CRC2, TXF_EMBED_CRC3, TXF_GAP, TXF_PAD, TXF_ABORT);
...@@ -269,7 +269,7 @@ begin -- behavioral ...@@ -269,7 +269,7 @@ begin -- behavioral
p_oob_fsm : process(clk_sys_i) p_oob_fsm : process(clk_sys_i)
begin begin
if rising_edge(clk_sys_i) then if rising_edge(clk_sys_i) then
if (rst_n_i = '0' or snk_i.cyc = '0') then if (rst_n_i = '0') then
oob_state <= OOB_IDLE; oob_state <= OOB_IDLE;
oob.valid <= '0'; oob.valid <= '0';
oob.oob_type <= (others => '0'); oob.oob_type <= (others => '0');
...@@ -279,6 +279,7 @@ begin -- behavioral ...@@ -279,6 +279,7 @@ begin -- behavioral
when OOB_IDLE => when OOB_IDLE =>
if sof_p1 = '1' then if sof_p1 = '1' then
oob_state <= OOB_1; oob_state <= OOB_1;
OOB.valid <= '0';
end if; end if;
when OOB_1 => when OOB_1 =>
if(snk_valid = '1' and snk_i.adr = c_WRF_OOB) then if(snk_valid = '1' and snk_i.adr = c_WRF_OOB) then
...@@ -640,14 +641,14 @@ begin -- behavioral ...@@ -640,14 +641,14 @@ begin -- behavioral
snk_out.rty <= '0'; snk_out.rty <= '0';
q_bytesel <= '0'; q_bytesel <= '0';
if(counter = c_IFG_LENGTH) then if(oob.valid = '1') then
if(pcs_busy_i = '0') then if(pcs_busy_i = '0') then
state <= TXF_IDLE; state <= TXF_IDLE;
end if; end if;
else else
counter <= counter + 1; state <= TXF_IDLE;
end if; end if;
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- TX FSM state ABORT: signalize underlying PCS block to abort the frame -- TX FSM state ABORT: signalize underlying PCS block to abort the frame
-- immediately, corrupting its contents -- immediately, corrupting its contents
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment