From 7c91ed38a3c834bf96cd885bbaab9ba257e9b71c Mon Sep 17 00:00:00 2001 From: David Harris Date: Tue, 23 Aug 2022 07:35:47 -0700 Subject: [PATCH] LSU minor edits --- pipelined/config/rv64gc/wally-config.vh | 2 +- pipelined/src/lsu/lsu.sv | 3 +++ pipelined/testbench/testbench.sv | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pipelined/config/rv64gc/wally-config.vh b/pipelined/config/rv64gc/wally-config.vh index 19750d6b..9c9e3376 100644 --- a/pipelined/config/rv64gc/wally-config.vh +++ b/pipelined/config/rv64gc/wally-config.vh @@ -86,7 +86,7 @@ // WFI Timeout Wait `define WFI_TIMEOUT_BIT 16 -// Peripheral Physiccal Addresses +// Peripheral Physical Addresses // Peripheral memory space extends from BASE to BASE+RANGE // Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits diff --git a/pipelined/src/lsu/lsu.sv b/pipelined/src/lsu/lsu.sv index 121e3082..cf44fa29 100644 --- a/pipelined/src/lsu/lsu.sv +++ b/pipelined/src/lsu/lsu.sv @@ -196,6 +196,9 @@ module lsu ( logic SelUncachedAdr; assign IgnoreRequest = IgnoreRequestTLB | TrapM; + // The LSU allows both a DTIM and bus with cache. However, the PMA decoding presently + // use the same RAM_BASE addresss for both the DTIM and any RAM in the Uncore. + if (`DMEM == `MEM_TIM) begin : dtim // *** directly instantiate RAM or ROM here. Instantiate SRAM1P1RW. // Merge SimpleRAM and SRAM1p1rw into one that is good for synthesis and RAM libraries and flops diff --git a/pipelined/testbench/testbench.sv b/pipelined/testbench/testbench.sv index 55bf0be6..ab57c0cb 100644 --- a/pipelined/testbench/testbench.sv +++ b/pipelined/testbench/testbench.sv @@ -398,7 +398,7 @@ module riscvassertions; assert (`F_SUPPORTED | ~`D_SUPPORTED) else $error("Can't support double fp (D) without supporting float (F)"); assert (`F_SUPPORTED | ~`Q_SUPPORTED) else $error("Can't support quad fp (Q) without supporting float (F)"); assert (`F_SUPPORTED | ~`ZFH_SUPPORTED) else $error("Can't support half-precision fp (ZFH) without supporting float (F)"); - assert (`DMEM == `MEM_CACHE | ~`F_SUPPORTED | `FLEN <= `XLEN) else $error("Data cache required to support FLEN > XLEN"); + assert (`DMEM == `MEM_CACHE | ~`F_SUPPORTED | `FLEN <= `XLEN) else $error("Data cache required to support FLEN > XLEN because AHB bus width is XLEN"); assert (`I_SUPPORTED ^ `E_SUPPORTED) else $error("Exactly one of I and E must be supported"); assert (`FLEN<=`XLEN | `DMEM == `MEM_CACHE) else $error("Wally does not support FLEN > XLEN unleses data cache is supported"); assert (`DCACHE_WAYSIZEINBYTES <= 4096 | (`DMEM != `MEM_CACHE) | `VIRTMEM_SUPPORTED == 0) else $error("DCACHE_WAYSIZEINBYTES cannot exceed 4 KiB when caches and vitual memory is enabled (to prevent aliasing)");