aboutsummaryrefslogtreecommitdiff
path: root/src/ram.v
blob: b7e4c80e1e58f3cd6b77279bbe42c068d4db2907 (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
module ram #(
  parameter N = 32, 
  parameter SIZE = 1024
)(
    input clk,
    input rst,
    input we,
    input [log2(SIZE)-1:0] addr,
    input [N-1:0] data_write,
    output reg [N-1:0] data_read
);

`include "include/log2.vh"

reg [8:0] ram_block [SIZE-1:0];

integer i;
always @(posedge clk or posedge rst) begin
  if (rst) begin
    for (i = 0; i < SIZE; i = i + 1)
      ram_block[i] <= 0;
  end else begin
    if (we) begin
      ram_block[addr] = data_write;
    end
    data_read = ram_block[addr];      
  end

end

endmodule