Modify the variable order inside the cva6_user_cfg_t (#1971)

Modify the variable order inside the cva6_user_cfg_t to gather extension params together and micro-architecture params together
This commit is contained in:
JeanRochCoulon 2024-03-28 15:19:49 +01:00 committed by GitHub
parent fbca195283
commit 8d6c1f709f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 149 additions and 149 deletions

View file

@ -48,30 +48,6 @@ package config_pkg;
typedef struct packed { typedef struct packed {
// General Purpose Register Size (in bits) // General Purpose Register Size (in bits)
int unsigned XLEN; int unsigned XLEN;
// Is FPGA optimization of CV32A6
bit FPGA_EN;
// Number of commit ports
int unsigned NrCommitPorts;
// AXI address width
int unsigned AxiAddrWidth;
// AXI data width
int unsigned AxiDataWidth;
// AXI ID width
int unsigned AxiIdWidth;
// AXI User width
int unsigned AxiUserWidth;
// TODO
int unsigned MemTidWidth;
// Load buffer entry buffer
int unsigned NrLoadBufEntries;
// Floating Point
bit FpuEn;
// Non standard 16bits Floating Point
bit XF16;
// Non standard 16bits Floating Point Alt
bit XF16ALT;
// Non standard 8bits Floating Point
bit XF8;
// Atomic RISC-V extension // Atomic RISC-V extension
bit RVA; bit RVA;
// Bit manipulation RISC-V extension // Bit manipulation RISC-V extension
@ -86,33 +62,33 @@ package config_pkg;
bit RVZCB; bit RVZCB;
// Zcmp RISC-V extension // Zcmp RISC-V extension
bit RVZCMP; bit RVZCMP;
// Non standard Vector Floating Point
bit XFVec;
// CV-X-IF coprocessor interface is supported
bit CvxifEn;
// Zicond RISC-V extension // Zicond RISC-V extension
bit ZiCondExtEn; bit ZiCondExtEn;
// Floating Point
bit FpuEn;
// Non standard 16bits Floating Point extension
bit XF16;
// Non standard 16bits Floating Point Alt extension
bit XF16ALT;
// Non standard 8bits Floating Point extension
bit XF8;
// Non standard Vector Floating Point extension
bit XFVec;
// Supervisor mode // Supervisor mode
bit RVS; bit RVS;
// User mode // User mode
bit RVU; bit RVU;
// Scoreboard length // Debug support
int unsigned NrScoreboardEntries; bit DebugEn;
// Base address of the debug module
logic [63:0] DmBaseAddress;
// Address to jump when halt request // Address to jump when halt request
logic [63:0] HaltAddress; logic [63:0] HaltAddress;
// Address to jump when exception // Address to jump when exception
logic [63:0] ExceptionAddress; logic [63:0] ExceptionAddress;
// Return address stack depth
int unsigned RASDepth;
// Branch target buffer entries
int unsigned BTBEntries;
// Branch history entries
int unsigned BHTEntries;
// Base address of the debug module
logic [63:0] DmBaseAddress;
// Tval Support Enable // Tval Support Enable
bit TvalEn; bit TvalEn;
// Number of PMP entries // PMP entries number
int unsigned NrPMPEntries; int unsigned NrPMPEntries;
// PMP CSR configuration reset values // PMP CSR configuration reset values
logic [15:0][63:0] PMPCfgRstVal; logic [15:0][63:0] PMPCfgRstVal;
@ -120,50 +96,74 @@ package config_pkg;
logic [15:0][63:0] PMPAddrRstVal; logic [15:0][63:0] PMPAddrRstVal;
// PMP CSR read-only bits // PMP CSR read-only bits
bit [15:0] PMPEntryReadOnly; bit [15:0] PMPEntryReadOnly;
// NOC bus type // PMA non idempotent rules number
noc_type_e NOCType;
// Number of PMA non idempotent rules
int unsigned NrNonIdempotentRules; int unsigned NrNonIdempotentRules;
// PMA NonIdempotent region base address // PMA NonIdempotent region base address
logic [NrMaxRules-1:0][63:0] NonIdempotentAddrBase; logic [NrMaxRules-1:0][63:0] NonIdempotentAddrBase;
// PMA NonIdempotent region length // PMA NonIdempotent region length
logic [NrMaxRules-1:0][63:0] NonIdempotentLength; logic [NrMaxRules-1:0][63:0] NonIdempotentLength;
// Number of PMA regions with execute rules // PMA regions with execute rules number
int unsigned NrExecuteRegionRules; int unsigned NrExecuteRegionRules;
// PMA Execute region base address // PMA Execute region base address
logic [NrMaxRules-1:0][63:0] ExecuteRegionAddrBase; logic [NrMaxRules-1:0][63:0] ExecuteRegionAddrBase;
// PMA Execute region address base // PMA Execute region address base
logic [NrMaxRules-1:0][63:0] ExecuteRegionLength; logic [NrMaxRules-1:0][63:0] ExecuteRegionLength;
// Number of PMA regions with cache rules // PMA regions with cache rules number
int unsigned NrCachedRegionRules; int unsigned NrCachedRegionRules;
// PMA cache region base address // PMA cache region base address
logic [NrMaxRules-1:0][63:0] CachedRegionAddrBase; logic [NrMaxRules-1:0][63:0] CachedRegionAddrBase;
// PMA cache region rules // PMA cache region rules
logic [NrMaxRules-1:0][63:0] CachedRegionLength; logic [NrMaxRules-1:0][63:0] CachedRegionLength;
// Maximum number of outstanding stores // CV-X-IF coprocessor interface enable
int unsigned MaxOutstandingStores; bit CvxifEn;
// Debug support // NOC bus type
bit DebugEn; noc_type_e NOCType;
// AXI address width
int unsigned AxiAddrWidth;
// AXI data width
int unsigned AxiDataWidth;
// AXI ID width
int unsigned AxiIdWidth;
// AXI User width
int unsigned AxiUserWidth;
// AXI burst in write // AXI burst in write
bit AxiBurstWriteEn; bit AxiBurstWriteEn;
// TODO
int unsigned MemTidWidth;
// Instruction cache size (in bytes) // Instruction cache size (in bytes)
int unsigned IcacheByteSize; int unsigned IcacheByteSize;
// Instruction cache associativity (number of ways) // Instruction cache associativity (number of ways)
int unsigned IcacheSetAssoc; int unsigned IcacheSetAssoc;
// Instruction line width // Instruction cache line width
int unsigned IcacheLineWidth; int unsigned IcacheLineWidth;
// Data cache size (in bytes) // Data cache size (in bytes)
int unsigned DcacheByteSize; int unsigned DcacheByteSize;
// Data cache associativity (number of ways) // Data cache associativity (number of ways)
int unsigned DcacheSetAssoc; int unsigned DcacheSetAssoc;
// Data line width // Data cache line width
int unsigned DcacheLineWidth; int unsigned DcacheLineWidth;
// TODO // User field on data bus enable
int unsigned DataUserEn; int unsigned DataUserEn;
// TODO // User field on fetch bus enable
int unsigned FetchUserWidth;
// TODO
int unsigned FetchUserEn; int unsigned FetchUserEn;
// Width of fetch user field
int unsigned FetchUserWidth;
// Is FPGA optimization of CV32A6
bit FPGA_EN;
// Number of commit ports
int unsigned NrCommitPorts;
// Scoreboard length
int unsigned NrScoreboardEntries;
// Load buffer entry buffer
int unsigned NrLoadBufEntries;
// Maximum number of outstanding stores
int unsigned MaxOutstandingStores;
// Return address stack depth
int unsigned RASDepth;
// Branch target buffer entries
int unsigned BTBEntries;
// Branch history entries
int unsigned BHTEntries;
} cva6_user_cfg_t; } cva6_user_cfg_t;
typedef struct packed { typedef struct packed {

View file

@ -20,54 +20,6 @@
- General Purpose Register Size (in bits) - General Purpose Register Size (in bits)
- 32 - 32
* - FPGA_EN
- Is FPGA optimization of CV32A6
- 0
* - NrCommitPorts
- Number of commit ports
- 1
* - AxiAddrWidth
- AXI address width
- 64
* - AxiDataWidth
- AXI data width
- 64
* - AxiIdWidth
- AXI ID width
- 4
* - AxiUserWidth
- AXI User width
- 32
* - MemTidWidth
- TODO
- 2
* - NrLoadBufEntries
- Load buffer entry buffer
- 1
* - FpuEn
- Floating Point
- 0
* - XF16
- Non standard 16bits Floating Point
- 0
* - XF16ALT
- Non standard 16bits Floating Point Alt
- 0
* - XF8
- Non standard 8bits Floating Point
- 0
* - RVA * - RVA
- Atomic RISC-V extension - Atomic RISC-V extension
- 0 - 0
@ -96,18 +48,30 @@
- Zcmp RISC-V extension - Zcmp RISC-V extension
- 0 - 0
* - XFVec
- Non standard Vector Floating Point
- 0
* - CvxifEn
- CV-X-IF coprocessor interface is supported
- 1
* - ZiCondExtEn * - ZiCondExtEn
- Zicond RISC-V extension - Zicond RISC-V extension
- 0 - 0
* - FpuEn
- Floating Point
- 0
* - XF16
- Non standard 16bits Floating Point extension
- 0
* - XF16ALT
- Non standard 16bits Floating Point Alt extension
- 0
* - XF8
- Non standard 8bits Floating Point extension
- 0
* - XFVec
- Non standard Vector Floating Point extension
- 0
* - RVS * - RVS
- Supervisor mode - Supervisor mode
- 0 - 0
@ -116,9 +80,13 @@
- User mode - User mode
- 0 - 0
* - NrScoreboardEntries * - DebugEn
- Scoreboard length - Debug support
- 4 - 0
* - DmBaseAddress
- Base address of the debug module
- 64'h0
* - HaltAddress * - HaltAddress
- Address to jump when halt request - Address to jump when halt request
@ -128,28 +96,12 @@
- Address to jump when exception - Address to jump when exception
- 64'h808 - 64'h808
* - RASDepth
- Return address stack depth
- 2
* - BTBEntries
- Branch target buffer entries
- 0
* - BHTEntries
- Branch history entries
- 32
* - DmBaseAddress
- Base address of the debug module
- 64'h0
* - TvalEn * - TvalEn
- Tval Support Enable - Tval Support Enable
- 0 - 0
* - NrPMPEntries * - NrPMPEntries
- Number of PMP entries - PMP entries number
- 8 - 8
* - PMPCfgRstVal * - PMPCfgRstVal
@ -164,12 +116,8 @@
- PMP CSR read-only bits - PMP CSR read-only bits
- 16'd0 - 16'd0
* - NOCType
- NOC bus type
- config_pkg::NOC_TYPE_AXI4_ATOP
* - NrNonIdempotentRules * - NrNonIdempotentRules
- Number of PMA non idempotent rules - PMA non idempotent rules number
- 2 - 2
* - NonIdempotentAddrBase * - NonIdempotentAddrBase
@ -181,7 +129,7 @@
- {64'b0 64'b0} - {64'b0 64'b0}
* - NrExecuteRegionRules * - NrExecuteRegionRules
- Number of PMA regions with execute rules - PMA regions with execute rules number
- 3 - 3
* - ExecuteRegionAddrBase * - ExecuteRegionAddrBase
@ -193,7 +141,7 @@
- {64'h40000000 64'h10000 64'h1000} - {64'h40000000 64'h10000 64'h1000}
* - NrCachedRegionRules * - NrCachedRegionRules
- Number of PMA regions with cache rules - PMA regions with cache rules number
- 1 - 1
* - CachedRegionAddrBase * - CachedRegionAddrBase
@ -204,18 +152,38 @@
- PMA cache region rules - PMA cache region rules
- {64'h40000000} - {64'h40000000}
* - MaxOutstandingStores * - CvxifEn
- Maximum number of outstanding stores - CV-X-IF coprocessor interface enable
- 7 - 1
* - DebugEn * - NOCType
- Debug support - NOC bus type
- 0 - config_pkg::NOC_TYPE_AXI4_ATOP
* - AxiAddrWidth
- AXI address width
- 64
* - AxiDataWidth
- AXI data width
- 64
* - AxiIdWidth
- AXI ID width
- 4
* - AxiUserWidth
- AXI User width
- 32
* - AxiBurstWriteEn * - AxiBurstWriteEn
- AXI burst in write - AXI burst in write
- 0 - 0
* - MemTidWidth
- TODO
- 2
* - IcacheByteSize * - IcacheByteSize
- Instruction cache size (in bytes) - Instruction cache size (in bytes)
- 2048 - 2048
@ -225,7 +193,7 @@
- 2 - 2
* - IcacheLineWidth * - IcacheLineWidth
- Instruction line width - Instruction cache line width
- 128 - 128
* - DcacheByteSize * - DcacheByteSize
@ -237,17 +205,49 @@
- 8 - 8
* - DcacheLineWidth * - DcacheLineWidth
- Data line width - Data cache line width
- 128 - 128
* - DataUserEn * - DataUserEn
- TODO - User field on data bus enable
- 0
* - FetchUserEn
- User field on fetch bus enable
- 0 - 0
* - FetchUserWidth * - FetchUserWidth
- TODO - Width of fetch user field
- 32 - 32
* - FetchUserEn * - FPGA_EN
- TODO - Is FPGA optimization of CV32A6
- 0 - 0
* - NrCommitPorts
- Number of commit ports
- 1
* - NrScoreboardEntries
- Scoreboard length
- 4
* - NrLoadBufEntries
- Load buffer entry buffer
- 1
* - MaxOutstandingStores
- Maximum number of outstanding stores
- 7
* - RASDepth
- Return address stack depth
- 2
* - BTBEntries
- Branch target buffer entries
- 0
* - BHTEntries
- Branch history entries
- 32