More IROM cleanup.

This commit is contained in:
Ross Thompson 2023-01-18 18:47:02 -06:00
parent 63577cbf4a
commit e79c403fe1

View File

@ -39,8 +39,9 @@ module irom(
rom1p1r #(ADDR_WDITH, `XLEN) rom(.clk, .ce, .addr(Adr[ADDR_WDITH+OFFSET-1:OFFSET]), .dout(IROMInstrFFull)); rom1p1r #(ADDR_WDITH, `XLEN) rom(.clk, .ce, .addr(Adr[ADDR_WDITH+OFFSET-1:OFFSET]), .dout(IROMInstrFFull));
if (`XLEN == 32) assign IROMInstrF = IROMInstrFFull; if (`XLEN == 32) assign IROMInstrF = IROMInstrFFull;
// have to delay Ardr[OFFSET-1] by 1 cycle
else begin else begin
// IROM is aligned to XLEN words, but instructions are 32 bits. Select between the two
// haves. Adr is the Next PCF not PCF so we delay 1 cycle.
logic AdrD; logic AdrD;
flopen #(1) AdrReg(clk, ce, Adr[OFFSET-1], AdrD); flopen #(1) AdrReg(clk, ce, Adr[OFFSET-1], AdrD);
assign IROMInstrF = AdrD ? IROMInstrFFull[63:32] : IROMInstrFFull[31:0]; assign IROMInstrF = AdrD ? IROMInstrFFull[63:32] : IROMInstrFFull[31:0];