Skip to content

Commit 994ca34

Browse files
Merge pull request #354 from Silabs-ArjanB/ArjanB_ppl_2
Updated according to pre-PPL meeting
2 parents 34a3cd5 + 375da9d commit 994ca34

File tree

2 files changed

+59
-46
lines changed

2 files changed

+59
-46
lines changed

program/CV32E40S-PPL.md

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ Compared to CV32E40P, CV32E40S adds the following key features
1414
* Enhanced PMP (ePMP)
1515
* PMA
1616
* Anti-tampering features
17-
* Protection against glitch attacks
18-
* Control flow integrity
19-
* Autonomous (hardware-based, low latency) response mechanisms
17+
* Protection against glitch attacks
18+
* Control flow integrity
19+
* Autonomous (hardware-based, low latency) response mechanisms
2020
* Reduction of side channel leakage
2121

2222
### Components of the Project
@@ -40,21 +40,23 @@ The scope of project is similar to CV32E40P. It consists of design enhancements,
4040

4141
Software compiler support will be handled in related OpenHW projects, not yet defined. However, apart for some custom CSRs, no custom instructions will be added and as such software compiler support is expected to be minimal (if not zero).
4242

43+
Support for the (not-yet-ratified) Zce extension would be very welcome from the Software TG, but this PPL/PL does not assume that this will happen.
44+
4345
As of yet any plans to develop OpenHW hardware reference designs such as FPGA or SoC have not been defined.
4446

4547
#### Component 1 - RTL design
4648

4749
The following design aspects of the project are required:
4850

4951
* User mode
50-
* Xsecure
52+
* Xsecure (configurable all or nothing)
5153
* Anti-tampering features
5254
* Protection against glitch attacks
5355
* Control flow integrity
5456
* Autonomous (hardware-based, low latency) response mechanisms
5557
* Reduction of side channel leakage
56-
* ePMP
57-
* PMA
58+
* ePMP (configurable number of regions)
59+
* PMA (configurable number of regions)
5860
* Zce extension
5961
* Extended debug functionality
6062
* Simplified pipeline and controller
@@ -70,7 +72,7 @@ The following design aspects of the project are required:
7072

7173
The verification approach is based on that developed for the CV32E40P.
7274

73-
The same verification approach as for the CV32E40P will be used (UVM, lock step ISS, formal techniques, random code generation, etc.) with the major improvement being a bound RVFI interface to ease the integration of the core with the verification environment (the RVVI->RVFI scoreboard/adapter is outside the scope of this project).
75+
A similar verification approach as for the CV32E40P will be used (UVM, lock step ISS, formal techniques, random code generation, etc.) with the major improvement being a bound RVFI interface to the RTL and an RVVI interface towards the ISS to ease the integration of the core with the verification environment (the RVFI->RVVI scoreboard/adapter is outside the scope of this project). The Imperas ISS will be extended with the new (software visible) features once ratified or deemed stable enough (e.g. User mode, ePMP, Zce, bus error support).
7476

7577
#### Component 3 - Documentation
7678
See "Project Documents" section
@@ -115,16 +117,16 @@ CV32E40S key features
115117
* OBI
116118

