`timescale 1 ns / 1 ps module testbench; reg rd_clk; reg [ 7:0] rd_addr; wire [17:0] rd_data; wire wr_clk = 0; wire wr_enable = 0; wire [ 7:0] wr_addr = 0; wire [17:0] wr_data = 0; function [17:0] hash(input [7:0] k); reg [31:0] x; begin x = {k, ~k, k, ~k}; x = x ^ (x << 13); x = x ^ (x >> 17); x = x ^ (x << 5); hash = x; end endfunction myram uut ( .rd_clk (rd_clk ), .rd_addr (rd_addr ), .rd_data (rd_data ), .wr_clk (wr_clk ), .wr_enable(wr_enable), .wr_addr (wr_addr ), .wr_data (wr_data ) ); initial begin rd_clk = 0; #1000; forever #10 rd_clk <= ~rd_clk; end integer i; initial begin rd_addr <= 0; @(posedge rd_clk); for (i = 0; i < 256; i=i+1) begin rd_addr <= rd_addr + 1; @(posedge rd_clk); // $display("%3d %3d", i, rd_data); if (hash(i) !== rd_data) begin $display("[%1t] ERROR: addr=%3d, data_mem=%18b, data_ref=%18b", $time, i, rd_data, hash(i)); $stop; end end $display("[%1t] Passed bram2 test.", $time); $finish; end endmodule ss='sub right'>
aboutsummaryrefslogtreecommitdiffstats
path: root/passes/techmap/pmuxtree.cc
blob: 6a923f481d86eec78dee6c7f0eece177aadc1432 (plain)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112