diff options
| author | uvok | 2025-12-29 16:44:30 +0100 |
|---|---|---|
| committer | uvok | 2025-12-29 16:44:30 +0100 |
| commit | 89db73e2642cfc1509db277174939a0533b511f4 (patch) | |
| tree | 4fdca78108a3eed5d0e30ae84f2a56503e27891f /my_mem.v | |
| parent | ceb4aa8e0662206789016306a5a8745cbafcbd4f (diff) | |
Add memory
Diffstat (limited to 'my_mem.v')
| -rw-r--r-- | my_mem.v | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/my_mem.v b/my_mem.v new file mode 100644 index 0000000..e4ed4f6 --- /dev/null +++ b/my_mem.v @@ -0,0 +1,31 @@ +`timescale 1us/1us + +module my_mem #( + parameter DATA_WIDTH = 8, + parameter DATA_DEPTH = 1024 +) ( + input clk_i, + + input write_en_i, + input read_en_i, + + input [$clog2(DATA_DEPTH)-1:0] r_read_addr, + input [$clog2(DATA_DEPTH)-1:0] r_write_addr, + + input [(DATA_WIDTH-1) : 0] data_i, + output reg [(DATA_WIDTH-1) : 0] data_o +); + +reg [(DATA_WIDTH-1) : 0] r_datastore [(DATA_DEPTH-1) : 0]; + +always @(posedge clk_i) begin + if (write_en_i) begin + r_datastore[r_write_addr] <= data_i; + end + + if (read_en_i) begin + data_o <= r_datastore[r_read_addr]; + end +end + +endmodule |
