-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathtb_lzma_compressor.v
70 lines (46 loc) · 1.62 KB
/
tb_lzma_compressor.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
module tb_lzma_compressor ();
reg clk = 1'b0;
reg rstn = 1'b0;
always #5 clk = ~clk;
initial begin repeat(5) @(posedge clk); rstn <= 1'b1; end
wire i_ready;
wire i_valid;
wire i_last;
wire [ 7:0] i_data;
wire o_valid;
wire [ 7:0] o_data;
wire o_last;
tb_random_data_source u_tb_random_data_source ( // generate input data
.clk ( clk ),
.tready ( i_ready ),
.tvalid ( i_valid ),
.tdata ( i_data ),
.tlast ( i_last )
);
lzma_compressor_top u_lzma_compressor_top ( // design under test
.rstn ( rstn ),
.clk ( clk ),
.i_ready ( i_ready ),
.i_valid ( i_valid ),
.i_last ( i_last ),
.i_data ( i_data ),
.o_valid ( o_valid ),
.o_data ( o_data ),
.o_last ( o_last )
);
tb_save_result_to_file u_tb_save_result_to_file ( // save output data
.clk ( clk ),
.tvalid ( o_valid ),
.tdata ( o_data ),
.tlast ( o_last )
);
reg [31:0] cyc = 0;
always @ (posedge clk)
if (i_valid | o_valid)
cyc <= 0;
else if (cyc < 999999)
cyc <= cyc + 1;
else
$finish;
//initial $dumpvars(0, u_lzma_compressor_top);
endmodule