finish cleaning up bridge_rx_tb
This commit is contained in:
parent
25b2ff0dd0
commit
0c942fcb59
|
|
@ -12,6 +12,42 @@
|
|||
end \
|
||||
tb_brx_valid = 0; \
|
||||
|
||||
`define TEST_GOOD_READ_MSG(MESSAGE, ADDR) \
|
||||
tb_brx_valid = 1; \
|
||||
for(int i=0; i < $size(MESSAGE); i++) begin \
|
||||
tb_brx_data = MESSAGE[i]; \
|
||||
if(brx_tb_valid) begin \
|
||||
assert(brx_tb_addr == ADDR) else $error("wrong addr!"); \
|
||||
assert(brx_tb_rw == 0) else $error("wrong rw!"); \
|
||||
assert(brx_tb_data == 0) else $error("wrong data!"); \
|
||||
end \
|
||||
#`CP; \
|
||||
end \
|
||||
tb_brx_valid = 0; \
|
||||
|
||||
`define TEST_GOOD_WRITE_MSG(MESSAGE, ADDR, DATA) \
|
||||
tb_brx_valid = 1; \
|
||||
for(int i=0; i < $size(MESSAGE); i++) begin \
|
||||
tb_brx_data = MESSAGE[i]; \
|
||||
if(brx_tb_valid) begin \
|
||||
assert(brx_tb_addr == ADDR) else $error("wrong addr!"); \
|
||||
assert(brx_tb_rw == 1) else $error("wrong rw!"); \
|
||||
assert(brx_tb_data == DATA) else $error("wrong data!"); \
|
||||
end \
|
||||
#`CP; \
|
||||
end \
|
||||
tb_brx_valid = 0; \
|
||||
|
||||
`define TEST_BAD_MSG(MESSAGE) \
|
||||
tb_brx_valid = 1; \
|
||||
for(int i=0; i < $size(MESSAGE); i++) begin \
|
||||
tb_brx_data = MESSAGE[i]; \
|
||||
assert(brx_tb_valid == 0) else $error("wrong valid!"); \
|
||||
#`CP; \
|
||||
end \
|
||||
tb_brx_valid = 0; \
|
||||
|
||||
|
||||
module bridge_rx_tb;
|
||||
// https://www.youtube.com/watch?v=WCOAr-96bGc
|
||||
|
||||
|
|
@ -57,212 +93,90 @@ initial begin
|
|||
#`CP
|
||||
#`HCP
|
||||
|
||||
/* ==== Test 1 Begin ==== */
|
||||
$display("\n=== test 1: transmit W12345678(CR)(LF) for baseline functionality ===");
|
||||
test_num = 1;
|
||||
message = {"W12345678", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'h1234) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_data == 16'h5678) else $error("incorrect data!");
|
||||
assert(brx_tb_rw == 1) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_WRITE_MSG(message, 16'h1234, 16'h5678)
|
||||
#(10*`CP);
|
||||
/* ==== Test 1 End ==== */
|
||||
|
||||
|
||||
/* ==== Test 2 Begin ==== */
|
||||
$display("\n=== test 2: transmit WDEADBEEF(CR)(LF) for proper state reset ===");
|
||||
test_num = 2;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"WDEADBEEF", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'hDEAD) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_data == 16'hBEEF) else $error("incorrect data!");
|
||||
assert(brx_tb_rw == 1) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_WRITE_MSG(message, 16'hDEAD, 16'hBEEF)
|
||||
#(10*`CP);
|
||||
/* ==== Test 2 End ==== */
|
||||
|
||||
|
||||
/* ==== Test 3 Begin ==== */
|
||||
$display("\n=== test 3: transmit RBABE(CR)(LF) for baseline functionality ===");
|
||||
test_num = 3;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"RBABE", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'hBABE) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_rw == 0) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_READ_MSG(message, 16'hBABE);
|
||||
#(10*`CP);
|
||||
/* ==== Test 3 End ==== */
|
||||
|
||||
/* ==== Test 4 Begin ==== */
|
||||
$display("\n=== test 4: transmit R0000(CR) for EOL insensitivity ===");
|
||||
test_num = 4;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"R0000", 8'h0D};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'h0000) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_rw == 0) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_READ_MSG(message, 16'hBABE);
|
||||
#(10*`CP);
|
||||
/* ==== Test 4 End ==== */
|
||||
|
||||
/* ==== Test 5 Begin ==== */
|
||||
$display("\n=== test 5: transmit R1234(LF) for EOL insensitivity ===");
|
||||
test_num = 5;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"R1234", 8'h0D};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'h1234) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_rw == 0) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_READ_MSG(message, 16'h1234);
|
||||
#(10*`CP);
|
||||
/* ==== Test 5 End ==== */
|
||||
|
||||
/* ==== Test 6 Begin ==== */
|
||||
$display("\n=== test 6: transmit WF00DBEEF(CR) for EOL insensitivity ===");
|
||||
test_num = 6;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"WF00DBEEF", 8'h0D};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'hF00D) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_data == 16'hBEEF) else $error("incorrect data!");
|
||||
assert(brx_tb_rw == 1) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_WRITE_MSG(message, 16'hF00D, 16'hBEEF);
|
||||
#(10*`CP);
|
||||
/* ==== Test 6 End ==== */
|
||||
|
||||
/* ==== Test 7 Begin ==== */
|
||||
$display("\n=== test 7: transmit WB0BACAFE(LF) for EOL insensitivity ===");
|
||||
test_num = 7;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"WB0BACAFE", 8'h0D};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_addr == 16'hB0BA) else $error("incorrect brx_tb_addr!");
|
||||
assert(brx_tb_data == 16'hCAFE) else $error("incorrect data!");
|
||||
assert(brx_tb_rw == 1) else $error("incorrect brx_tb_rw!");
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state after transmission");
|
||||
|
||||
`TEST_GOOD_WRITE_MSG(message, 16'hB0BA, 16'hCAFE)
|
||||
#(10*`CP);
|
||||
/* ==== Test 7 End ==== */
|
||||
|
||||
/* ==== Test 8 Begin ==== */
|
||||
$display("\n\nIntentionally bad messages:");
|
||||
$display("\n=== test 8: transmit RABC(CR)(LF) for message length ===");
|
||||
test_num = 8;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"RABC", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message);
|
||||
#(10*`CP);
|
||||
/* ==== Test 8 End ==== */
|
||||
|
||||
/* ==== Test 9 Begin ==== */
|
||||
$display("\n=== test 9: transmit R12345(CR)(LF) for message length ===");
|
||||
test_num = 9;
|
||||
// bridge_rx_uut.state = bridge_rx_uut.ACQUIRE;
|
||||
// bridge_rx_uut.bytes_received = 0;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"RABC", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message)
|
||||
#(10*`CP);
|
||||
/* ==== Test 9 End ==== */
|
||||
|
||||
/* ==== Test 10 Begin ==== */
|
||||
$display("\n=== test 10: transmit M(CR)(LF) for message length ===");
|
||||
test_num = 10;
|
||||
// bridge_rx_uut.state = bridge_rx_uut.ACQUIRE;
|
||||
// bridge_rx_uut.bytes_received = 0;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"WABC", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message)
|
||||
#(10*`CP);
|
||||
/* ==== Test 10 End ==== */
|
||||
|
||||
/* ==== Test 11 Begin ==== */
|
||||
$display("\n=== test 11: transmit W123456789101112131415161718191201222(CR)(LF) for message length ===");
|
||||
test_num = 11;
|
||||
// bridge_rx_uut.state = bridge_rx_uut.ACQUIRE;
|
||||
// bridge_rx_uut.bytes_received = 0;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"W123456789101112131415161718191201222", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message)
|
||||
#(10*`CP);
|
||||
/* ==== Test 11 End ==== */
|
||||
|
||||
/* ==== Test 12 Begin ==== */
|
||||
$display("\n=== test 12: transmit RABCG(CR)(LF) for invalid characters ===");
|
||||
test_num = 12;
|
||||
// bridge_rx_uut.state = bridge_rx_uut.ACQUIRE;
|
||||
// bridge_rx_uut.bytes_received = 0;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"RABCG", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message)
|
||||
#(10*`CP);
|
||||
/* ==== Test 12 End ==== */
|
||||
|
||||
/* ==== Test 13 Begin ==== */
|
||||
$display("\n=== test 13: transmit WABC[]()##*@(CR)(LF) for invalid characters and message length ===");
|
||||
test_num = 13;
|
||||
// bridge_rx_uut.state = bridge_rx_uut.ACQUIRE;
|
||||
// bridge_rx_uut.bytes_received = 0;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"WABC[]()##*@", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message)
|
||||
#(10*`CP);
|
||||
/* ==== Test 13 End ==== */
|
||||
|
||||
/* ==== Test 14 Begin ==== */
|
||||
$display("\n=== test 14: transmit R(CR)(LF) for message length ===");
|
||||
test_num = 14;
|
||||
// bridge_rx_uut.state = bridge_rx_uut.ACQUIRE;
|
||||
// bridge_rx_uut.bytes_received = 0;
|
||||
// assert(bridge_rx_uut.state != bridge_rx_uut.ERROR) else $error("in error state before transmission");
|
||||
message = {"R", 8'h0D, 8'h0A};
|
||||
`SEND_MESSAGE(message)
|
||||
|
||||
assert(brx_tb_valid == 0) else $error("brx_tb_valid asserted for bad message");
|
||||
// assert(bridge_rx_uut.state == bridge_rx_uut.ERROR) else $error("not in error state after transmission");
|
||||
|
||||
`TEST_BAD_MSG(message)
|
||||
#(10*`CP);
|
||||
/* ==== Test 14 End ==== */
|
||||
|
||||
$finish();
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue