mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Preparing to merge with CBO* changes
This commit is contained in:
parent
bd6eef2a51
commit
f7b50f4721
@ -42,12 +42,12 @@ localparam ZICNTR_SUPPORTED = 1;
|
|||||||
localparam ZIHPM_SUPPORTED = 1;
|
localparam ZIHPM_SUPPORTED = 1;
|
||||||
localparam COUNTERS = 12'd32;
|
localparam COUNTERS = 12'd32;
|
||||||
localparam ZFH_SUPPORTED = 0;
|
localparam ZFH_SUPPORTED = 0;
|
||||||
localparam SSTC_SUPPORTED = 0;
|
localparam SSTC_SUPPORTED = 1;
|
||||||
localparam ZICBOM_SUPPORTED = 0;
|
localparam ZICBOM_SUPPORTED = 1;
|
||||||
localparam ZICBOZ_SUPPORTED = 0;
|
localparam ZICBOZ_SUPPORTED = 1;
|
||||||
localparam ZICBOP_SUPPORTED = 0;
|
localparam ZICBOP_SUPPORTED = 1;
|
||||||
localparam SVPBMT_SUPPORTED = 0;
|
localparam SVPBMT_SUPPORTED = 1;
|
||||||
localparam SVNAPOT_SUPPORTED = 0;
|
localparam SVNAPOT_SUPPORTED = 1;
|
||||||
localparam SVINVAL_SUPPORTED = 1;
|
localparam SVINVAL_SUPPORTED = 1;
|
||||||
|
|
||||||
// LSU microarchitectural Features
|
// LSU microarchitectural Features
|
||||||
|
@ -44,12 +44,12 @@ localparam COUNTERS = 12'd32;
|
|||||||
localparam ZICNTR_SUPPORTED = 1;
|
localparam ZICNTR_SUPPORTED = 1;
|
||||||
localparam ZIHPM_SUPPORTED = 1;
|
localparam ZIHPM_SUPPORTED = 1;
|
||||||
localparam ZFH_SUPPORTED = 0;
|
localparam ZFH_SUPPORTED = 0;
|
||||||
localparam SSTC_SUPPORTED = 0;
|
localparam SSTC_SUPPORTED = 1;
|
||||||
localparam ZICBOM_SUPPORTED = 0;
|
localparam ZICBOM_SUPPORTED = 1;
|
||||||
localparam ZICBOZ_SUPPORTED = 0;
|
localparam ZICBOZ_SUPPORTED = 1;
|
||||||
localparam ZICBOP_SUPPORTED = 0;
|
localparam ZICBOP_SUPPORTED = 1;
|
||||||
localparam SVPBMT_SUPPORTED = 0;
|
localparam SVPBMT_SUPPORTED = 1;
|
||||||
localparam SVNAPOT_SUPPORTED = 0;
|
localparam SVNAPOT_SUPPORTED = 1;
|
||||||
localparam SVINVAL_SUPPORTED = 1;
|
localparam SVINVAL_SUPPORTED = 1;
|
||||||
|
|
||||||
// LSU microarchitectural Features
|
// LSU microarchitectural Features
|
||||||
|
@ -48,10 +48,10 @@ localparam ZIHPM_SUPPORTED = 1;
|
|||||||
localparam ZFH_SUPPORTED = 0;
|
localparam ZFH_SUPPORTED = 0;
|
||||||
localparam SSTC_SUPPORTED = 1;
|
localparam SSTC_SUPPORTED = 1;
|
||||||
localparam ZICBOM_SUPPORTED = 1;
|
localparam ZICBOM_SUPPORTED = 1;
|
||||||
localparam ZICBOZ_SUPPORTED = 0;
|
localparam ZICBOZ_SUPPORTED = 1;
|
||||||
localparam ZICBOP_SUPPORTED = 0;
|
localparam ZICBOP_SUPPORTED = 1;
|
||||||
localparam SVPBMT_SUPPORTED = 0;
|
localparam SVPBMT_SUPPORTED = 1;
|
||||||
localparam SVNAPOT_SUPPORTED = 0;
|
localparam SVNAPOT_SUPPORTED = 1;
|
||||||
localparam SVINVAL_SUPPORTED = 1;
|
localparam SVINVAL_SUPPORTED = 1;
|
||||||
|
|
||||||
// LSU microarchitectural Features
|
// LSU microarchitectural Features
|
||||||
|
@ -375,12 +375,14 @@ module controller import cvw::*; #(parameter cvw_t P) (
|
|||||||
LSUPrefetchD = 1'b0;
|
LSUPrefetchD = 1'b0;
|
||||||
ImmSrcD = PreImmSrcD;
|
ImmSrcD = PreImmSrcD;
|
||||||
if (P.ZICBOP_SUPPORTED & (InstrD[14:0] == 15'b110_00000_0010011)) begin // ori with destiation x0 is hint for Prefetch
|
if (P.ZICBOP_SUPPORTED & (InstrD[14:0] == 15'b110_00000_0010011)) begin // ori with destiation x0 is hint for Prefetch
|
||||||
|
/* verilator lint_off CASEINCOMPLETE */
|
||||||
case (Rs2D) // which type of prefectch? Note: prefetch.r and .w are handled the same in Wally
|
case (Rs2D) // which type of prefectch? Note: prefetch.r and .w are handled the same in Wally
|
||||||
5'b00000: IFUPrefetchD = 1'b1; // prefetch.i
|
5'b00000: IFUPrefetchD = 1'b1; // prefetch.i
|
||||||
5'b00001: LSUPrefetchD = 1'b1; // prefetch.r
|
5'b00001: LSUPrefetchD = 1'b1; // prefetch.r
|
||||||
5'b00011: LSUPrefetchD = 1'b1; // prefetch.w
|
5'b00011: LSUPrefetchD = 1'b1; // prefetch.w
|
||||||
// default: not a prefetch hint
|
// default: not a prefetch hint
|
||||||
endcase
|
endcase
|
||||||
|
/* verilator lint_on CASEINCOMPLETE */
|
||||||
if (IFUPrefetchD | LSUPrefetchD) ImmSrcD = 3'b001; // use S-type immediate format for prefetches
|
if (IFUPrefetchD | LSUPrefetchD) ImmSrcD = 3'b001; // use S-type immediate format for prefetches
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -64,7 +64,7 @@ module tlbmixer import cvw::*; #(parameter cvw_t P) (
|
|||||||
if (P.SVNAPOT_SUPPORTED) begin
|
if (P.SVNAPOT_SUPPORTED) begin
|
||||||
// 64 KiB contiguous NAPOT translations suported
|
// 64 KiB contiguous NAPOT translations suported
|
||||||
logic [3:0] PPNMixedBot;
|
logic [3:0] PPNMixedBot;
|
||||||
mux2 #(4) napotmux(PPNMixed[3:0], VPN, PTE_N, PPNMixedBot);
|
mux2 #(4) napotmux(PPNMixed[3:0], VPN[3:0], PTE_N, PPNMixedBot);
|
||||||
assign PPNMixed2 = {PPNMixed[P.PPN_BITS-1:4], PPNMixedBot};
|
assign PPNMixed2 = {PPNMixed[P.PPN_BITS-1:4], PPNMixedBot};
|
||||||
|
|
||||||
/* // Generalized NAPOT implementation supporting various sized contiguous regions
|
/* // Generalized NAPOT implementation supporting various sized contiguous regions
|
||||||
|
Loading…
Reference in New Issue
Block a user