From 05b755958fbe148ee2e18a2fe0983497fc5da45f Mon Sep 17 00:00:00 2001 From: David Harris Date: Thu, 28 Jan 2021 21:40:48 -0500 Subject: [PATCH] Hint to optimize ifu --- riscv-o3 | 2 +- wally-pipelined/src/ifu.sv | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/riscv-o3 b/riscv-o3 index a13ac64f..afb27bd5 160000 --- a/riscv-o3 +++ b/riscv-o3 @@ -1 +1 @@ -Subproject commit a13ac64fa50c187ffd489cdb2f4a4a70e60fc837 +Subproject commit afb27bd558a9b6fabb6b768ae81ef122b4db9eea diff --git a/wally-pipelined/src/ifu.sv b/wally-pipelined/src/ifu.sv index 30f864ae..3ba78dd4 100644 --- a/wally-pipelined/src/ifu.sv +++ b/wally-pipelined/src/ifu.sv @@ -106,8 +106,10 @@ module ifu ( flopr #(`XLEN) PCMReg(clk, reset, PCE, PCM); flopr #(`XLEN) PCWReg(clk, reset, PCM, PCW); // *** probably not needed; delete later - // seems like there should be a lower-cost way of doing this PC+2 or PC+4 for JAL. Maybe a way to draw on PC - // or just put an adder at the start of the writeback stage. + // seems like there should be a lower-cost way of doing this PC+2 or PC+4 for JAL. + // either have ALU compute PC+2/4 and feed into ALUResult input of ResultMux or + // have dedicated adder in Mem stage based on PCM + 2 or 4 + // *** redo this flopr #(`XLEN) PCPDReg(clk, reset, PCPlus2or4F, PCLinkD); flopr #(`XLEN) PCPEReg(clk, reset, PCLinkD, PCLinkE); flopr #(`XLEN) PCPMReg(clk, reset, PCLinkE, PCLinkM);