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.

This commit is contained in:
Ross Thompson 2023-06-09 09:28:24 -05:00
parent 74ccabdf69
commit 9bae203d1c
9 changed files with 189 additions and 189 deletions

View File

@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 1;
localparam PMP_ENTRIES = 32'd16; localparam PMP_ENTRIES = 32'd16;
// Address space // Address space
localparam RESET_VECTOR = 64'h0000000000001000; localparam logic [63:0] RESET_VECTOR = 64'h0000000000001000;
// WFI Timeout Wait // WFI Timeout Wait
localparam WFI_TIMEOUT_BIT = 32'd16; 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 // 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 // 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_SUPPORTED = 1'b0;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h00001FFF; localparam logic [63:0] DTIM_RANGE = 64'h00001FFF;
localparam IROM_SUPPORTED = 1'b0; localparam IROM_SUPPORTED = 1'b0;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h00001FFF; localparam logic [63:0] IROM_RANGE = 64'h00001FFF;
localparam BOOTROM_SUPPORTED = 1'b1; localparam BOOTROM_SUPPORTED = 1'b1;
localparam BOOTROM_BASE = 64'h00001000 ; localparam logic [63:0] BOOTROM_BASE = 64'h00001000 ;
localparam BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b1; localparam UNCORE_RAM_SUPPORTED = 1'b1;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b1; localparam CLINT_SUPPORTED = 1'b1;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b1; localparam GPIO_SUPPORTED = 1'b1;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b1; localparam UART_SUPPORTED = 1'b1;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b1; localparam PLIC_SUPPORTED = 1'b1;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd64; localparam AHBW = 32'd64;

View File

@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 0;
localparam PMP_ENTRIES = 32'd0; localparam PMP_ENTRIES = 32'd0;
// Address space // Address space
localparam RESET_VECTOR = 64'h80000000; localparam logic [63:0] RESET_VECTOR = 64'h80000000;
// WFI Timeout Wait // WFI Timeout Wait
localparam WFI_TIMEOUT_BIT = 32'd16; 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 // 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 // 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_SUPPORTED = 1'b0;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b0; localparam IROM_SUPPORTED = 1'b0;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b1; localparam BOOTROM_SUPPORTED = 1'b1;
localparam BOOTROM_BASE = 64'h00001000; localparam logic [63:0] BOOTROM_BASE = 64'h00001000;
localparam BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b1; localparam UNCORE_RAM_SUPPORTED = 1'b1;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b0; localparam CLINT_SUPPORTED = 1'b0;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b0; localparam GPIO_SUPPORTED = 1'b0;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b0; localparam UART_SUPPORTED = 1'b0;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b0; localparam PLIC_SUPPORTED = 1'b0;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd32; localparam AHBW = 32'd32;

View File

@ -76,7 +76,7 @@ localparam IDIV_ON_FPU = 1;
localparam PMP_ENTRIES = 32'd16; localparam PMP_ENTRIES = 32'd16;
// Address space // Address space
localparam RESET_VECTOR = 64'h80000000; localparam logic [63:0] RESET_VECTOR = 64'h80000000;
// WFI Timeout Wait // WFI Timeout Wait
localparam WFI_TIMEOUT_BIT = 32'd16; 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 // 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 // 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_SUPPORTED = 1'b0;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b0; localparam IROM_SUPPORTED = 1'b0;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b1; localparam BOOTROM_SUPPORTED = 1'b1;
localparam BOOTROM_BASE = 64'h00001000; localparam logic [63:0] BOOTROM_BASE = 64'h00001000;
localparam BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b1; localparam UNCORE_RAM_SUPPORTED = 1'b1;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b1; localparam CLINT_SUPPORTED = 1'b1;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b1; localparam GPIO_SUPPORTED = 1'b1;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b1; localparam UART_SUPPORTED = 1'b1;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b1; localparam PLIC_SUPPORTED = 1'b1;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd32; localparam AHBW = 32'd32;

View File

@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 0;
localparam PMP_ENTRIES = 32'd0; localparam PMP_ENTRIES = 32'd0;
// Address space // Address space
localparam RESET_VECTOR = 64'h80000000; localparam logic [63:0] RESET_VECTOR = 64'h80000000;
// WFI Timeout Wait // WFI Timeout Wait
localparam WFI_TIMEOUT_BIT = 32'd16; 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 // 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 // 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_SUPPORTED = 1'b1;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b1; localparam IROM_SUPPORTED = 1'b1;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b0; localparam BOOTROM_SUPPORTED = 1'b0;
localparam BOOTROM_BASE = 64'h00001000; localparam logic [63:0] BOOTROM_BASE = 64'h00001000;
localparam BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b0; localparam UNCORE_RAM_SUPPORTED = 1'b0;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b0; localparam CLINT_SUPPORTED = 1'b0;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b0; localparam GPIO_SUPPORTED = 1'b0;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b0; localparam UART_SUPPORTED = 1'b0;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b0; localparam PLIC_SUPPORTED = 1'b0;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd32; localparam AHBW = 32'd32;

View File

