eth: Fix 1000BASE-X AN match logic

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2026-07-06 00:55:31 -07:00
parent ffb3b3a9de
commit 672fc89b5f
3 changed files with 4 additions and 4 deletions

View File

@@ -683,7 +683,7 @@ always_ff @(posedge clk) begin
if (AN_EN && input_c_d0_reg) begin
rx_an_cfg_reg <= encoded_rx_data;
rx_an_cfg_valid_reg <= encoded_rx_data_k == 2'b00;
if (((rx_an_cfg_reg ^ encoded_rx_data) & 16'h4000) == 0) begin
if (((rx_an_cfg_reg ^ encoded_rx_data) & ~16'h4000) == 0) begin
an_ability_match_reg <= {an_ability_match_reg[0], 1'b1};
end else begin
an_ability_match_reg <= '0;

View File

@@ -550,7 +550,7 @@ always_ff @(posedge clk) begin
if (AN_EN && input_c_d1_reg) begin
rx_an_cfg_reg[15:8] <= encoded_rx_data;
rx_an_cfg_valid_reg <= encoded_rx_data_k == 1'b0;
if (an_cfg_match_reg && ((rx_an_cfg_reg[15:8] ^ encoded_rx_data) & 8'h40) == 0) begin
if (an_cfg_match_reg && ((rx_an_cfg_reg[15:8] ^ encoded_rx_data) & ~8'h40) == 0) begin
an_ability_match_reg <= {an_ability_match_reg[0], 1'b1};
end else begin
an_ability_match_reg <= '0;

View File

@@ -210,13 +210,13 @@ always_comb begin
c_cyc = 1'b1;
end else if (AN_EN && c_cyc) begin
if (!odd_cyc) begin
rx_an_cfg_next[7:0] = encoded_rx_data[seg*8 +: 8];
an_cfg_match_next = rx_an_cfg_next[7:0] == encoded_rx_data[seg*8 +: 8];
rx_an_cfg_next[7:0] = encoded_rx_data[seg*8 +: 8];
an_idle_match_next = '0;
end else begin
rx_an_cfg_next[15:8] = encoded_rx_data[seg*8 +: 8];
rx_an_cfg_valid_next = 1'b1;
if (an_cfg_match_next && ((rx_an_cfg_next[15:8] ^ encoded_rx_data[seg*8 +: 8]) & 8'h40) == 0) begin
if (an_cfg_match_next && ((rx_an_cfg_next[15:8] ^ encoded_rx_data[seg*8 +: 8]) & ~8'h40) == 0) begin
an_ability_match_next = {an_ability_match_next[0], 1'b1};
end else begin
an_ability_match_next = '0;