summaryrefslogtreecommitdiff
path: root/tests/simple/mem_arst.v
diff options
context:
space:
mode:
Diffstat (limited to 'tests/simple/mem_arst.v')
-rw-r--r--tests/simple/mem_arst.v43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/simple/mem_arst.v b/tests/simple/mem_arst.v
new file mode 100644
index 00000000..4022f57c
--- /dev/null
+++ b/tests/simple/mem_arst.v
@@ -0,0 +1,43 @@
+
+module MyMem #(
+ parameter AddrWidth = 4,
+ parameter DataWidth = 4) (
+ (* gentb_constant = 1 *)
+ input Reset_n_i,
+ input Clk_i,
+ input [AddrWidth-1:0] Addr_i,
+ input [DataWidth-1:0] Data_i,
+ output [DataWidth-1:0] Data_o,
+ input WR_i);
+
+ reg Data_o;
+
+ localparam Size = 2**AddrWidth;
+
+ (* mem2reg *)
+ reg [DataWidth-1:0] Mem[Size-1:0];
+
+ integer i;
+
+ always @(negedge Reset_n_i or posedge Clk_i)
+ begin
+ if (!Reset_n_i)
+ begin
+ Data_o <= 'bx;
+ for (i=0; i<Size; i=i+1)
+ begin
+ Mem[i] <= 0;
+ end
+ end
+ else
+ begin
+ Data_o <= Mem[Addr_i];
+ if (WR_i)
+ begin
+ Mem[Addr_i] <= Data_i;
+ end
+ end
+ end
+
+endmodule
+