@ -74,7 +74,7 @@ localparam IDIV_ON_FPU = 0;
localparam PMP_ENTRIES = 32'd0; localparam PMP_ENTRIES = 32'd0;
// Address space // Address space
localparam RESET_VECTOR = 64'h80000000; localparam logic [63:0] RESET_VECTOR = 64'h80000000;
// WFI Timeout Wait // WFI Timeout Wait
localparam WFI_TIMEOUT_BIT = 32'd16; 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 // 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 // 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_SUPPORTED = 1'b1;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b1; localparam IROM_SUPPORTED = 1'b1;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b0; localparam BOOTROM_SUPPORTED = 1'b0;
localparam BOOTROM_BASE = 64'h00001000; localparam logic [63:0] BOOTROM_BASE = 64'h00001000;
localparam BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b0; localparam UNCORE_RAM_SUPPORTED = 1'b0;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h07FFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h07FFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b1; localparam CLINT_SUPPORTED = 1'b1;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b1; localparam GPIO_SUPPORTED = 1'b1;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b1; localparam UART_SUPPORTED = 1'b1;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b1; localparam PLIC_SUPPORTED = 1'b1;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd32; localparam AHBW = 32'd32;

View File

@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 1;
localparam PMP_ENTRIES = 32'd16; localparam PMP_ENTRIES = 32'd16;
// Address space // Address space
localparam RESET_VECTOR = 64'h0000000080000000; localparam logic [63:0] RESET_VECTOR = 64'h0000000080000000;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd64; 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? // *** each of these is `PA_BITS wide. is this paramaterizable INSIDE the config file?
localparam DTIM_SUPPORTED = 1'b0; localparam DTIM_SUPPORTED = 1'b0;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b0; localparam IROM_SUPPORTED = 1'b0;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b1; 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 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 BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b1; localparam UNCORE_RAM_SUPPORTED = 1'b1;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h7FFFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h7FFFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b1; localparam CLINT_SUPPORTED = 1'b1;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b1; localparam GPIO_SUPPORTED = 1'b1;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b1; localparam UART_SUPPORTED = 1'b1;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b1; localparam PLIC_SUPPORTED = 1'b1;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Test modes // Test modes

View File

@ -78,7 +78,7 @@ localparam IDIV_ON_FPU = 1;
localparam PMP_ENTRIES = 32'd16; localparam PMP_ENTRIES = 32'd16;
// Address space // Address space
localparam RESET_VECTOR = 64'h0000000080000000; localparam logic [63:0] RESET_VECTOR = 64'h0000000080000000;
// Bus Interface width // Bus Interface width
localparam AHBW = 32'd64; 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? // *** each of these is `PA_BITS wide. is this paramaterizable INSIDE the config file?
localparam DTIM_SUPPORTED = 1'b0; localparam DTIM_SUPPORTED = 1'b0;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b0; localparam IROM_SUPPORTED = 1'b0;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b1; 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 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 BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b1; localparam UNCORE_RAM_SUPPORTED = 1'b1;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h7FFFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h7FFFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b1; localparam CLINT_SUPPORTED = 1'b1;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b1; localparam GPIO_SUPPORTED = 1'b1;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b1; localparam UART_SUPPORTED = 1'b1;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b1; localparam PLIC_SUPPORTED = 1'b1;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Test modes // Test modes

View File

