mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
lsu/ifu lint cleanup
This commit is contained in:
parent
61fdb3d902
commit
62a23fe878
@ -100,7 +100,7 @@ module ifu (
|
||||
|
||||
logic [`PA_BITS-1:0] PCPFmmu, PCNextFPhys; // used to either truncate or expand PCPF and PCNextF into `PA_BITS width.
|
||||
logic [`XLEN+1:0] PCFExt;
|
||||
logic ITLBHitF, ISquashBusAccessF;
|
||||
logic ITLBHitF;
|
||||
|
||||
generate
|
||||
if (`XLEN==32) begin
|
||||
@ -123,13 +123,11 @@ module ifu (
|
||||
.TLBFlush(ITLBFlushF),
|
||||
.PhysicalAddress(PCPFmmu),
|
||||
.TLBMiss(ITLBMissF),
|
||||
.TLBHit(ITLBHitF),
|
||||
.TLBPageFault(ITLBInstrPageFaultF),
|
||||
.ExecuteAccessF(1'b1), // ***dh -- this should eventually change to only true if an instruction fetch is occurring
|
||||
.AtomicAccessM(1'b0),
|
||||
.ReadAccessM(1'b0),
|
||||
.WriteAccessM(1'b0),
|
||||
.SquashBusAccess(ISquashBusAccessF),
|
||||
.LoadAccessFaultM(),
|
||||
.StoreAccessFaultM(),
|
||||
.DisableTranslation(1'b0),
|
||||
|
@ -35,7 +35,6 @@ module lrsc
|
||||
output logic [1:0] MemRWMtoDCache,
|
||||
input logic [1:0] AtomicMtoDCache,
|
||||
input logic [`PA_BITS-1:0] MemPAdrM, // from mmu to dcache
|
||||
output logic SquashSCM,
|
||||
output logic SquashSCW
|
||||
);
|
||||
// Handle atomic load reserved / store conditional
|
||||
@ -44,6 +43,7 @@ module lrsc
|
||||
logic [`PA_BITS-1:2] ReservationPAdrW;
|
||||
logic ReservationValidM, ReservationValidW;
|
||||
logic lrM, scM, WriteAdrMatchM;
|
||||
logic SquashSCM;
|
||||
|
||||
assign lrM = MemReadM && AtomicMtoDCache[0];
|
||||
assign scM = MemRWMtoLRSC[0] && AtomicMtoDCache[0];
|
||||
@ -59,7 +59,6 @@ module lrsc
|
||||
flopenrc #(1) resvldreg(clk, reset, FlushW, lrM, ReservationValidM, ReservationValidW);
|
||||
flopenrc #(1) squashreg(clk, reset, FlushW, ~StallWtoDCache, SquashSCM, SquashSCW);
|
||||
end else begin // Atomic operations not supported
|
||||
assign SquashSCM = 0;
|
||||
assign SquashSCW = 0;
|
||||
assign MemRWMtoDCache = MemRWMtoLRSC;
|
||||
end
|
||||
|
@ -93,7 +93,6 @@ module lsu
|
||||
input var logic [`XLEN-1:0] PMPADDR_ARRAY_REGW[`PMP_ENTRIES-1:0] // *** this one especially has a large note attached to it in pmpchecker.
|
||||
);
|
||||
|
||||
logic SquashSCM;
|
||||
logic DTLBPageFaultM;
|
||||
logic DTLBHitM;
|
||||
|
||||
@ -199,14 +198,14 @@ module lsu
|
||||
.TLBFlush(DTLBFlushM),
|
||||
.PhysicalAddress(MemPAdrM),
|
||||
.TLBMiss(DTLBMissM),
|
||||
.TLBHit(DTLBHitM),
|
||||
//.TLBHit(DTLBHitM),
|
||||
.TLBPageFault(DTLBPageFaultM),
|
||||
.ExecuteAccessF(1'b0),
|
||||
//.AtomicAccessM(AtomicMaskedM[1]),
|
||||
.AtomicAccessM(1'b0),
|
||||
.WriteAccessM(MemRWMtoLRSC[0]),
|
||||
.ReadAccessM(MemRWMtoLRSC[1]),
|
||||
.SquashBusAccess(),
|
||||
//.SquashBusAccess(),
|
||||
.DisableTranslation(DisableTranslation),
|
||||
.InstrAccessFaultF(),
|
||||
.Cacheable(CacheableM),
|
||||
@ -217,7 +216,7 @@ module lsu
|
||||
|
||||
assign MemReadM = MemRWMtoLRSC[1] & ~(ExceptionM | PendingInterruptMtoDCache) & ~DTLBMissM; // & ~NonBusTrapM & ~DTLBMissM & CurrState != STATE_STALLED;
|
||||
lrsc lrsc(.clk, .reset, .FlushW, .StallWtoDCache, .MemReadM, .MemRWMtoLRSC, .AtomicMtoDCache, .MemPAdrM,
|
||||
.SquashSCM, .SquashSCW, .MemRWMtoDCache);
|
||||
.SquashSCW, .MemRWMtoDCache);
|
||||
|
||||
// *** BUG, this is most likely wrong
|
||||
assign CacheableMtoDCache = SelPTW ? 1'b1 : CacheableM;
|
||||
|
@ -67,7 +67,6 @@ module mmu #(parameter TLB_ENTRIES = 8, // number of TLB Entries
|
||||
// Physical address outputs
|
||||
output logic [`PA_BITS-1:0] PhysicalAddress,
|
||||
output logic TLBMiss,
|
||||
output logic TLBHit,
|
||||
output logic Cacheable, Idempotent, AtomicAllowed,
|
||||
|
||||
// Faults
|
||||
@ -77,11 +76,7 @@ module mmu #(parameter TLB_ENTRIES = 8, // number of TLB Entries
|
||||
// PMA checker signals
|
||||
input logic AtomicAccessM, ExecuteAccessF, WriteAccessM, ReadAccessM,
|
||||
input var logic [7:0] PMPCFG_ARRAY_REGW[`PMP_ENTRIES-1:0],
|
||||
input var logic [`XLEN-1:0] PMPADDR_ARRAY_REGW [`PMP_ENTRIES-1:0],
|
||||
|
||||
output logic SquashBusAccess // *** send to privileged unit
|
||||
// output logic [5:0] SelRegions
|
||||
|
||||
input var logic [`XLEN-1:0] PMPADDR_ARRAY_REGW [`PMP_ENTRIES-1:0]
|
||||
);
|
||||
|
||||
logic [`PA_BITS-1:0] TLBPAdr;
|
||||
@ -92,6 +87,7 @@ module mmu #(parameter TLB_ENTRIES = 8, // number of TLB Entries
|
||||
logic PMALoadAccessFaultM, PMPLoadAccessFaultM;
|
||||
logic PMAStoreAccessFaultM, PMPStoreAccessFaultM;
|
||||
logic Translate;
|
||||
logic TLBHit;
|
||||
|
||||
|
||||
// only instantiate TLB if Virtual Memory is supported
|
||||
@ -126,7 +122,7 @@ module mmu #(parameter TLB_ENTRIES = 8, // number of TLB Entries
|
||||
|
||||
|
||||
// If TLB miss and translating we want to not have faults from the PMA and PMP checkers.
|
||||
assign SquashBusAccess = PMASquashBusAccess | PMPSquashBusAccess;
|
||||
// assign SquashBusAccess = PMASquashBusAccess | PMPSquashBusAccess;
|
||||
assign InstrAccessFaultF = (PMAInstrAccessFaultF | PMPInstrAccessFaultF) & ~(Translate & ~TLBHit);
|
||||
assign LoadAccessFaultM = (PMALoadAccessFaultM | PMPLoadAccessFaultM) & ~(Translate & ~TLBHit);
|
||||
assign StoreAccessFaultM = (PMAStoreAccessFaultM | PMPStoreAccessFaultM) & ~(Translate & ~TLBHit);
|
||||
|
@ -33,8 +33,8 @@ module csr #(parameter
|
||||
UIE_REGW = 12'b0
|
||||
) (
|
||||
input logic clk, reset,
|
||||
input logic FlushD, FlushE, FlushM, FlushW,
|
||||
input logic StallD, StallE, StallM, StallW,
|
||||
input logic FlushE, FlushM, FlushW,
|
||||
input logic StallE, StallM, StallW,
|
||||
input logic [31:0] InstrM,
|
||||
input logic [`XLEN-1:0] PCM, SrcAM,
|
||||
input logic CSRReadM, CSRWriteM, TrapM, MTrapM, STrapM, UTrapM, mretM, sretM, uretM,
|
||||
|
Loading…
Reference in New Issue
Block a user