mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
fix missing input/output on debug module for lsu
This commit is contained in:
parent
f5e01bea20
commit
0bb6a8866a
111
src/lsu/lsu.sv
111
src/lsu/lsu.sv
@ -33,67 +33,72 @@
|
|||||||
module lsu import cvw::*; #(parameter cvw_t P) (
|
module lsu import cvw::*; #(parameter cvw_t P) (
|
||||||
input logic clk, reset,
|
input logic clk, reset,
|
||||||
input logic StallM, FlushM, StallW, FlushW,
|
input logic StallM, FlushM, StallW, FlushW,
|
||||||
output logic LSUStallM, // LSU stalls pipeline during a multicycle operation
|
output logic LSUStallM, // LSU stalls pipeline during a multicycle operation
|
||||||
// connected to cpu (controls)
|
// connected to cpu (controls)
|
||||||
input logic [1:0] MemRWE, // Read/Write control
|
input logic [1:0] MemRWE, // Read/Write control
|
||||||
input logic [1:0] MemRWM, // Read/Write control
|
input logic [1:0] MemRWM, // Read/Write control
|
||||||
input logic [2:0] Funct3M, // Size of memory operation
|
input logic [2:0] Funct3M, // Size of memory operation
|
||||||
input logic [6:0] Funct7M, // Atomic memory operation function
|
input logic [6:0] Funct7M, // Atomic memory operation function
|
||||||
input logic [1:0] AtomicM, // Atomic memory operation
|
input logic [1:0] AtomicM, // Atomic memory operation
|
||||||
input logic FlushDCacheM, // Flush D cache to next level of memory
|
input logic FlushDCacheM, // Flush D cache to next level of memory
|
||||||
input logic [3:0] CMOpM, // 1: cbo.inval; 2: cbo.flush; 4: cbo.clean; 8: cbo.zero
|
input logic [3:0] CMOpM, // 1: cbo.inval; 2: cbo.flush; 4: cbo.clean; 8: cbo.zero
|
||||||
input logic LSUPrefetchM, // Prefetch; presently unused
|
input logic LSUPrefetchM, // Prefetch; presently unused
|
||||||
output logic CommittedM, // Delay interrupts while memory operation in flight
|
output logic CommittedM, // Delay interrupts while memory operation in flight
|
||||||
output logic SquashSCW, // Store conditional failed disable write to GPR
|
output logic SquashSCW, // Store conditional failed disable write to GPR
|
||||||
output logic DCacheMiss, // D cache miss for performance counters
|
output logic DCacheMiss, // D cache miss for performance counters
|
||||||
output logic DCacheAccess, // D cache memory access for performance counters
|
output logic DCacheAccess, // D cache memory access for performance counters
|
||||||
// address and write data
|
// address and write data
|
||||||
input logic [P.XLEN-1:0] IEUAdrE, // Execution stage memory address
|
input logic [P.XLEN-1:0] IEUAdrE, // Execution stage memory address
|
||||||
output logic [P.XLEN-1:0] IEUAdrM, // Memory stage memory address
|
output logic [P.XLEN-1:0] IEUAdrM, // Memory stage memory address
|
||||||
input logic [P.XLEN-1:0] WriteDataM, // Write data from IEU
|
input logic [P.XLEN-1:0] WriteDataM, // Write data from IEU
|
||||||
output logic [P.LLEN-1:0] ReadDataW, // Read data to IEU or FPU
|
output logic [P.LLEN-1:0] ReadDataW, // Read data to IEU or FPU
|
||||||
// cpu privilege
|
// cpu privilege
|
||||||
input logic [1:0] PrivilegeModeW, // Current privilege mode
|
input logic [1:0] PrivilegeModeW, // Current privilege mode
|
||||||
input logic BigEndianM, // Swap byte order to big endian
|
input logic BigEndianM, // Swap byte order to big endian
|
||||||
input logic sfencevmaM, // Virtual memory address fence, invalidate TLB entries
|
input logic sfencevmaM, // Virtual memory address fence, invalidate TLB entries
|
||||||
output logic DCacheStallM, // D$ busy with multicycle operation
|
output logic DCacheStallM, // D$ busy with multicycle operation
|
||||||
// fpu
|
// fpu
|
||||||
input logic [P.FLEN-1:0] FWriteDataM, // Write data from FPU
|
input logic [P.FLEN-1:0] FWriteDataM, // Write data from FPU
|
||||||
input logic FpLoadStoreM, // Selects FPU as store for write data
|
input logic FpLoadStoreM, // Selects FPU as store for write data
|
||||||
// faults
|
// faults
|
||||||
output logic LoadPageFaultM, StoreAmoPageFaultM, // Page fault exceptions
|
output logic LoadPageFaultM, StoreAmoPageFaultM, // Page fault exceptions
|
||||||
output logic LoadMisalignedFaultM, // Load address misaligned fault
|
output logic LoadMisalignedFaultM, // Load address misaligned fault
|
||||||
output logic LoadAccessFaultM, // Load access fault (PMA)
|
output logic LoadAccessFaultM, // Load access fault (PMA)
|
||||||
output logic HPTWInstrAccessFaultF, // HPTW generated access fault during instruction fetch
|
output logic HPTWInstrAccessFaultF, // HPTW generated access fault during instruction fetch
|
||||||
output logic HPTWInstrPageFaultF, // HPTW generated access fault during instruction fetch
|
output logic HPTWInstrPageFaultF, // HPTW generated access fault during instruction fetch
|
||||||
// cpu hazard unit (trap)
|
// cpu hazard unit (trap)
|
||||||
output logic StoreAmoMisalignedFaultM, // Store or AMO address misaligned fault
|
output logic StoreAmoMisalignedFaultM, // Store or AMO address misaligned fault
|
||||||
output logic StoreAmoAccessFaultM, // Store or AMO access fault
|
output logic StoreAmoAccessFaultM, // Store or AMO access fault
|
||||||
// connect to ahb
|
// connect to ahb
|
||||||
output logic [P.PA_BITS-1:0] LSUHADDR, // Bus address from LSU to EBU
|
output logic [P.PA_BITS-1:0] LSUHADDR, // Bus address from LSU to EBU
|
||||||
input logic [P.XLEN-1:0] HRDATA, // Bus read data from LSU to EBU
|
input logic [P.XLEN-1:0] HRDATA, // Bus read data from LSU to EBU
|
||||||
output logic [P.XLEN-1:0] LSUHWDATA, // Bus write data from LSU to EBU
|
output logic [P.XLEN-1:0] LSUHWDATA, // Bus write data from LSU to EBU
|
||||||
input logic LSUHREADY, // Bus ready from LSU to EBU
|
input logic LSUHREADY, // Bus ready from LSU to EBU
|
||||||
output logic LSUHWRITE, // Bus write operation from LSU to EBU
|
output logic LSUHWRITE, // Bus write operation from LSU to EBU
|
||||||
output logic [2:0] LSUHSIZE, // Bus operation size from LSU to EBU
|
output logic [2:0] LSUHSIZE, // Bus operation size from LSU to EBU
|
||||||
output logic [2:0] LSUHBURST, // Bus burst from LSU to EBU
|
output logic [2:0] LSUHBURST, // Bus burst from LSU to EBU
|
||||||
output logic [1:0] LSUHTRANS, // Bus transaction type from LSU to EBU
|
output logic [1:0] LSUHTRANS, // Bus transaction type from LSU to EBU
|
||||||
output logic [P.XLEN/8-1:0] LSUHWSTRB, // Bus byte write enables from LSU to EBU
|
output logic [P.XLEN/8-1:0] LSUHWSTRB, // Bus byte write enables from LSU to EBU
|
||||||
// page table walker
|
// page table walker
|
||||||
input logic [P.XLEN-1:0] SATP_REGW, // SATP (supervisor address translation and protection) CSR
|
input logic [P.XLEN-1:0] SATP_REGW, // SATP (supervisor address translation and protection) CSR
|
||||||
input logic STATUS_MXR, STATUS_SUM, STATUS_MPRV, // STATUS CSR bits: make executable readable, supervisor user memory, machine privilege
|
input logic STATUS_MXR, STATUS_SUM, STATUS_MPRV, // STATUS CSR bits: make executable readable, supervisor user memory, machine privilege
|
||||||
input logic [1:0] STATUS_MPP, // Machine previous privilege mode
|
input logic [1:0] STATUS_MPP, // Machine previous privilege mode
|
||||||
input logic ENVCFG_PBMTE, // Page-based memory types enabled
|
input logic ENVCFG_PBMTE, // Page-based memory types enabled
|
||||||
input logic ENVCFG_ADUE, // HPTW A/D Update enable
|
input logic ENVCFG_ADUE, // HPTW A/D Update enable
|
||||||
input logic [P.XLEN-1:0] PCSpillF, // Fetch PC
|
input logic [P.XLEN-1:0] PCSpillF, // Fetch PC
|
||||||
input logic ITLBMissF, // ITLB miss causes HPTW (hardware pagetable walker) walk
|
input logic ITLBMissF, // ITLB miss causes HPTW (hardware pagetable walker) walk
|
||||||
input logic InstrUpdateDAF, // ITLB hit needs to update dirty or access bits
|
input logic InstrUpdateDAF, // ITLB hit needs to update dirty or access bits
|
||||||
output logic [P.XLEN-1:0] PTE, // Page table entry write to ITLB
|
output logic [P.XLEN-1:0] PTE, // Page table entry write to ITLB
|
||||||
output logic [1:0] PageType, // Type of page table entry to write to ITLB
|
output logic [1:0] PageType, // Type of page table entry to write to ITLB
|
||||||
output logic ITLBWriteF, // Write PTE to ITLB
|
output logic ITLBWriteF, // Write PTE to ITLB
|
||||||
output logic SelHPTW, // During a HPTW walk the effective privilege mode becomes S_MODE
|
output logic SelHPTW, // During a HPTW walk the effective privilege mode becomes S_MODE
|
||||||
input var logic [7:0] PMPCFG_ARRAY_REGW[P.PMP_ENTRIES-1:0], // PMP configuration from privileged unit
|
input var logic [7:0] PMPCFG_ARRAY_REGW[P.PMP_ENTRIES-1:0], // PMP configuration from privileged unit
|
||||||
input var logic [P.PA_BITS-3:0] PMPADDR_ARRAY_REGW[P.PMP_ENTRIES-1:0] // PMP address from privileged unit
|
input var logic [P.PA_BITS-3:0] PMPADDR_ARRAY_REGW[P.PMP_ENTRIES-1:0], // PMP address from privileged unit
|
||||||
|
// Debug scan chain
|
||||||
|
input logic DebugCapture,
|
||||||
|
input logic DebugScanEn,
|
||||||
|
input logic DebugScanIn,
|
||||||
|
output logic DebugScanOut
|
||||||
);
|
);
|
||||||
localparam logic MISALIGN_SUPPORT = P.ZICCLSM_SUPPORTED & P.DCACHE_SUPPORTED;
|
localparam logic MISALIGN_SUPPORT = P.ZICCLSM_SUPPORTED & P.DCACHE_SUPPORTED;
|
||||||
localparam MLEN = MISALIGN_SUPPORT ? 2*P.LLEN : P.LLEN; // widen buffer for misaligned accessess
|
localparam MLEN = MISALIGN_SUPPORT ? 2*P.LLEN : P.LLEN; // widen buffer for misaligned accessess
|
||||||
|
Loading…
Reference in New Issue
Block a user