eth: Clean up masking, lane 0 never needs to be masked

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2025-10-04 20:06:58 -07:00
parent 93ef0f970b
commit caeacadb78
6 changed files with 22 additions and 17 deletions

View File

@@ -239,7 +239,7 @@ wire [DATA_W-1:0] xgmii_rxd_masked;
wire [CTRL_W-1:0] xgmii_term;
for (genvar n = 0; n < CTRL_W; n = n + 1) begin
assign xgmii_rxd_masked[n*8 +: 8] = xgmii_rxc[n] ? 8'd0 : xgmii_rxd[n*8 +: 8];
assign xgmii_rxd_masked[n*8 +: 8] = (n > 0 && xgmii_rxc[n]) ? 8'd0 : xgmii_rxd[n*8 +: 8];
assign xgmii_term[n] = xgmii_rxc[n] && (xgmii_rxd[n*8 +: 8] == XGMII_TERM);
end
@@ -574,7 +574,7 @@ always_ff @(posedge clk) begin
framing_error_reg <= xgmii_rxc != 0;
for (integer i = CTRL_W-1; i >= 0; i = i - 1) begin
if (xgmii_rxc[i] && (xgmii_rxd[i*8 +: 8] == XGMII_TERM)) begin
if (xgmii_term[i]) begin
term_present_reg <= 1'b1;
term_first_cycle_reg <= i <= 4;
term_lane_reg <= 3'(i);