Files
max2771-raw-ethernet-recorder/tb/common/tb_ethernet_crc32.sv
T

33 lines
912 B
Systemverilog

`timescale 1ns/1ps
`default_nettype none
module tb_ethernet_crc32;
logic [31:0] crc_in;
logic [7:0] data_in;
logic [31:0] crc_out;
byte vector [0:8];
integer i;
ethernet_crc32 dut (.crc_in(crc_in), .data_in(data_in), .crc_out(crc_out));
initial begin
vector[0]="1"; vector[1]="2"; vector[2]="3"; vector[3]="4"; vector[4]="5";
vector[5]="6"; vector[6]="7"; vector[7]="8"; vector[8]="9";
crc_in = 32'hffffffff;
data_in = 8'd0;
#1;
for (i = 0; i < 9; i = i + 1) begin
data_in = vector[i];
#1;
crc_in = crc_out;
#1;
end
if ((~crc_in) !== 32'hcbf43926)
$fatal(1, "CRC check vector failed: got %08x expected cbf43926", ~crc_in);
$display("PASS tb_ethernet_crc32: CRC-32('123456789') = cbf43926");
$finish;
end
endmodule
`default_nettype wire