diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-09-25 19:12:49 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-09-25 21:33:49 -0600 |
| commit | ed0bd705f94f6aea568ec8405534984a37770f21 (patch) | |
| tree | af19fc67177962c14ce7ab88d75dcaa1b1e3aee3 /rtl | |
| parent | cd02f821525b8710dd37e2bc39a8a7dbc36ac4b0 (diff) | |
rtl/core, tb: replace bus_master with a new top-level module
Diffstat (limited to 'rtl')
| -rw-r--r-- | rtl/core/control/mul_fu.sv (renamed from rtl/core/control/mul.sv) | 0 | ||||
| -rw-r--r-- | rtl/core/control/status.sv (renamed from rtl/core/control/psr.sv) | 0 | ||||
| -rw-r--r-- | rtl/core/core.sv (renamed from rtl/bus_master.sv) | 66 | ||||
| -rw-r--r-- | rtl/core/decode/branch_dec.sv (renamed from rtl/core/decode/branch.sv) | 0 | ||||
| -rw-r--r-- | rtl/core/decode/coproc_dec.sv (renamed from rtl/core/decode/coproc.sv) | 0 | ||||
| -rw-r--r-- | rtl/core/decode/data_dec.sv (renamed from rtl/core/decode/data.sv) | 0 | ||||
| -rw-r--r-- | rtl/core/decode/mul_dec.sv (renamed from rtl/core/decode/mul.sv) | 0 | ||||
| -rw-r--r-- | rtl/core/regs/reg_map.sv (renamed from rtl/core/regs/map.sv) | 0 | ||||
| -rw-r--r-- | rtl/top/conspiracion.sv | 47 |
9 files changed, 53 insertions, 60 deletions
diff --git a/rtl/core/control/mul.sv b/rtl/core/control/mul_fu.sv index 8352435..8352435 100644 --- a/rtl/core/control/mul.sv +++ b/rtl/core/control/mul_fu.sv diff --git a/rtl/core/control/psr.sv b/rtl/core/control/status.sv index 6616bc9..6616bc9 100644 --- a/rtl/core/control/psr.sv +++ b/rtl/core/control/status.sv diff --git a/rtl/bus_master.sv b/rtl/core/core.sv index 0c6af55..8d487fa 100644 --- a/rtl/bus_master.sv +++ b/rtl/core/core.sv @@ -1,38 +1,56 @@ -module bus_master +`include "core/uarch.sv" + +module core ( - input logic clk, - rst_n, + input logic clk, + rst_n, + + input wire step, + input wire cpu_halt, + output wire cpu_halted, + output wire breakpoint, - input logic[29:0] addr, - input logic start, - write, - output logic ready, - output logic[31:0] data_rd, - input logic[31:0] data_wr, - input logic[3:0] data_be, - output logic cpu_clk, - cpu_rst_n, - irq, + output word avl_address, + output logic avl_read, + avl_write, + input word avl_readdata, + output word avl_writedata, + input logic avl_waitrequest, + output logic[3:0] avl_byteenable, - output logic[31:0] avl_address, - output logic avl_read, - avl_write, - input logic[31:0] avl_readdata, - output logic[31:0] avl_writedata, - input logic avl_waitrequest, - output logic[3:0] avl_byteenable, - input logic avl_irq + input logic avl_irq ); + logic ready, write, start; + + logic[3:0] data_be; + logic[29:0] addr; + logic[31:0] data_rd, data_wr; + enum int unsigned { IDLE, WAIT } state; - assign irq = avl_irq; - assign cpu_clk = clk; - assign cpu_rst_n = rst_n; + arm810 cpu + ( + .irq(avl_irq), + .halt(cpu_halt), + .halted(cpu_halted), + .bus_addr(addr), + .bus_data_rd(data_rd), + .bus_data_wr(data_wr), + .bus_data_be(data_be), + .bus_ready(ready), + .bus_write(write), + .bus_start(start), +`ifndef VERILATOR + .step(0), + .breakpoint(), +`endif + .* + ); assign data_rd = avl_readdata; diff --git a/rtl/core/decode/branch.sv b/rtl/core/decode/branch_dec.sv index 1dbc1ad..1dbc1ad 100644 --- a/rtl/core/decode/branch.sv +++ b/rtl/core/decode/branch_dec.sv diff --git a/rtl/core/decode/coproc.sv b/rtl/core/decode/coproc_dec.sv index 153cadf..153cadf 100644 --- a/rtl/core/decode/coproc.sv +++ b/rtl/core/decode/coproc_dec.sv diff --git a/rtl/core/decode/data.sv b/rtl/core/decode/data_dec.sv index f744972..f744972 100644 --- a/rtl/core/decode/data.sv +++ b/rtl/core/decode/data_dec.sv diff --git a/rtl/core/decode/mul.sv b/rtl/core/decode/mul_dec.sv index 114b65b..114b65b 100644 --- a/rtl/core/decode/mul.sv +++ b/rtl/core/decode/mul_dec.sv diff --git a/rtl/core/regs/map.sv b/rtl/core/regs/reg_map.sv index 11085d4..11085d4 100644 --- a/rtl/core/regs/map.sv +++ b/rtl/core/regs/reg_map.sv diff --git a/rtl/top/conspiracion.sv b/rtl/top/conspiracion.sv index 4d09af8..54c8b95 100644 --- a/rtl/top/conspiracion.sv +++ b/rtl/top/conspiracion.sv @@ -2,6 +2,7 @@ module conspiracion ( input wire clk_clk, input wire rst_n, + input wire halt, `ifdef VERILATOR input wire step, @@ -48,12 +49,7 @@ module conspiracion output wire [7:0] vga_dac_b ); - logic button; - logic[3:0] data_be; - logic[29:0] addr; - logic[31:0] data_rd, data_wr; - logic reset_reset_n, cpu_clk, cpu_rst_n, cpu_halt, - ready, write, start, irq; + logic button, cpu_halt, reset_reset_n; `ifdef VERILATOR assign cpu_halt = halt; @@ -82,38 +78,17 @@ module conspiracion ); `endif - arm810 core - ( - .clk(cpu_clk), - .rst_n(cpu_rst_n), - .halt(cpu_halt), - .halted(cpu_halted), - .bus_addr(addr), - .bus_data_rd(data_rd), - .bus_data_wr(data_wr), - .bus_data_be(data_be), - .bus_ready(ready), - .bus_write(write), - .bus_start(start), -`ifndef VERILATOR - .step(0), - .breakpoint(), -`endif - .* - ); - platform plat ( - .master_0_core_cpu_clk(cpu_clk), - .master_0_core_cpu_rst_n(cpu_rst_n), - .master_0_core_addr(addr), - .master_0_core_data_rd(data_rd), - .master_0_core_data_wr(data_wr), - .master_0_core_data_be(data_be), - .master_0_core_ready(ready), - .master_0_core_write(write), - .master_0_core_start(start), - .master_0_core_irq(irq), +`ifdef VERILATOR + .cpu_0_mp_step(step), + .cpu_0_mp_breakpoint(breakpoint), +`else + .cpu_0_mp_step(0), + .cpu_0_mp_breakpoint(), +`endif + .cpu_0_mp_cpu_halt(cpu_halt), + .cpu_0_mp_cpu_halted(cpu_halted), .pll_0_reset_reset(0), //TODO: reset controller, algún día .pio_0_external_connection_export(pio_leds), .switches_external_connection_export({2'b00, pio_switches}), |
