From a8a8422557528ab221a0ff2dfdb027aebb7a981a Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Fri, 9 Jun 2023 09:28:24 -0500 Subject: [PATCH] Updated parameterization types. Modelsim version 2022.1 did requires defaults to a 32 bit integer. The base and ranges for the address decoder need to be larger. --- config/buildroot/config.vh | 42 ++++++++++++++++++------------------- config/rv32e/config.vh | 42 ++++++++++++++++++------------------- config/rv32gc/config.vh | 42 ++++++++++++++++++------------------- config/rv32i/config.vh | 42 ++++++++++++++++++------------------- config/rv32imc/config.vh | 42 ++++++++++++++++++------------------- config/rv64fpquad/config.vh | 42 ++++++++++++++++++------------------- config/rv64gc/config.vh | 42 ++++++++++++++++++------------------- config/rv64i/config.vh | 42 ++++++++++++++++++------------------- src/wally/cvw.sv | 42 ++++++++++++++++++------------------- 9 files changed, 189 insertions(+), 189 deletions(-) diff --git a/config/buildroot/config.vh b/config/buildroot/config.vh index f5a1b6421..db356f07d 100644 --- a/config/buildroot/config.vh +++ b/config/buildroot/config.vh @@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 1; localparam PMP_ENTRIES = 32'd16; // Address space -localparam RESET_VECTOR = 64'h0000000000001000; +localparam logic [63:0] RESET_VECTOR = 64'h0000000000001000; // WFI Timeout Wait localparam WFI_TIMEOUT_BIT = 32'd16; @@ -84,35 +84,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // 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 localparam DTIM_SUPPORTED = 1'b0; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h00001FFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h00001FFF; localparam IROM_SUPPORTED = 1'b0; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h00001FFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h00001FFF; localparam BOOTROM_SUPPORTED = 1'b1; -localparam BOOTROM_BASE = 64'h00001000 ; -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000 ; +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b1; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b1; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b1; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b1; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Bus Interface width localparam AHBW = 32'd64; diff --git a/config/rv32e/config.vh b/config/rv32e/config.vh index b2e45562e..e5a09aea6 100644 --- a/config/rv32e/config.vh +++ b/config/rv32e/config.vh @@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 0; localparam PMP_ENTRIES = 32'd0; // Address space -localparam RESET_VECTOR = 64'h80000000; +localparam logic [63:0] RESET_VECTOR = 64'h80000000; // WFI Timeout Wait localparam WFI_TIMEOUT_BIT = 32'd16; @@ -84,35 +84,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // 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 localparam DTIM_SUPPORTED = 1'b0; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b0; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b1; -localparam BOOTROM_BASE = 64'h00001000; -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b1; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b0; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b0; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b0; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b0; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv32gc/config.vh b/config/rv32gc/config.vh index 23c865c8c..b966b6484 100644 --- a/config/rv32gc/config.vh +++ b/config/rv32gc/config.vh @@ -76,7 +76,7 @@ localparam IDIV_ON_FPU = 1; localparam PMP_ENTRIES = 32'd16; // Address space -localparam RESET_VECTOR = 64'h80000000; +localparam logic [63:0] RESET_VECTOR = 64'h80000000; // WFI Timeout Wait localparam WFI_TIMEOUT_BIT = 32'd16; @@ -85,35 +85,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // 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 localparam DTIM_SUPPORTED = 1'b0; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b0; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b1; -localparam BOOTROM_BASE = 64'h00001000; -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b1; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b1; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b1; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b1; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv32i/config.vh b/config/rv32i/config.vh index bd307f17d..c70679912 100644 --- a/config/rv32i/config.vh +++ b/config/rv32i/config.vh @@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 0; localparam PMP_ENTRIES = 32'd0; // Address space -localparam RESET_VECTOR = 64'h80000000; +localparam logic [63:0] RESET_VECTOR = 64'h80000000; // WFI Timeout Wait localparam WFI_TIMEOUT_BIT = 32'd16; @@ -84,35 +84,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // 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 localparam DTIM_SUPPORTED = 1'b1; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b1; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b0; -localparam BOOTROM_BASE = 64'h00001000; -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b0; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b0; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b0; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b0; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b0; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv32imc/config.vh b/config/rv32imc/config.vh index d49fa7ec3..17a9e193b 100644 --- a/config/rv32imc/config.vh +++ b/config/rv32imc/config.vh @@ -74,7 +74,7 @@ localparam IDIV_ON_FPU = 0; localparam PMP_ENTRIES = 32'd0; // Address space -localparam RESET_VECTOR = 64'h80000000; +localparam logic [63:0] RESET_VECTOR = 64'h80000000; // WFI Timeout Wait localparam WFI_TIMEOUT_BIT = 32'd16; @@ -83,35 +83,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // 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 localparam DTIM_SUPPORTED = 1'b1; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b1; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b0; -localparam BOOTROM_BASE = 64'h00001000; -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b0; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b1; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b1; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b1; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Bus Interface width localparam AHBW = 32'd32; diff --git a/config/rv64fpquad/config.vh b/config/rv64fpquad/config.vh index 655fab9b6..949fc3092 100644 --- a/config/rv64fpquad/config.vh +++ b/config/rv64fpquad/config.vh @@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 1; localparam PMP_ENTRIES = 32'd16; // Address space -localparam RESET_VECTOR = 64'h0000000080000000; +localparam logic [63:0] RESET_VECTOR = 64'h0000000080000000; // Bus Interface width localparam AHBW = 32'd64; @@ -89,35 +89,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // *** each of these is `PA_BITS wide. is this paramaterizable INSIDE the config file? localparam DTIM_SUPPORTED = 1'b0; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b0; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b1; -localparam BOOTROM_BASE = 64'h00001000; // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b1; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h7FFFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h7FFFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b1; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b1; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b1; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Test modes diff --git a/config/rv64gc/config.vh b/config/rv64gc/config.vh index 923cd08d3..709d3d248 100644 --- a/config/rv64gc/config.vh +++ b/config/rv64gc/config.vh @@ -78,7 +78,7 @@ localparam IDIV_ON_FPU = 1; localparam PMP_ENTRIES = 32'd16; // Address space -localparam RESET_VECTOR = 64'h0000000080000000; +localparam logic [63:0] RESET_VECTOR = 64'h0000000080000000; // Bus Interface width localparam AHBW = 32'd64; @@ -92,35 +92,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // *** each of these is `PA_BITS wide. is this paramaterizable INSIDE the config file? localparam DTIM_SUPPORTED = 1'b0; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b0; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b1; -localparam BOOTROM_BASE = 64'h00001000; // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder; -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder; +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b1; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h7FFFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h7FFFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b1; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b1; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b1; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b1; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Test modes diff --git a/config/rv64i/config.vh b/config/rv64i/config.vh index d2914c966..cc0fea1fb 100644 --- a/config/rv64i/config.vh +++ b/config/rv64i/config.vh @@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 0; localparam PMP_ENTRIES = 32'd0; // Address space -localparam RESET_VECTOR = 64'h0000000080000000; +localparam logic [63:0] RESET_VECTOR = 64'h0000000080000000; // Bus Interface width localparam AHBW = (XLEN); @@ -89,35 +89,35 @@ localparam WFI_TIMEOUT_BIT = 32'd16; // *** each of these is `PA_BITS wide. is this paramaterizable INSIDE the config file? localparam DTIM_SUPPORTED = 1'b1; -localparam DTIM_BASE = 64'h80000000; -localparam DTIM_RANGE = 64'h007FFFFF; +localparam logic [63:0] DTIM_BASE = 64'h80000000; +localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF; localparam IROM_SUPPORTED = 1'b1; -localparam IROM_BASE = 64'h80000000; -localparam IROM_RANGE = 64'h007FFFFF; +localparam logic [63:0] IROM_BASE = 64'h80000000; +localparam logic [63:0] IROM_RANGE = 64'h007FFFFF; localparam BOOTROM_SUPPORTED = 1'b0; -localparam BOOTROM_BASE = 64'h00001000; // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder -localparam BOOTROM_RANGE = 64'h00000FFF; +localparam logic [63:0] BOOTROM_BASE = 64'h00001000; // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder +localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF; localparam UNCORE_RAM_SUPPORTED = 1'b0; -localparam UNCORE_RAM_BASE = 64'h80000000; -localparam UNCORE_RAM_RANGE = 64'h7FFFFFFF; +localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000; +localparam logic [63:0] UNCORE_RAM_RANGE = 64'h7FFFFFFF; localparam EXT_MEM_SUPPORTED = 1'b0; -localparam EXT_MEM_BASE = 64'h80000000; -localparam EXT_MEM_RANGE = 64'h07FFFFFF; +localparam logic [63:0] EXT_MEM_BASE = 64'h80000000; +localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF; localparam CLINT_SUPPORTED = 1'b0; -localparam CLINT_BASE = 64'h02000000; -localparam CLINT_RANGE = 64'h0000FFFF; +localparam logic [63:0] CLINT_BASE = 64'h02000000; +localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF; localparam GPIO_SUPPORTED = 1'b0; -localparam GPIO_BASE = 64'h10060000; -localparam GPIO_RANGE = 64'h000000FF; +localparam logic [63:0] GPIO_BASE = 64'h10060000; +localparam logic [63:0] GPIO_RANGE = 64'h000000FF; localparam UART_SUPPORTED = 1'b0; -localparam UART_BASE = 64'h10000000; -localparam UART_RANGE = 64'h00000007; +localparam logic [63:0] UART_BASE = 64'h10000000; +localparam logic [63:0] UART_RANGE = 64'h00000007; localparam PLIC_SUPPORTED = 1'b0; -localparam PLIC_BASE = 64'h0C000000; -localparam PLIC_RANGE = 64'h03FFFFFF; +localparam logic [63:0] PLIC_BASE = 64'h0C000000; +localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF; localparam SDC_SUPPORTED = 1'b0; -localparam SDC_BASE = 64'h00012100; -localparam SDC_RANGE = 64'h0000001F; +localparam logic [63:0] SDC_BASE = 64'h00012100; +localparam logic [63:0] SDC_RANGE = 64'h0000001F; // Test modes diff --git a/src/wally/cvw.sv b/src/wally/cvw.sv index f58f7814f..dfcebcdea 100644 --- a/src/wally/cvw.sv +++ b/src/wally/cvw.sv @@ -84,7 +84,7 @@ typedef struct packed { int PMP_ENTRIES; // Address space - longint RESET_VECTOR; + logic [63:0] RESET_VECTOR; // WFI Timeout Wait int WFI_TIMEOUT_BIT; @@ -93,35 +93,35 @@ typedef struct packed { // 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 logic DTIM_SUPPORTED; - longint DTIM_BASE; - longint DTIM_RANGE; + logic [63:0] DTIM_BASE; + logic [63:0] DTIM_RANGE; logic IROM_SUPPORTED; - longint IROM_BASE; - longint IROM_RANGE; + logic [63:0] IROM_BASE; + logic [63:0] IROM_RANGE; logic BOOTROM_SUPPORTED; - longint BOOTROM_BASE; - longint BOOTROM_RANGE; + logic [63:0] BOOTROM_BASE; + logic [63:0] BOOTROM_RANGE; logic UNCORE_RAM_SUPPORTED; - longint UNCORE_RAM_BASE; - longint UNCORE_RAM_RANGE; + logic [63:0] UNCORE_RAM_BASE; + logic [63:0] UNCORE_RAM_RANGE; logic EXT_MEM_SUPPORTED; - longint EXT_MEM_BASE; - longint EXT_MEM_RANGE; + logic [63:0] EXT_MEM_BASE; + logic [63:0] EXT_MEM_RANGE; logic CLINT_SUPPORTED; - longint CLINT_BASE; - longint CLINT_RANGE; + logic [63:0] CLINT_BASE; + logic [63:0] CLINT_RANGE; logic GPIO_SUPPORTED; - longint GPIO_BASE; - longint GPIO_RANGE; + logic [63:0] GPIO_BASE; + logic [63:0] GPIO_RANGE; logic UART_SUPPORTED; - longint UART_BASE; - longint UART_RANGE; + logic [63:0] UART_BASE; + logic [63:0] UART_RANGE; logic PLIC_SUPPORTED; - longint PLIC_BASE; - longint PLIC_RANGE; + logic [63:0] PLIC_BASE; + logic [63:0] PLIC_RANGE; logic SDC_SUPPORTED; - longint SDC_BASE; - longint SDC_RANGE; + logic [63:0] SDC_BASE; + logic [63:0] SDC_RANGE; // Test modes