Added hansimem testcase (memory with async reset)
[yosys.git] / tests / simple / hansimem.v
1
2 module MyMem #(
3 parameter AddrWidth = 4,
4 parameter DataWidth = 4) (
5 (* gentb_constant = 1 *)
6 input Reset_n_i,
7 input Clk_i,
8 input [AddrWidth-1:0] Addr_i,
9 input [DataWidth-1:0] Data_i,
10 output [DataWidth-1:0] Data_o,
11 input WR_i);
12
13 reg Data_o;
14
15 localparam Size = 2**AddrWidth;
16
17 (* mem2reg *)
18 reg [DataWidth-1:0] Mem[Size-1:0];
19
20 integer i;
21
22 always @(negedge Reset_n_i or posedge Clk_i)
23 begin
24 //$display("Data1 = %b, Data11 = %b, Data12 = %b, Data2 = %b, Data21 = %b, Data22 = %b",Data1_i,Data11,Data12,Data2_i,Data21,Data22);
25 if (!Reset_n_i)
26 begin
27 Data_o <= 'bx;
28 for (i=0; i<Size; i=i+1)
29 begin
30 Mem[i] <= 0;
31 end
32 end
33 else
34 begin
35 Data_o <= Mem[Addr_i];
36 if (WR_i)
37 begin
38 Mem[Addr_i] <= Data_i;
39 end
40 end
41 end
42
43 endmodule
44