Fixed align module so that spilled addresses are aligned to native word type rather than + cacheline in bytes over the effective address. This ensures xtval is set to the aligned byte for the second half of the access.

This commit is contained in:
Rose Thompson 2025-05-07 14:00:07 -05:00
parent 1d80bd1abf
commit 950cdba298

View file

@ -80,7 +80,7 @@ module align import cvw::*; #(parameter cvw_t P) (
/* verilator lint_off WIDTHEXPAND */
assign IEUAdrIncrementM = IEUAdrM + LLENINBYTES;
assign IEUAdrIncrementM = {IEUAdrM[P.XLEN-1:OFFSET_LEN], {{OFFSET_LEN}{1'b0}}} + LLENINBYTES;
/* verilator lint_on WIDTHEXPAND */
mux2 #(P.XLEN) ieuadrspillemux(.d0(IEUAdrE), .d1(IEUAdrIncrementM), .s(SelSpillE), .y(IEUAdrSpillE));
mux2 #(P.XLEN) ieuadrspillmmux(.d0(IEUAdrM), .d1(IEUAdrIncrementM), .s(SelSpillM), .y(IEUAdrSpillM));