blob: d2b5ed080d9cb6a41c9507940da17150e156ed71 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
module fetch
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 ( .clk(clk), .rst_l(rst_l), .en(1'b1), .q(pc_IF), .d(pcNxt_IF) );
endmodule
|