mirror of
https://github.com/fpganinja/taxi.git
synced 2026-08-16 20:31:19 -07:00
eth: More consistent handling of AN config reg value
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -164,7 +164,6 @@ logic m_axis_rx_tuser_reg = 1'b0, m_axis_rx_tuser_next;
|
||||
|
||||
logic [15:0] rx_an_cfg_reg = '0;
|
||||
logic rx_an_cfg_valid_reg = 1'b0;
|
||||
logic an_cfg_match_reg = 1'b0;
|
||||
logic [1:0] an_ability_match_reg = '0;
|
||||
logic [1:0] an_ack_match_reg = '0;
|
||||
logic [1:0] an_idle_match_reg = '0;
|
||||
@@ -541,21 +540,19 @@ always_ff @(posedge clk) begin
|
||||
end
|
||||
|
||||
if (AN_EN && input_c_d0_reg) begin
|
||||
rx_an_cfg_reg[7:0] <= encoded_rx_data;
|
||||
an_cfg_match_reg <= rx_an_cfg_reg[7:0] == encoded_rx_data;
|
||||
input_c_d1_reg <= encoded_rx_data_k == 1'b0;
|
||||
an_idle_match_reg <= '0;
|
||||
end
|
||||
|
||||
if (AN_EN && input_c_d1_reg) begin
|
||||
rx_an_cfg_reg[15:8] <= encoded_rx_data;
|
||||
rx_an_cfg_reg <= {encoded_rx_data, encoded_rx_data_d0_reg};
|
||||
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 (((rx_an_cfg_reg ^ {encoded_rx_data, encoded_rx_data_d0_reg}) & ~16'h4000) == 0) begin
|
||||
an_ability_match_reg <= {an_ability_match_reg[0], 1'b1};
|
||||
end else begin
|
||||
an_ability_match_reg <= '0;
|
||||
end
|
||||
if (an_cfg_match_reg && rx_an_cfg_reg[14] && rx_an_cfg_reg[15:8] == encoded_rx_data) begin
|
||||
if (rx_an_cfg_reg[14] && rx_an_cfg_reg == {encoded_rx_data, encoded_rx_data_d0_reg}) begin
|
||||
an_ack_match_reg <= {an_ack_match_reg[0], 1'b1};
|
||||
end else begin
|
||||
an_ack_match_reg <= '0;
|
||||
|
||||
@@ -669,12 +669,13 @@ always_comb begin
|
||||
// send config register
|
||||
if (!odd_reg) begin
|
||||
encoded_tx_data_next = tx_an_cfg[7:0];
|
||||
encoded_tx_data_k_next = 1'b0;
|
||||
state_next = STATE_AN;
|
||||
end else begin
|
||||
encoded_tx_data_next = tx_an_cfg[15:8];
|
||||
s_tdata_next = tx_an_cfg[15:8];
|
||||
encoded_tx_data_k_next = 1'b0;
|
||||
tx_an_cfg_ready_next = 1'b1;
|
||||
state_next = STATE_AN;
|
||||
end else begin
|
||||
encoded_tx_data_next = s_tdata_reg;
|
||||
encoded_tx_data_k_next = 1'b0;
|
||||
an_phase_next = !an_phase_reg;
|
||||
state_next = STATE_IDLE;
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user