diff options
author | Flavian Kaufmann <flavian@flaviankaufmann.ch> | 2024-05-09 10:13:14 +0200 |
---|---|---|
committer | Flavian Kaufmann <flavian@flaviankaufmann.ch> | 2024-05-09 10:13:14 +0200 |
commit | 678aef68af85c04015d8c385f6d6c60ffada7fad (patch) | |
tree | a36f8af2af4a5485a186084f9ee30fcbdb0c6586 /src/ram.v | |
parent | 89c0244b8bcd98e8dd273888a0cadc43357f79fc (diff) | |
download | riscv_cpu-678aef68af85c04015d8c385f6d6c60ffada7fad.tar.gz riscv_cpu-678aef68af85c04015d8c385f6d6c60ffada7fad.zip |
fixed sw bug, where we wasn't set correctly
Diffstat (limited to 'src/ram.v')
-rw-r--r-- | src/ram.v | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -7,23 +7,25 @@ module ram #( input we, input [log2(SIZE)-1:0] addr, input [N-1:0] data_write, - output reg [N-1:0] data_read + output [N-1:0] data_read ); `include "include/log2.vh" reg [8:0] memory [SIZE-1:0]; +assign data_read = { memory[addr + 3], memory[addr + 2], memory[addr + 1], memory[addr + 0] }; + + integer i; always @(posedge clk or posedge rst) begin if (rst) begin for (i = 0; i < SIZE; i = i + 1) memory[i] <= 0; - end else begin + end else begin if (we) begin { memory[addr + 3], memory[addr + 2], memory[addr + 1], memory[addr + 0] } = data_write; end - data_read = { memory[addr + 3], memory[addr + 2], memory[addr + 1], memory[addr + 0] }; end end |