diff options
| author | uvok | 2026-01-16 18:55:24 +0100 |
|---|---|---|
| committer | uvok | 2026-01-16 18:55:24 +0100 |
| commit | 0339e032a10a28df81800fcb6df9e688ba0706cd (patch) | |
| tree | 0be3b4d1c79fa1fca14f6f1b21d754e7bbd9ac89 | |
| parent | 87b84ba9c6e4e14194a90eb086c25b75bb867932 (diff) | |
eater: Connect RAM
| -rw-r--r-- | eater_cpu/eater_computer.sv | 28 | ||||
| -rw-r--r-- | eater_cpu/eater_computer_tb.sv | 2 |
2 files changed, 21 insertions, 9 deletions
diff --git a/eater_cpu/eater_computer.sv b/eater_cpu/eater_computer.sv index cb94b86..b9863e8 100644 --- a/eater_cpu/eater_computer.sv +++ b/eater_cpu/eater_computer.sv @@ -14,22 +14,32 @@ module eater_computer( `include "../playground/my_mem.v" `endif -my_mem #( - .DATA_WIDTH(8), - .DATA_DEPTH(16) -) RAM ( - -); - - /* verilator public_on */ -tri [7:0] bus, A_out, B_out; +tri [7:0] bus, A_out, B_out, RAM_out; logic A_to_bus, bus_to_A, B_to_bus, bus_to_B, INS_to_bus, bus_to_INS, + RAM_to_bus, bus_to_RAM, ALU_to_bus ; +my_mem #( + .DATA_WIDTH(8), + .DATA_DEPTH(16) +) RAM ( + .clk_i(clk_in), + .write_en_i(bus_to_RAM), + // ??? + .read_en_i(RAM_to_bus), + .r_read_addr(), + .r_write_addr(), + .data_i(bus), + .data_o(), + .async_data_o(RAM_out) +); + +assign bus = RAM_to_bus ? RAM_out : 8'bz; + assign debug_bus = bus; /* verilator public_off */ diff --git a/eater_cpu/eater_computer_tb.sv b/eater_cpu/eater_computer_tb.sv index 5739dc0..d5459bc 100644 --- a/eater_cpu/eater_computer_tb.sv +++ b/eater_cpu/eater_computer_tb.sv @@ -28,9 +28,11 @@ initial begin uut.B_to_bus = 0; uut.INS_to_bus = 0; uut.ALU_to_bus = 0; + uut.RAM_to_bus = 0; uut.bus_to_A = 0; uut.bus_to_B = 0; uut.bus_to_INS = 0; + uut.bus_to_RAM = 0; clk_in = 0; debug_enable = 0; debug_value = 'z; |
