diff --git a/ram.sv b/ram.sv index f078ff2..f964c17 100644 --- a/ram.sv +++ b/ram.sv @@ -4,16 +4,12 @@ module ram ( input clk, - /* control in */ - input sel_in, - input [3:0] write_mask_in, - - /* data in */ + /* memory bus */ input [31:0] address_in, - input [31:0] write_value_in, - - /* data out */ - output logic [31:0] read_value_out + input sel_in, + output logic [31:0] read_value_out, + input [3:0] write_mask_in, + input [31:0] write_value_in ); logic [31:0] mem [2047:0]; logic [31:0] read_value; diff --git a/rv32.sv b/rv32.sv index de07f38..cee92bb 100644 --- a/rv32.sv +++ b/rv32.sv @@ -10,15 +10,11 @@ module rv32 ( input clk, - /* control out (memory bus) */ - output logic read_out, - output logic [3:0] write_mask_out, - - /* data in (memory bus) */ - input [31:0] read_value_in, - - /* data out (memory bus) */ + /* memory bus */ output logic [31:0] address_out, + output logic read_out, + input [31:0] read_value_in, + output logic [3:0] write_mask_out, output logic [31:0] write_value_out ); /* hazard -> fetch control */ diff --git a/top.sv b/top.sv index a676bad..a195dab 100644 --- a/top.sv +++ b/top.sv @@ -58,13 +58,11 @@ module top ( .out(pll_locked) ); - /* memory bus control */ - logic mem_read; - logic [3:0] mem_write_mask; - - /* memory bus data */ + /* memory bus */ logic [31:0] mem_address; + logic mem_read; logic [31:0] mem_read_value; + logic [3:0] mem_write_mask; logic [31:0] mem_write_value; assign mem_read_value = ram_read_value | leds_read_value | uart_read_value; @@ -72,15 +70,11 @@ module top ( rv32 rv32 ( .clk(pll_clk), - /* control out */ - .read_out(mem_read), - .write_mask_out(mem_write_mask), - - /* data in */ - .read_value_in(mem_read_value), - - /* data out */ + /* memory bus */ .address_out(mem_address), + .read_out(mem_read), + .read_value_in(mem_read_value), + .write_mask_out(mem_write_mask), .write_value_out(mem_write_value) ); @@ -102,16 +96,12 @@ module top ( ram ram ( .clk(pll_clk), - /* control in */ - .sel_in(ram_sel), - .write_mask_in(mem_write_mask), - - /* data in */ + /* memory bus */ .address_in(mem_address), - .write_value_in(mem_write_value), - - /* data out */ - .read_value_out(ram_read_value) + .sel_in(ram_sel), + .read_value_out(ram_read_value), + .write_mask_in(mem_write_mask), + .write_value_in(mem_write_value) ); logic leds_sel; @@ -135,16 +125,12 @@ module top ( .rx_in(uart_rx), .tx_out(uart_tx), - /* control in */ + /* memory bus */ + .address_in(mem_address), .sel_in(uart_sel), .read_in(mem_read), + .read_value_out(uart_read_value), .write_mask_in(mem_write_mask), - - /* data in */ - .address_in(mem_address), - .write_value_in(mem_write_value), - - /* data out */ - .read_value_out(uart_read_value) + .write_value_in(mem_write_value) ); endmodule diff --git a/uart.sv b/uart.sv index 61be809..853bf52 100644 --- a/uart.sv +++ b/uart.sv @@ -13,17 +13,13 @@ module uart ( input rx_in, output logic tx_out, - /* control in */ + /* memory bus */ + input [31:0] address_in, input sel_in, input read_in, + output logic [31:0] read_value_out, input [3:0] write_mask_in, - - /* data in */ - input [31:0] address_in, - input [31:0] write_value_in, - - /* data out */ - output logic [31:0] read_value_out + input [31:0] write_value_in ); logic [15:0] clk_div;