117119
Security features (Xsecure)
118-
* Security alert outputs
119-
* Data independent timing
120-
* Dummy instruction insertion
121-
* Register file ECC
122-
* Hardened PC
123-
* Hardened CSRs
124-
* Control flow hardening
125-
* Functional unit hardening
126-
* Bus interface hardening
127-
* Reduction of profiling infrastructure
120+
* Security alert outputs (Minor and major alert pins that hardware can use e.g. to trigger reset or erase. See https://ibex-core.readthedocs.io/en/latest/03_reference/security.html)
121+
* Data independent timing (Branches and div/divu/rem/remu will be made fixed latency. See https://ibex-core.readthedocs.io/en/latest/03_reference/security.html)
122+
* Dummy instruction insertion (Randomly insert dummy instructions without functional impact to disrupt timing and power profiles. See https://ibex-core.readthedocs.io/en/latest/03_reference/security.html)
123+
* Register file ECC (Add checksum or parity to register file words to detect (not correct) certain errors. See https://ibex-core.readthedocs.io/en/latest/03_reference/security.html)
124+
* Hardened PC (Check that PC increments as expected for sequential code. See https://ibex-core.readthedocs.io/en/latest/03_reference/security.html)
125+
* Hardened CSRs (Add shadow registers for critical CSRs to detect certain glitch attacks. See https://ibex-core.readthedocs.io/en/latest/03_reference/security.html)
126+
* Control flow hardening (Sanity check that branches are (not) taken as they should)
127+
* Functional unit and FSM hardening (Encode critical signals and FSM state such that certain glitch attacks can be detected)
128+
* Bus interface hardening (Check that bus protocol is not violated)
129+
* Reduction of profiling infrastructure (Prevent User mode from seeing Machine mode statistics)
128130
* Etc.
129131

130132
Code size reduction extension (Zce) (see https://lists.riscv.org/g/tech-code-size/ for details)
@@ -179,7 +181,8 @@ Zce, ePMP, 0.14 Debug specifications have not been ratified yet by RISC-V. Will
179181
## List of project outputs
180182

181183
* Verified RTL
182-
* Verification environment including test cases
184+
* Verification environment including test cases
185+
* Instruction Set Simulator (ISS)
183186
* Documentation (See Project Documents)
184187

185188
## TGs Impacted/Resource requirements
@@ -196,16 +199,17 @@ Resource requirements covered within Silicon Labs.
196199

197200
## Engineering resource supplied by members - requirement and availability
198201

199-
Silicon Labs
200-
201-
Arjan Bink (architecture)
202-
Oivind Ekelund (TPL, PM)
203-
Oystein (design)
204-
Halfdan (design)
205-
Steve (verification architecture)
206-
Marton Teilgard (verification)
207-
Robin (verification)
208-
Henrik (verification)
202+
* Silicon Labs
203+
* Arjan Bink (architecture)
204+
* Oivind Ekelund (TPL, PM)
205+
* Oystein (design)
206+
* Halfdan (design)
207+
* Steve (verification architecture)
208+
* Marton Teilgard (verification)
209+
* Robin (verification)
210+
* Henrik (verification)
211+
* Imperas
212+
* (names to be provided)
209213

210214
Approving commits within https://github.com/openhwgroup/core-v-verif/tree/*/cv32e40s can be done by Steve Richmond, Mike Thompson, Oystein Knauserud or Arjan Bink. Marton Teilgard will be added to this list as soon as he can be elected as committer. Approving commits outside of cv32e40s can be done by Steve Richmond or Mike Thompson.
211215

program/CV32E40X-PPL.md

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,19 @@ The scope of project is similar to CV32E40P. It consists of design enhancements,
3838

3939
Software compiler support will be handled in related OpenHW projects, not yet defined. No custom instructions will be added and as such software compiler support is expected to be minimal (if not zero). Tool chain support is however required for the deliverable in which we will show how an example instruction can be added in an accelerator connected to the extension interface; this example will also describe and provide the related modifications to assembler/disassembler, etc.
4040

41+
Support for the (not-yet-ratified) Zce extension would be very welcome from the Software TG, but this PPL/PL does not assume that this will happen.
42+
4143
As of yet any plans to develop OpenHW hardware reference designs such as FPGA or SoC have not been defined.
4244

4345
#### Component 1 - RTL design
4446

4547
The following design aspects of the project are required:
4648

47-
* PMA
49+
* PMA (configurable number of regions)
4850
* Zce extension
4951
* A extension
50-
* B extension
51-
* P extension
52+
* B extension (configurable all or nothing)
53+
* P extension (configurable all or nothing)
5254
* X interface
5355
* Extended debug functionality
5456
* Simplified pipeline and controller
@@ -67,7 +69,7 @@ The following design aspects of the project are required:
6769

6870
The verification approach is based on that developed for the CV32E40P.
6971

70-
The same verification approach as for the CV32E40P will be used (UVM, lock step ISS, formal techniques, random code generation, etc.) with the major improvement being a bound RVFI interface to ease the integration of the core with the verification environment (the RVVI->RVFI scoreboard/adapter is outside the scope of this project).
72+
A similar verification approach as for the CV32E40P will be used (UVM, lock step ISS, formal techniques, random code generation, etc.) with the major improvement being a bound RVFI interface to the RTL and an RVVI interface towards the ISS to ease the integration of the core with the verification environment (the RVFI->RVVI scoreboard/adapter is outside the scope of this project). The Imperas ISS will be extended with the new (software visible) features once ratified or deemed stable enough (e.g. User mode, ePMP, Zce, bus error support).
7173

7274
#### Component 3 - Documentation
7375
See "Project Documents" section
@@ -142,8 +144,8 @@ Simplified pipeline and controller
142144
Performance, area and power optimizations
143145
* Smarter prefetch
144146
* Register file optimization (if P, B excluded)
145-
* Remove 2nd registerfile write port
146-
* Remove 3rd read port
147+
* Remove 2nd registerfile write port
148+
* Remove 3rd read port
147149
* Faster divide
148150
* Faster (mulh*) multiply
149151
* ALU/MUL clean up
@@ -175,6 +177,11 @@ Zce, P, B, 0.14 Debug specifications have not been ratified yet by RISC-V. Will
175177

176178
## List of project outputs
177179

180+
* Verified RTL
181+
* Verification environment including test cases
182+
* Instruction Set Simulator (ISS)
183+
* Documentation (See Project Documents)
184+
178185
## TGs Impacted/Resource requirements
179186

180187
Cores TG, Verification TG, Software TG. Resource requirements covered within Silicon Labs and Embecosm.
@@ -188,18 +195,20 @@ Cores TG, Verification TG, Software TG. Resource requirements covered within Sil
188195

189196
## Engineering resource supplied by members - requirement and availability
190197

191-
Silicon Labs
192-
193-
Arjan Bink (architecture)
194-
Oivind Ekelund (TPL, PM)
195-
Oystein (design)
196-
Halfdan (design)
197-
Steve (verification architecture)
198-
Marton Teilgard (verification)
199-
Robin (verification)
200-
Henrik (verification)
201-
202-
Embecosm (Jeremy, Jessica)
198+
* Silicon Labs
199+
* Arjan Bink (architecture)
200+
* Oivind Ekelund (TPL, PM)
201+
* Oystein (design)
202+
* Halfdan (design)
203+
* Steve (verification architecture)
204+
* Marton Teilgard (verification)
205+
* Robin (verification)
206+
* Henrik (verification)
207+
* Embecosm
208+
* Jeremy
209+
* Jessica
210+
* Imperas
211+
* (names to be provided)
203212

204213
Approving commits within https://github.com/openhwgroup/core-v-verif/tree/*/cv32e40x can be done by Steve Richmond, Mike Thompson, Oystein Knauserud or Arjan Bink. Marton Teilgard will be added to this list as soon as he can be elected as committer. Approving commits outside of cv32e40x can be done by Steve Richmond or Mike Thompson.
205214

0 commit comments

Comments
 (0)