@ -75,7 +75,7 @@ localparam IDIV_ON_FPU = 0;
localparam PMP_ENTRIES = 32'd0; localparam PMP_ENTRIES = 32'd0;
// Address space // Address space
localparam RESET_VECTOR = 64'h0000000080000000; localparam logic [63:0] RESET_VECTOR = 64'h0000000080000000;
// Bus Interface width // Bus Interface width
localparam AHBW = (XLEN); 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? // *** each of these is `PA_BITS wide. is this paramaterizable INSIDE the config file?
localparam DTIM_SUPPORTED = 1'b1; localparam DTIM_SUPPORTED = 1'b1;
localparam DTIM_BASE = 64'h80000000; localparam logic [63:0] DTIM_BASE = 64'h80000000;
localparam DTIM_RANGE = 64'h007FFFFF; localparam logic [63:0] DTIM_RANGE = 64'h007FFFFF;
localparam IROM_SUPPORTED = 1'b1; localparam IROM_SUPPORTED = 1'b1;
localparam IROM_BASE = 64'h80000000; localparam logic [63:0] IROM_BASE = 64'h80000000;
localparam IROM_RANGE = 64'h007FFFFF; localparam logic [63:0] IROM_RANGE = 64'h007FFFFF;
localparam BOOTROM_SUPPORTED = 1'b0; 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 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 BOOTROM_RANGE = 64'h00000FFF; localparam logic [63:0] BOOTROM_RANGE = 64'h00000FFF;
localparam UNCORE_RAM_SUPPORTED = 1'b0; localparam UNCORE_RAM_SUPPORTED = 1'b0;
localparam UNCORE_RAM_BASE = 64'h80000000; localparam logic [63:0] UNCORE_RAM_BASE = 64'h80000000;
localparam UNCORE_RAM_RANGE = 64'h7FFFFFFF; localparam logic [63:0] UNCORE_RAM_RANGE = 64'h7FFFFFFF;
localparam EXT_MEM_SUPPORTED = 1'b0; localparam EXT_MEM_SUPPORTED = 1'b0;
localparam EXT_MEM_BASE = 64'h80000000; localparam logic [63:0] EXT_MEM_BASE = 64'h80000000;
localparam EXT_MEM_RANGE = 64'h07FFFFFF; localparam logic [63:0] EXT_MEM_RANGE = 64'h07FFFFFF;
localparam CLINT_SUPPORTED = 1'b0; localparam CLINT_SUPPORTED = 1'b0;
localparam CLINT_BASE = 64'h02000000; localparam logic [63:0] CLINT_BASE = 64'h02000000;
localparam CLINT_RANGE = 64'h0000FFFF; localparam logic [63:0] CLINT_RANGE = 64'h0000FFFF;
localparam GPIO_SUPPORTED = 1'b0; localparam GPIO_SUPPORTED = 1'b0;
localparam GPIO_BASE = 64'h10060000; localparam logic [63:0] GPIO_BASE = 64'h10060000;
localparam GPIO_RANGE = 64'h000000FF; localparam logic [63:0] GPIO_RANGE = 64'h000000FF;
localparam UART_SUPPORTED = 1'b0; localparam UART_SUPPORTED = 1'b0;
localparam UART_BASE = 64'h10000000; localparam logic [63:0] UART_BASE = 64'h10000000;
localparam UART_RANGE = 64'h00000007; localparam logic [63:0] UART_RANGE = 64'h00000007;
localparam PLIC_SUPPORTED = 1'b0; localparam PLIC_SUPPORTED = 1'b0;
localparam PLIC_BASE = 64'h0C000000; localparam logic [63:0] PLIC_BASE = 64'h0C000000;
localparam PLIC_RANGE = 64'h03FFFFFF; localparam logic [63:0] PLIC_RANGE = 64'h03FFFFFF;
localparam SDC_SUPPORTED = 1'b0; localparam SDC_SUPPORTED = 1'b0;
localparam SDC_BASE = 64'h00012100; localparam logic [63:0] SDC_BASE = 64'h00012100;
localparam SDC_RANGE = 64'h0000001F; localparam logic [63:0] SDC_RANGE = 64'h0000001F;
// Test modes // Test modes

View File

@ -84,7 +84,7 @@ typedef struct packed {
int PMP_ENTRIES; int PMP_ENTRIES;
// Address space // Address space
longint RESET_VECTOR; logic [63:0] RESET_VECTOR;
// WFI Timeout Wait // WFI Timeout Wait
int WFI_TIMEOUT_BIT; int WFI_TIMEOUT_BIT;
@ -93,35 +93,35 @@ typedef struct packed {
// Peripheral memory space extends from BASE to BASE+RANGE // 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 // Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
logic DTIM_SUPPORTED; logic DTIM_SUPPORTED;
longint DTIM_BASE; logic [63:0] DTIM_BASE;
longint DTIM_RANGE; logic [63:0] DTIM_RANGE;
logic IROM_SUPPORTED; logic IROM_SUPPORTED;
longint IROM_BASE; logic [63:0] IROM_BASE;
longint IROM_RANGE; logic [63:0] IROM_RANGE;
logic BOOTROM_SUPPORTED; logic BOOTROM_SUPPORTED;
longint BOOTROM_BASE; logic [63:0] BOOTROM_BASE;
longint BOOTROM_RANGE; logic [63:0] BOOTROM_RANGE;
logic UNCORE_RAM_SUPPORTED; logic UNCORE_RAM_SUPPORTED;
longint UNCORE_RAM_BASE; logic [63:0] UNCORE_RAM_BASE;
longint UNCORE_RAM_RANGE; logic [63:0] UNCORE_RAM_RANGE;
logic EXT_MEM_SUPPORTED; logic EXT_MEM_SUPPORTED;
longint EXT_MEM_BASE; logic [63:0] EXT_MEM_BASE;
longint EXT_MEM_RANGE; logic [63:0] EXT_MEM_RANGE;
logic CLINT_SUPPORTED; logic CLINT_SUPPORTED;
longint CLINT_BASE; logic [63:0] CLINT_BASE;
longint CLINT_RANGE; logic [63:0] CLINT_RANGE;
logic GPIO_SUPPORTED; logic GPIO_SUPPORTED;
longint GPIO_BASE; logic [63:0] GPIO_BASE;
longint GPIO_RANGE; logic [63:0] GPIO_RANGE;
logic UART_SUPPORTED; logic UART_SUPPORTED;
longint UART_BASE; logic [63:0] UART_BASE;
longint UART_RANGE; logic [63:0] UART_RANGE;
logic PLIC_SUPPORTED; logic PLIC_SUPPORTED;
longint PLIC_BASE; logic [63:0] PLIC_BASE;
longint PLIC_RANGE; logic [63:0] PLIC_RANGE;
logic SDC_SUPPORTED; logic SDC_SUPPORTED;
longint SDC_BASE; logic [63:0] SDC_BASE;
longint SDC_RANGE; logic [63:0] SDC_RANGE;
// Test modes // Test modes