|
| 1 | +# Title of Project - "CV32E20" |
| 2 | +# Project Launch Proposal |
| 3 | +## Date of proposal - 2021-07-26, Revised 2022-01-21, 2022-02-09 |
| 4 | +## Author(s) - Joe Circello (NXP), Lee Hoff (Intrinsix) |
| 5 | + |
| 6 | +## Summary of project |
| 7 | + The CV32E20 proposed project develops a TRL5, area-efficient 2-stage microcontroller core based on Ibex |
| 8 | +as part of the CORE-V family of cores, along with a core complex (aka "coreplex") supporting Arm AMBA AHB-5 32-bit bus interfaces, |
| 9 | +debug and interrupts. |
| 10 | + The scope of the project consists of detailing which of the Ibex parameters are being removed, or verified, or neither verified or removed (left for future work). Completing design enhancements and integration of the interfaces into the core complex. Completing verification and documentation. |
| 11 | + |
| 12 | +## Components of the Project |
| 13 | +### Component 1a "RTL design of the core". |
| 14 | + RTL design of the Core starting from Ibex with the following features: |
| 15 | + E - Base Integer Instruction Set (embedded) with 16, 32-bit general-purpose registers |
| 16 | + I - Base Integer Instruction Set, with 32, 32-bit general-purpose registers |
| 17 | + M - Standard Extension for Integer Multiplication and Division |
| 18 | + C - Standard Extension for Compressed 16-bit Instructions |
| 19 | + User Mode and Machine Mode |
| 20 | + Harvard memory OBI bus interfaces |
| 21 | + CV32E40P-like interrupt interface (Open Titan CLIC) |
| 22 | + Cleaning Ibex RTL of unused parameters |
| 23 | + Exposing privilege pins (privilege CSR bits are exposed as bus attribute signals) |
| 24 | + Modification to make OBI-compliant bus interfaces. |
| 25 | + Adding and extending the rvfi interface |
| 26 | + Expose privilege pins as bus address phase attributes |
| 27 | + CV32E40P-like Sleep unit |
| 28 | + |
| 29 | +### Component 1b "RTL design of the core complex". |
| 30 | + Integrating interrupt controller - (Open Titan CLIC). |
| 31 | + Integrating debug interface - similar to E40P |
| 32 | + Integrating OBI2AHB bus bridges |
| 33 | + |
| 34 | +### Component 2 "Documentation". |
| 35 | + - Create core spec from existing Ibex documentation |
| 36 | + - Create core complex specification |
| 37 | + - Create verification plan and reports |
| 38 | + |
| 39 | +### Component 3 "Verification of core complex" |
| 40 | + - Based on core-v-verif environment |
| 41 | + - Verification of the Core ISA configurations: RV32IMC, RV32EMC |
| 42 | + - Verification of the Core Complex: DUT0 with RV32IMC, DUT1 with RV32EMC |
| 43 | + |
| 44 | + |
| 45 | +## Summary of market or input requirements: |
| 46 | +This project is intended to support embedded applications where, for example, |
| 47 | +a state machine based implementation might otherwise be used. Additionally, this core |
| 48 | +is targeted for use in applications requiring a small 32-bit processing element. |
| 49 | +The core supports the RV32{E,I}MC instruction sets. |
| 50 | + |
| 51 | +### Known market/project requirements at PL gate |
| 52 | +### Potential future enhancements for future project phases |
| 53 | +* Zce static code size reduction opcode extension |
| 54 | +* Supporting 2 pin compressed JTAG (CJTAG) debug interface |
| 55 | +* Investigation of a "tiny FPU " implemention |
| 56 | + * Targeted at sensor computations at the edge |
| 57 | + * Having FP would be useful for these and other computations |
| 58 | +* Low granularity Physical Memory Protection (PMP) module |
| 59 | + |
| 60 | +## Who would make use of OpenHW output |
| 61 | + |
| 62 | +Companies developing microcontroller-based embedded (sub)systems or devices. |
| 63 | + |
| 64 | +## Summary of Timeline |
| 65 | + |
| 66 | + * Start: 2021Q4 |
| 67 | + * Use Ibex Core Specification |
| 68 | + * Create Core Complex Specification - End of 2022Q1 |
| 69 | + * Complete design / integration - End of 2022Q2 |
| 70 | + * Create Core Complex Verification plan and verification spec - End of 2022Q2 |
| 71 | + * Execute verification plan to completion - 2022Q4 |
| 72 | + * Document detailed completion including reviews - 2022Q4 |
| 73 | + |
| 74 | + |
| 75 | +## Explanation of why OpenHW should do this project |
| 76 | + |
| 77 | +* A 32 bit microcontroller is viewed as the appropriate low-end programmable core to replace state machine based implementations. |
| 78 | +* It is the smallest RISC-V core design and includes standard Debug and ISA, with access to all the software enablement tools included in the CORE-V ecosystem. |
| 79 | +* Small size and low power are the key hardware metrics. |
| 80 | +* The starting point is Ibex, but Ibex does not include everything needed, such as OBI. It also includes many unneeded paramemters, |
| 81 | + which may cause unnecessary verification and maintenance complications. |
| 82 | +* The use of Arm AMBA-AHB buses supports the (re)use of many existing 32-bit IP modules, including peripherals, such as crytography devices. |
| 83 | +* It is important for OpenHW members to exert control over the features as part of the CORE-V family. |
| 84 | + |
| 85 | +Overall, the CVE20 core augments the CORE-V family of 32 bit cores with a needed low-end microcontroller. |
| 86 | + |
| 87 | +## Industry landscape: description of competing, alternative, or related efforts in the industry |
| 88 | + |
| 89 | +Ibex - from LowRISC |
| 90 | +SNITCH - from ETH Zurich - single pipeline, low complexity meant to offload to vector units |
| 91 | +Arm Cortex-M0+ - from Arm |
| 92 | + |
| 93 | +## OpenHW Members/Participants committed to participate |
| 94 | + |
| 95 | +* Intrinsix - Design and Verification of core-complex, Core Verification |
| 96 | +* NXP - Architecture definition, Core Design, Core Verification |
| 97 | +* Imperas - Supply Imperas reference model, engineering support and expertise |
| 98 | +* Embecosm - Provide tool enablement (SW tools: compilers, assembler/linker, etc.) |
| 99 | +* ETH Zurich - (Davide Schiavone) Provide design guidance and contribute RTL design edits |
| 100 | + |
| 101 | +## Project Leader(s) |
| 102 | +### Technical Project Leader(s) |
| 103 | +At Project Launch, co-led by |
| 104 | +* Lee Hoff, Intrinsix |
| 105 | +* Joe Circello, NXP |
| 106 | + |
| 107 | +### Project Manager, if a PM is designated |
| 108 | +None designated. |
| 109 | + |
| 110 | +## Project Documents |
| 111 | +### Project Planning Documents |
| 112 | + Detailed project plan |
| 113 | + RTL Freeze checklist |
| 114 | + |
| 115 | +### Project Output Documents |
| 116 | + Core specification |
| 117 | + Core complex specification |
| 118 | + Verification plan |
| 119 | + Verification report |
| 120 | + |
| 121 | + |
| 122 | +## List of project technical outputs |
| 123 | + Verified RTL for Core and Core Complex (RV32IMC and RV32EMC) |
| 124 | + Verification environment including test cases |
| 125 | + Documentation |
| 126 | + |
| 127 | +### Feature Requirements |
| 128 | +*Features are more granular than Components.* |
| 129 | +*For SW porting projects, this list serves as the detailed project reference for features* |
| 130 | +*For IP Cores or more complext projects, a user manual with requirements specification is produced at the PA gate, which may supercede this list of features* |
| 131 | + |
| 132 | +#### Feature 1 |
| 133 | + Decide on features available to user and not available |
| 134 | + Configuration of parameters (what is being verified in this project) |
| 135 | + Future considerations of what is carried forward |
| 136 | +#### Feature 2 |
| 137 | + |
| 138 | + |
| 139 | +## External dependencies |
| 140 | +*These are external factors on which the project depends, such as external standards ratification, external technology input, etc.* |
| 141 | +*None currently identified* |
| 142 | + |
| 143 | +## OpenHW TGs Involved |
| 144 | +*Cores TG, Verification TG* |
| 145 | + |
| 146 | +## Resource Requirements |
| 147 | +*This is a list of major resources/people required to implement the project and indication of whether the resources are available* |
| 148 | + |
| 149 | +Core Design RTL |
| 150 | +-> NXP and Intrinsix resources would need guidance from Davide Schiavone |
| 151 | + |
| 152 | +Core Complex RTL |
| 153 | +-> 1-2 resources for 3 months until end of 2Q |
| 154 | +-> Core Complex is to be handled by NXP and Intrinsix |
| 155 | + |
| 156 | + |
| 157 | +Core Verification |
| 158 | +Core Complex Verification |
| 159 | + |
| 160 | +.> 3-4 FTE resources for (3Q + 4Q) of 2022 |
| 161 | +-> Intrinsix (USA) and NXP (Europe) resources |
| 162 | + |
| 163 | +Documentation |
| 164 | +-> covered as per deliverables above |
| 165 | + |
| 166 | +Technical Project Management |
| 167 | +-> potentially covered through NXP and Intrinsix especially by a verification leader |
| 168 | +-> A committer would be needed, and the above person could do that |
| 169 | + |
| 170 | + |
| 171 | +### Engineering resource supplied by members - requirement and availability |
| 172 | +### OpenHW engineering staff resource plan: requirement and availability |
| 173 | +discussed above |
| 174 | + |
| 175 | +### Marketing resource - requirement and availability |
| 176 | +### Funding for project aspects - requirement and availability |
| 177 | + |
| 178 | +## Architecture and/or context diagrams |
| 179 | +*Architecture (internal blocks and interconnections), and context (depiction of the the project content within its operational context), are both encouraged where appropriate to depict functionality to both subject matter experts and to non-experts* |
| 180 | +Nice to have but not yet available |
| 181 | + |
| 182 | +## Project license model |
| 183 | + Solderpad License |
| 184 | + |
| 185 | +## Description of initial code contribution, if required |
| 186 | + For the core, Initial RTL to be forked or cloned from Ibex. This decision is not yet made. |
| 187 | + A CQ will be generated on the Ibex code. |
| 188 | + For the core complex, |
| 189 | +-- Interrupt (CLIC or CLINT) controller from OpenTitan |
| 190 | +-- OBI to AHB bus gaskets from Intrinsix |
| 191 | +-- not decided yet if we need a CQ on these elements. |
| 192 | + Verification based on core-v-verif uvm environment |
| 193 | + |
| 194 | + |
| 195 | +## Repository Requirements |
| 196 | + Design and Documentation will use github under cv32e20 |
| 197 | + Verification will use github under core-v-verif |
| 198 | + |
| 199 | +## Project distribution model |
| 200 | +Project artifacts will be released under CORE-V Cores and available on openhw github |
| 201 | + |
| 202 | + |
| 203 | +## Preliminary Project plan |
| 204 | +*A full project plan is not required at PL. A preliminary plan, which can be for instance the schedule for completion of component or feature list, together with responsible resource, should be provided. Full details should be provided at PA gate.* |
| 205 | + |
| 206 | +see the timeline section above |
| 207 | + |
| 208 | + |
| 209 | +## Steps to get to PA gate |
| 210 | + |
| 211 | +Get the repo in place |
| 212 | + |
| 213 | +Committer/contributor/repo/Git training for the teams at NXP and Intrinsix (2 hour session) |
| 214 | + |
| 215 | +Technical teams need to be named and start engaging |
| 216 | + |
| 217 | +Internal teams to NXP and Intrinsix should understand how to contribute code and navigate their company's policies to make contributions |
| 218 | + |
| 219 | +Target the April 2022 PA gate to have |
| 220 | +- requirements specificaiton for both Core and Complex |
| 221 | +- project plan and risk register with task list, names, start and stop dates AND/OR detailed backlog register |
| 222 | + |
| 223 | + |
| 224 | +## Risk Register |
| 225 | +*A list of known risks, for example external dependencies, and any mitigation strategy* |
0 commit comments