From b7e0fb39cf82ed736d831d4a30aa351819cf5dde Mon Sep 17 00:00:00 2001 From: uvok Date: Sun, 18 Jan 2026 11:01:36 +0100 Subject: eater: Use separate "zbuffer" module keeps code a bit cleaner --- eater_cpu/eater_computer.sv | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'eater_cpu/eater_computer.sv') diff --git a/eater_cpu/eater_computer.sv b/eater_cpu/eater_computer.sv index 4c59697..4f71f1c 100644 --- a/eater_cpu/eater_computer.sv +++ b/eater_cpu/eater_computer.sv @@ -21,7 +21,7 @@ logic A_to_bus, bus_to_A, INS_to_bus, bus_to_INS, RAM_to_bus, bus_to_RAM, ALU_to_bus, - PC_to_bus, bus_to_PC, + PC_to_bus, bus_to_PC, PC_count_en, bus_to_MAR ; @@ -90,7 +90,11 @@ my_mem #( .async_data_o(RAM_out) ); -assign bus = RAM_to_bus ? RAM_out : 8'bz; +zbuffer ram_to_bus_buffer ( + .data_in(RAM_out), + .en_output_in(RAM_to_bus), + .data_out(bus) +); eater_alu alu ( .clk_in(clk_in), @@ -108,11 +112,19 @@ counter #( .DATA_WIDTH(4) ) PC ( .clk_in(clk_in), - .counter_out(PC_out), .X_in(PC_in), - .st_store_X_in(bus_to_PC) + .st_store_X_in(bus_to_PC), + .count_enable_in(PC_count_en), + .counter_out(PC_out) ); -assign bus[3:0] = PC_to_bus ? PC_out[3:0] : 4'bz; +tri[7:0] PC_out_full; +assign PC_out_full = {4'b0, PC_out}; + +zbuffer PC_to_bus_buffer ( + .data_in(PC_out_full), + .en_output_in(PC_to_bus), + .data_out(bus) +); endmodule -- cgit v1.2.3