Line 64... |
Line 64... |
`endif
|
`endif
|
`ifdef SMII_LINK
|
`ifdef SMII_LINK
|
output reg link,
|
output reg link,
|
`endif
|
`endif
|
// internal
|
// internal
|
input [1:10] state,
|
input [10:1] state, // Change bit size declaration order, was [1:10], not verilator compatible: %Error: Unsupported: MSB < LSB of bit range: 1<10
|
// clock and reset
|
// clock and reset
|
input clk,
|
input clk,
|
input rst
|
input rst
|
);
|
);
|
|
|
reg [0:7] tx_data_reg;
|
reg [7:0] tx_data_reg;
|
reg tx_data_reg_valid;
|
reg tx_data_reg_valid;
|
reg a0;
|
reg a0;
|
reg state_data;
|
reg state_data;
|
|
|
reg [3:0] rx_tmp;
|
reg [3:0] rx_tmp;
|
Line 150... |
Line 150... |
if (!mtxen & !a0)
|
if (!mtxen & !a0)
|
tx_data_reg_valid <= 1'b0;
|
tx_data_reg_valid <= 1'b0;
|
else if (a0)
|
else if (a0)
|
tx_data_reg_valid <= 1'b1;
|
tx_data_reg_valid <= 1'b1;
|
if (mtxen & !a0)
|
if (mtxen & !a0)
|
tx_data_reg[0:3] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
|
//tx_data_reg[0:3] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
|
|
tx_data_reg[3:0] <= {mtxd[3],mtxd[2],mtxd[1],mtxd[0]}; // Changed for verilator -- jb
|
else if (mtxen & a0)
|
else if (mtxen & a0)
|
tx_data_reg[4:7] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
|
//tx_data_reg[4:7] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
|
|
tx_data_reg[7:4] <= {mtxd[3],mtxd[2],mtxd[1],mtxd[0]}; // Changed for verilator -- jb
|
end // if ((state[4] | state[9]) & (tx_cnt == 4'd0))
|
end // if ((state[4] | state[9]) & (tx_cnt == 4'd0))
|
|
|
|
|
// state flag
|
// state flag
|
always @ (posedge clk or posedge rst)
|
always @ (posedge clk or posedge rst)
|
Line 166... |
Line 168... |
if (state[1] & (tx_cnt == 4'd0))
|
if (state[1] & (tx_cnt == 4'd0))
|
state_data <= tx_data_reg_valid;
|
state_data <= tx_data_reg_valid;
|
|
|
assign tx = state[1] ? mtxerr :
|
assign tx = state[1] ? mtxerr :
|
state[2] ? ((tx_data_reg_valid & (tx_cnt == 4'd0)) | state_data) :
|
state[2] ? ((tx_data_reg_valid & (tx_cnt == 4'd0)) | state_data) :
|
state_data ? |(state[2:10] & tx_data_reg) :
|
state_data ? |(state[10:2] & tx_data_reg) : // changed bit select order to 10:2 -- jb
|
|(state[2:10] & {mtxerr,speed,duplex,link,jabber,3'b111});
|
|(state[10:2] & {mtxerr,speed,duplex,link,jabber,3'b111}); // changed bit select order to 10:2 -- jb
|
|
|
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
// Receive
|
// Receive
|
|
|
always @ (posedge clk or posedge rst)
|
always @ (posedge clk or posedge rst)
|