Line 40... |
Line 40... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.27 2003/01/30 13:38:15 mohor
|
|
// Underrun test fixed. Many other tests fixed.
|
|
//
|
// Revision 1.26 2003/01/22 19:40:10 tadejm
|
// Revision 1.26 2003/01/22 19:40:10 tadejm
|
// Backup version. Not fully working.
|
// Backup version. Not fully working.
|
//
|
//
|
// Revision 1.25 2002/11/27 16:21:55 mohor
|
// Revision 1.25 2002/11/27 16:21:55 mohor
|
// Full duplex control frames tested.
|
// Full duplex control frames tested.
|
Line 470... |
Line 473... |
// ----------
|
// ----------
|
// test_access_to_mac_reg(0, 0); // 0 - 3
|
// test_access_to_mac_reg(0, 0); // 0 - 3
|
// test_mii(0, 17); // 0 - 17
|
// test_mii(0, 17); // 0 - 17
|
test_note("PHY generates ideal Carrier sense and Collision signals for following tests");
|
test_note("PHY generates ideal Carrier sense and Collision signals for following tests");
|
eth_phy.carrier_sense_real_delay(0);
|
eth_phy.carrier_sense_real_delay(0);
|
// test_mac_full_duplex_transmit(0, 23); // 0 - (21)
|
|
test_mac_full_duplex_transmit(0, 21); // 0 - (21)
|
test_mac_full_duplex_transmit(0, 21); // 0 - (21)
|
// test_mac_full_duplex_receive(2, 3); // 0 - 13
|
test_mac_full_duplex_receive(0, 13); // 0 - 13
|
// test_mac_full_duplex_flow_control(0, 4); // 0 - 5 What 5 stands for ?
|
test_mac_full_duplex_flow_control(0, 4); // 0 - 4
|
// 4 is executed, everything is OK
|
// 4 is executed, everything is OK
|
// test_mac_half_duplex_flow(0, 0);
|
// test_mac_half_duplex_flow(0, 0);
|
|
|
test_note("PHY generates 'real delayed' Carrier sense and Collision signals for following tests");
|
test_note("PHY generates 'real delayed' Carrier sense and Collision signals for following tests");
|
eth_phy.carrier_sense_real_delay(1);
|
eth_phy.carrier_sense_real_delay(1);
|
Line 12117... |
Line 12119... |
end
|
end
|
// check RX buffer descriptor of a packet
|
// check RX buffer descriptor of a packet
|
check_rx_bd(127, data);
|
check_rx_bd(127, data);
|
if (i_length[1] == 1'b0) // interrupt enabled no_carrier_sense_rx_fd_detect
|
if (i_length[1] == 1'b0) // interrupt enabled no_carrier_sense_rx_fd_detect
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h6000) && (i_length[0] == 1'b0)) ||
|
if ( ((data[15:0] !== 16'h6080) && (i_length[0] == 1'b0)) ||
|
((data[15:0] !== 16'h6000) && (i_length[0] == 1'b1)) )
|
((data[15:0] !== 16'h6080) && (i_length[0] == 1'b1)) )
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
end
|
end
|
else // interrupt not enabled
|
else // interrupt not enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h2000) && (i_length[0] == 1'b0)) ||
|
if ( ((data[15:0] !== 16'h2080) && (i_length[0] == 1'b0)) ||
|
((data[15:0] !== 16'h2000) && (i_length[0] == 1'b1)) )
|
((data[15:0] !== 16'h2080) && (i_length[0] == 1'b1)) )
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
Line 12424... |
Line 12426... |
end
|
end
|
// check RX buffer descriptor of a packet
|
// check RX buffer descriptor of a packet
|
check_rx_bd(127, data);
|
check_rx_bd(127, data);
|
if (i_length[1] == 1'b0) // interrupt enabled
|
if (i_length[1] == 1'b0) // interrupt enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h6000) && (i_length[0] == 1'b0)) ||
|
if ( ((data[15:0] !== 16'h6080) && (i_length[0] == 1'b0)) ||
|
((data[15:0] !== 16'h6000) && (i_length[0] == 1'b1)) )
|
((data[15:0] !== 16'h6080) && (i_length[0] == 1'b1)) )
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
end
|
end
|
else // interrupt not enabled
|
else // interrupt not enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h2000) && (i_length[0] == 1'b0)) ||
|
if ( ((data[15:0] !== 16'h2080) && (i_length[0] == 1'b0)) ||
|
((data[15:0] !== 16'h2000) && (i_length[0] == 1'b1)) )
|
((data[15:0] !== 16'h2080) && (i_length[0] == 1'b1)) )
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
Line 12832... |
Line 12834... |
end
|
end
|
// check RX buffer descriptor of a packet
|
// check RX buffer descriptor of a packet
|
check_rx_bd(num_of_bd, data);
|
check_rx_bd(num_of_bd, data);
|
if (i_length[1] == 1'b0) // interrupt enabled
|
if (i_length[1] == 1'b0) // interrupt enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h6000) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
if ( ((data[15:0] !== 16'h6080) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
((data[15:0] !== 16'h4000) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
((data[15:0] !== 16'h4080) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
end
|
end
|
else // interrupt not enabled
|
else // interrupt not enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h2000) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
if ( ((data[15:0] !== 16'h2080) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
((data[15:0] !== 16'h0000) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
((data[15:0] !== 16'h0080) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
Line 13284... |
Line 13286... |
end
|
end
|
// check RX buffer descriptor of a packet
|
// check RX buffer descriptor of a packet
|
check_rx_bd(num_of_bd, data);
|
check_rx_bd(num_of_bd, data);
|
if (i_length[1] == 1'b0) // interrupt enabled
|
if (i_length[1] == 1'b0) // interrupt enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h6000) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
if ( ((data[15:0] !== 16'h6080) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
((data[15:0] !== 16'h4000) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
((data[15:0] !== 16'h4080) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|
end
|
end
|
else // interrupt not enabled
|
else // interrupt not enabled
|
begin
|
begin
|
if ( ((data[15:0] !== 16'h2000) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
if ( ((data[15:0] !== 16'h2080) && ((num_of_frames < 8) || ((num_of_frames - 8) == 127))) || // wrap bit
|
((data[15:0] !== 16'h0000) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
((data[15:0] !== 16'h0080) && (num_of_frames >= 8) && ((num_of_frames - 8) != 127)) ) // without wrap bit
|
begin
|
begin
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
`TIME; $display("*E RX buffer descriptor status is not correct: %0h", data[15:0]);
|
test_fail("RX buffer descriptor status is not correct");
|
test_fail("RX buffer descriptor status is not correct");
|
fail = fail + 1;
|
fail = fail + 1;
|
end
|
end
|