Line 42... |
Line 42... |
// Outputs
|
// Outputs
|
pkt_tx_full, txdfifo_wdata, txdfifo_wstatus, txdfifo_wen,
|
pkt_tx_full, txdfifo_wdata, txdfifo_wstatus, txdfifo_wen,
|
status_txdfifo_ovflow_tog,
|
status_txdfifo_ovflow_tog,
|
// Inputs
|
// Inputs
|
clk_156m25, reset_156m25_n, pkt_tx_data, pkt_tx_val, pkt_tx_sop,
|
clk_156m25, reset_156m25_n, pkt_tx_data, pkt_tx_val, pkt_tx_sop,
|
pkt_tx_eop, txdfifo_wfull, txdfifo_walmost_full
|
pkt_tx_eop, pkt_tx_mod, txdfifo_wfull, txdfifo_walmost_full
|
);
|
);
|
|
|
`include "CRC32_D64.v"
|
`include "CRC32_D64.v"
|
`include "CRC32_D8.v"
|
`include "CRC32_D8.v"
|
`include "utils.v"
|
`include "utils.v"
|
Line 55... |
Line 55... |
input reset_156m25_n;
|
input reset_156m25_n;
|
|
|
input [63:0] pkt_tx_data;
|
input [63:0] pkt_tx_data;
|
input pkt_tx_val;
|
input pkt_tx_val;
|
input pkt_tx_sop;
|
input pkt_tx_sop;
|
input [7:0] pkt_tx_eop;
|
input pkt_tx_eop;
|
|
input [2:0] pkt_tx_mod;
|
|
|
input txdfifo_wfull;
|
input txdfifo_wfull;
|
input txdfifo_walmost_full;
|
input txdfifo_walmost_full;
|
|
|
output pkt_tx_full;
|
output pkt_tx_full;
|
Line 118... |
Line 119... |
|
|
end
|
end
|
|
|
end
|
end
|
|
|
always @(/*AS*/pkt_tx_data or pkt_tx_eop or pkt_tx_sop or pkt_tx_val
|
always @(/*AS*/pkt_tx_data or pkt_tx_eop or pkt_tx_mod or pkt_tx_sop
|
or txd_ovflow or txdfifo_wfull) begin
|
or pkt_tx_val or txd_ovflow or txdfifo_wfull) begin
|
|
|
txdfifo_wstatus = `TXSTATUS_NONE;
|
txdfifo_wstatus = `TXSTATUS_NONE;
|
txdfifo_wdata = pkt_tx_data;
|
txdfifo_wdata = pkt_tx_data;
|
txdfifo_wen = pkt_tx_val;
|
txdfifo_wen = pkt_tx_val;
|
|
|
Line 132... |
Line 133... |
|
|
// Write SOP marker to fifo.
|
// Write SOP marker to fifo.
|
|
|
if (pkt_tx_val && pkt_tx_sop) begin
|
if (pkt_tx_val && pkt_tx_sop) begin
|
|
|
txdfifo_wstatus = `TXSTATUS_SOP;
|
txdfifo_wstatus[`TXSTATUS_SOP] = 1'b1;
|
|
|
end
|
end
|
|
|
|
|
// Write EOP marker to fifo.
|
// Write EOP marker to fifo.
|
|
|
if (pkt_tx_val) begin
|
if (pkt_tx_val) begin
|
|
|
if (pkt_tx_eop[0]) begin
|
if (pkt_tx_eop) begin
|
txdfifo_wstatus = `TXSTATUS_EOP0;
|
txdfifo_wstatus[2:0] = pkt_tx_mod;
|
end
|
txdfifo_wstatus[`TXSTATUS_EOP] = 1'b1;
|
else if (pkt_tx_eop[1]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP1;
|
|
end
|
|
else if (pkt_tx_eop[2]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP2;
|
|
end
|
|
else if (pkt_tx_eop[3]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP3;
|
|
end
|
|
else if (pkt_tx_eop[4]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP4;
|
|
end
|
|
else if (pkt_tx_eop[5]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP5;
|
|
end
|
|
else if (pkt_tx_eop[6]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP6;
|
|
end
|
|
else if (pkt_tx_eop[7]) begin
|
|
txdfifo_wstatus = `TXSTATUS_EOP7;
|
|
end
|
end
|
|
|
end
|
end
|
|
|
|
|