diff --git a/riscv-ac.sim/sim_1/behav/xsim/compile.sh b/riscv-ac.sim/sim_1/behav/xsim/compile.sh index d93bf08..9937498 100755 --- a/riscv-ac.sim/sim_1/behav/xsim/compile.sh +++ b/riscv-ac.sim/sim_1/behav/xsim/compile.sh @@ -6,7 +6,7 @@ # Simulator : AMD Vivado Simulator # Description : Script for compiling the simulation design source files # -# Generated by Vivado on Mon Mar 02 23:30:40 CET 2026 +# Generated by Vivado on Tue Mar 03 01:07:16 CET 2026 # SW Build 6299465 on Fri Nov 14 12:34:56 MST 2025 # # Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. diff --git a/riscv-ac.sim/sim_1/behav/xsim/elaborate.sh b/riscv-ac.sim/sim_1/behav/xsim/elaborate.sh index 5b325c1..4244220 100755 --- a/riscv-ac.sim/sim_1/behav/xsim/elaborate.sh +++ b/riscv-ac.sim/sim_1/behav/xsim/elaborate.sh @@ -6,7 +6,7 @@ # Simulator : AMD Vivado Simulator # Description : Script for elaborating the compiled design # -# Generated by Vivado on Mon Mar 02 23:30:41 CET 2026 +# Generated by Vivado on Tue Mar 03 01:07:19 CET 2026 # SW Build 6299465 on Fri Nov 14 12:34:56 MST 2025 # # Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. diff --git a/riscv-ac.sim/sim_1/behav/xsim/program.mem b/riscv-ac.sim/sim_1/behav/xsim/program.mem index 3571c71..6e7042a 100755 --- a/riscv-ac.sim/sim_1/behav/xsim/program.mem +++ b/riscv-ac.sim/sim_1/behav/xsim/program.mem @@ -1,3 +1,4 @@ -000000B3 -00810113 -002080B3 \ No newline at end of file +04100293 +FFFFF337 +FFC30313 +00532023 \ No newline at end of file diff --git a/riscv-ac.sim/sim_1/behav/xsim/simulate.sh b/riscv-ac.sim/sim_1/behav/xsim/simulate.sh index 2bd0207..3428f55 100755 --- a/riscv-ac.sim/sim_1/behav/xsim/simulate.sh +++ b/riscv-ac.sim/sim_1/behav/xsim/simulate.sh @@ -6,7 +6,7 @@ # Simulator : AMD Vivado Simulator # Description : Script for simulating the design by launching the simulator # -# Generated by Vivado on Mon Mar 02 23:30:42 CET 2026 +# Generated by Vivado on Tue Mar 03 01:04:08 CET 2026 # SW Build 6299465 on Fri Nov 14 12:34:56 MST 2025 # # Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. diff --git a/riscv-ac.sim/sim_1/behav/xsim/tb_top_behav.wdb b/riscv-ac.sim/sim_1/behav/xsim/tb_top_behav.wdb index e14a2cb..6cffc27 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/tb_top_behav.wdb and b/riscv-ac.sim/sim_1/behav/xsim/tb_top_behav.wdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_0.lnx64.o b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_0.lnx64.o index eeca82b..491a3da 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_0.lnx64.o and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_0.lnx64.o differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_1.lnx64.o b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_1.lnx64.o index fc30c61..7e8f39d 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_1.lnx64.o and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/obj/xsim_1.lnx64.o differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.dbg b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.dbg index 5e8e182..5fbba82 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.dbg and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.dbg differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.mem b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.mem index 72de886..7abeb59 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.mem and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.mem differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.reloc b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.reloc index 49a6444..d573b49 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.reloc and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.reloc differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rlx b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rlx index 1cccd46..72dedca 100644 --- a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rlx +++ b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rlx @@ -1,6 +1,6 @@ { - crc : 5732162227090726530 , + crc : 899746931471304080 , ccp_crc : 0 , cmdline : " --incr --debug typical --relax --mt 8 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip --snapshot tb_top_behav xil_defaultlib.tb_top xil_defaultlib.glbl" , buildDate : "Nov 14 2025" , diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rtti b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rtti index 1aa37c4..de8b1bb 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rtti and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.rtti differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.xdbg b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.xdbg index 12121d5..1128940 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.xdbg and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsim.xdbg differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimSettings.ini b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimSettings.ini index 5bc733c..a3736b3 100644 --- a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimSettings.ini +++ b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimSettings.ini @@ -25,11 +25,11 @@ INOUT_PROTOINST_FILTER=true INTERNAL_PROTOINST_FILTER=true CONSTANT_PROTOINST_FILTER=true VARIABLE_PROTOINST_FILTER=true -SCOPE_NAME_COLUMN_WIDTH=93 +SCOPE_NAME_COLUMN_WIDTH=159 SCOPE_DESIGN_UNIT_COLUMN_WIDTH=83 SCOPE_BLOCK_TYPE_COLUMN_WIDTH=103 -OBJECT_NAME_COLUMN_WIDTH=121 -OBJECT_VALUE_COLUMN_WIDTH=72 +OBJECT_NAME_COLUMN_WIDTH=154 +OBJECT_VALUE_COLUMN_WIDTH=1904 OBJECT_DATA_TYPE_COLUMN_WIDTH=75 PROCESS_NAME_COLUMN_WIDTH=75 PROCESS_TYPE_COLUMN_WIDTH=75 diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimk b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimk index e64ba17..ce710db 100755 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimk and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/tb_top_behav/xsimk differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/alu.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/alu.sdb index 3d8bb86..398e045 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/alu.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/alu.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/control.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/control.sdb index cd6e32a..dee4a80 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/control.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/control.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/dmem.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/dmem.sdb index 8585a4d..67da372 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/dmem.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/dmem.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/ex_me.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/ex_me.sdb index e8ad611..7dcb639 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/ex_me.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/ex_me.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/forwarding.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/forwarding.sdb index f8fd48d..0b1e3b2 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/forwarding.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/forwarding.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/hazard.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/hazard.sdb index eb42d8f..9cfbd91 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/hazard.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/hazard.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/id_ex.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/id_ex.sdb index 963d5ad..7b4f3a4 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/id_ex.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/id_ex.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/if_id.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/if_id.sdb index e948bc6..a06b0db 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/if_id.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/if_id.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imem.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imem.sdb index fa2b35c..7c35336 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imem.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imem.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb index 87ec1be..e98f109 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/me_wb.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/me_wb.sdb index 79c8222..980746d 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/me_wb.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/me_wb.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/pc.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/pc.sdb index 92582d2..717f036 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/pc.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/pc.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/regfile.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/regfile.sdb index be5532a..510b80f 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/regfile.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/regfile.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_top.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_top.sdb index e91c0b0..d026977 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_top.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_top.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/top.sdb b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/top.sdb index 6ccbee6..3b98438 100644 Binary files a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/top.sdb and b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/top.sdb differ diff --git a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx index ba3c676..03a11fe 100644 --- a/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx +++ b/riscv-ac.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx @@ -12,8 +12,8 @@ Nov 14 2025 /home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/hazard.v,1772467244,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/id_ex.v,,hazard,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, /home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/id_ex.v,1772490462,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/if_id.v,,id_ex,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, /home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/if_id.v,1772490110,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imem.v,,if_id,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, -/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imem.v,1772485445,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imm_gen.v,,imem,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, -/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imm_gen.v,1772470571,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/me_wb.v,,imm_gen,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, +/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imem.v,1772490099,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imm_gen.v,,imem,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, +/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/imm_gen.v,1772490121,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/me_wb.v,,imm_gen,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, /home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/me_wb.v,1772468767,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/pc.v,,me_wb,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, /home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/pc.v,1772289140,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/regfile.v,,pc,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, /home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/regfile.v,1772483280,verilog,,/home/jomaa/git/riscv-ac/riscv-ac.srcs/sources_1/new/top.v,,regfile,,,../../../../../../../../opt/Xilinx/2025.2/data/rsb/busdef,,,,, diff --git a/riscv-ac.srcs/sim_1/new/program.mem b/riscv-ac.srcs/sim_1/new/program.mem index 3571c71..6e7042a 100644 --- a/riscv-ac.srcs/sim_1/new/program.mem +++ b/riscv-ac.srcs/sim_1/new/program.mem @@ -1,3 +1,4 @@ -000000B3 -00810113 -002080B3 \ No newline at end of file +04100293 +FFFFF337 +FFC30313 +00532023 \ No newline at end of file diff --git a/riscv-ac.srcs/sim_1/new/tb_top.v b/riscv-ac.srcs/sim_1/new/tb_top.v index 6b4c1d2..94e228a 100644 --- a/riscv-ac.srcs/sim_1/new/tb_top.v +++ b/riscv-ac.srcs/sim_1/new/tb_top.v @@ -1,20 +1,21 @@ `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// -// Company: -// Engineer: +// Company: nope +// Engineer: Jose // -// Create Date: 03/01/2026 07:26:34 PM -// Design Name: +// Create Date: 02/20/2026 09:21:52 AM +// Design Name: RISCV AC Processor Simulation // Module Name: tb_top -// Project Name: -// Target Devices: -// Tool Versions: -// Description: +// Project Name: riscv-ac +// Target Devices: Artix 7 +// Tool Versions: 2025.2 +// Description: Testbench for simulation + MMIO // // Dependencies: // -// Revision: -// Revision 0.01 - File Created +// Revision: 2.0 - MMIO +// Revision: 1.0 - Basic structure +// Revision: 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// @@ -26,13 +27,15 @@ module tb_top(); reg clk; reg rst; wire [1:0] leds; - wire [31:0] debug; + wire [31:0] uart_tx_data; + wire uart_tx_en; top uut ( .clk(clk), .rst(rst), .leds(leds), - .debug(debug) + .uart_tx_data(uart_tx_data), + .uart_tx_en(uart_tx_en) ); // T_CLK = 10ns diff --git a/riscv-ac.srcs/sources_1/new/imem.v b/riscv-ac.srcs/sources_1/new/imem.v index 7bc58aa..da1d346 100644 --- a/riscv-ac.srcs/sources_1/new/imem.v +++ b/riscv-ac.srcs/sources_1/new/imem.v @@ -13,19 +13,24 @@ // // Dependencies: // -// Revision: 1.0 -// Revision 0.01 - File Created +// Revision: 2.0 - Dual port for UART programming +// Revision: 1.0 - Basic structure +// Revision: 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module imem( input clk, - input [31:0] address, - input we, - input [31:0] write_data, - input [7:0] write_addr, - output [31:0] inst_out + + // puerto 1 + input [31:0] read_addr, + output [31:0] inst_out, + + // puerto 2 + input we_ext, + input [31:0] write_addr_ext, + input [31:0] write_data_ext ); reg [31:0] memory[0:255]; @@ -39,9 +44,11 @@ initial begin end always @(posedge clk) begin - if(we) - memory[write_addr] <= write_data; - inst_reg <= memory[address[9:2]]; + if(we_ext) begin + memory[write_addr_ext[9:2]] <= write_data_ext; + end + + inst_reg <= memory[read_addr[9:2]]; end assign inst_out = inst_reg; diff --git a/riscv-ac.srcs/sources_1/new/top.v b/riscv-ac.srcs/sources_1/new/top.v index 3efa593..7137bcd 100644 --- a/riscv-ac.srcs/sources_1/new/top.v +++ b/riscv-ac.srcs/sources_1/new/top.v @@ -1,11 +1,38 @@ `timescale 1ns / 1ps -`default_nettype none +////////////////////////////////////////////////////////////////////////////////// +// Company: nope +// Engineer: Jose +// +// Create Date: 02/20/2026 09:21:52 AM +// Design Name: RISCV AC Processor Implementation +// Module Name: top +// Project Name: riscv-ac +// Target Devices: Artix 7 +// Tool Versions: 2025.2 +// Description: Top module for interconnection +// +// Dependencies: +// +// Revision: 2.0 - MMIO +// Revision: 1.0 - Basic structure +// Revision: 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// module top ( input clk, input rst, + + // Programacion + input [31:0] prog_data, + input [31:0] prog_addr, + input prog_we, + + // Debug & UART output [1:0] leds, - output [31:0] debug + output [31:0] uart_tx_data, + output uart_tx_en ); // ========================================== @@ -26,8 +53,14 @@ module top ( ); imem u_imem ( - .clk(clk), .address(npc_IF), .we(1'b0), - .write_data(32'b0), .write_addr(8'b0), .inst_out(ir_IF) + .clk(clk), + // por aqui lee la CPU + .read_addr(pc_IF), + .inst_out(ir_IF), + // por aqui meto el programa + .we_ext(prog_we), + .write_addr_ext(prog_addr), + .write_data_ext(prog_data) ); // ========================================== @@ -161,9 +194,18 @@ module top ( // ========================================== // ETAPA ME & WB // ========================================== + + // --- hacemos un apaƱo pa poder sacar cosas a la UART (MMIO) --- + wire is_uart = (alu_res_ME == 32'hFFFFFFFC); + wire dmem_we = we_mem_ME & ~is_uart; // si va pa la UART no escribimos en memoria + + assign uart_tx_en = we_mem_ME & is_uart; + assign uart_tx_data = regB_ME; + // -------------------------------------------------------------- + wire [31:0] mem_data_ME; dmem u_dmem ( - .clk(clk), .we(we_mem_ME), .address(alu_res_ME), + .clk(clk), .we(dmem_we), .address(alu_res_ME), .write_data(regB_ME), .mem_data_out(mem_data_ME) ); @@ -186,12 +228,5 @@ module top ( // ========================================== assign leds[0] = Branch_Taken; // se enciende cuando hay salto assign leds[1] = ID_EX_Clr; // se enciende en bloqueos - - assign debug = { - alu_res_EX[15:0], - rd_WB, - rs1_ID, - npc_IF[7:2] - }; endmodule \ No newline at end of file diff --git a/riscv-ac.xpr b/riscv-ac.xpr index 0b30c65..3bf66e4 100644 --- a/riscv-ac.xpr +++ b/riscv-ac.xpr @@ -61,7 +61,7 @@