From e580017e209a0888c3f5a2063d265de50c66c56b Mon Sep 17 00:00:00 2001 From: Joshua Yun Date: Sat, 17 May 2025 11:04:47 -0500 Subject: initial commit --- core/rtl/ifu.sv | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 core/rtl/ifu.sv (limited to 'core/rtl/ifu.sv') diff --git a/core/rtl/ifu.sv b/core/rtl/ifu.sv new file mode 100644 index 0000000..0eb3b1d --- /dev/null +++ b/core/rtl/ifu.sv @@ -0,0 +1,30 @@ +module ifu + import riscv_types::*; +( + input logic clk, + input logic rst_l, + + // IMEM interface + output logic [31:0] if_imem_addr_IF +); + + logic [31:0] pc_IF; + logic [31:0] pcNxt_IF; + + assign if_imem_addr_IF = pc_IF; // Always fetch PC from IMEM, addresses are always 32 bit aligned + // TODO: Find out if 32 is the best fetching width vs 16 + + // Program Counter (PC) + assign pcNxt_IF = pc_IF + 32'd4; + + AFFR #( + .WIDTH(32) + ) ff_IF_pc ( + .q(pc_IF), + .d(pcNxt_IF), + .en(1'b1), + .clk(clk), + .rst_l(rst_l) + ); + +endmodule -- cgit v1.2.3