Skip to content

Commit 8d4cf8b

Browse files
Merge pull request #293 from cairo-caplan/docs_update
Docs update
2 parents 6f8cac0 + 1deabf5 commit 8d4cf8b

33 files changed

+3152
-5300
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ document is recommended reading.
1919
1. From GitHub: [fork](https://help.github.com/articles/fork-a-repo/) the [cve2](https://github.com/openhwgroup/cve2) repository
2020
2. Clone repository: `git clone https://github.com/[your_github_username]/cve2`
2121
3. Create your feature branch: `git checkout -b <my_branch>.`<br> Please uniquify your branch name. See the [Git Cheats](https://github.com/openhwgroup/core-v-verif/blob/master/GitCheats.md)
22-
for a useful nominclature.
22+
for a useful nomenclature.
2323
4. Make your edits...
2424
5. Commit your changes: `git commit -m 'Add some feature' -s`
2525
6. Push feature branch: `git push origin <my_branch>`

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ The core will be made compatible with the OpenHW Group OBI protocol, it will use
77

88
# CV32E20 RISC-V Core
99

10-
CV32E20 is a production-quality open source source 32-bit RISC-V CPU core written in
10+
CV32E20 is a production-quality open source 32-bit RISC-V CPU core written in
1111
SystemVerilog. The CPU core is heavily parametrizable and well-suited for
1212
embedded control applications. CV32E20 is being extensively verified and has
1313
seen multiple tape-outs. CV32E20 supports the Integer (I) or Embedded (E),
@@ -16,7 +16,7 @@ Integer Multiplication and Division (M), and Compressed (C) extensions.
1616
The block diagram below shows the *small* parametrization with a 2-stage
1717
pipeline.
1818

19-
<p align="center"><img src="doc/03_reference/images/blockdiagram.svg" width="650"></p>
19+
<p align="center"><img src="doc/03_reference/images/blockdiagram.drawio.svg" width="650"></p>
2020

2121
CV32E20 was initially developed as part of the [PULP platform](https://www.pulp-platform.org)
2222
under the name [&#34;Zero-riscy&#34;](https://doi.org/10.1109/PATMOS.2017.8106976), and has been
@@ -47,10 +47,12 @@ Only the person who actually performs the merge can add these labels (you need c
4747

4848
## Configuration
4949

50+
<!-- TODO: This section and numbers need to be updated considering that the example code was removed -->
51+
5052
CV32E20 offers several configuration parameters to meet the needs of various application scenarios.
5153
The options include different choices for the architecture of the multiplier unit, as well as a range of performance and security features.
5254
The table below indicates performance, area, and verification status for a few selected configurations.
53-
These are configurations on which lowRISC is focusing for performance evaluation and design verification (see [supported configs](cve2_configs.yaml)).
55+
These are configurations on which OpenHW is focusing for performance evaluation and design verification (see [supported configs](cve2_configs.yaml)).
5456

5557
| Config | "micro" | "small" |
5658
| --------------------------------- | ------- | --------------------- |
@@ -72,21 +74,21 @@ Notes:
7274
Green indicates that verification is close to complete.
7375
Amber indicates that some verification has been performed, but the configuration is still experimental.
7476
Red indicates a configuration with minimal/no verification.
75-
* v.1.0.0 of the RISC-V Bit-Manipulation Extension is supported as well as the remaining sub-extensions of draft v.0.93 of the bitmanip spec.
77+
<!-- * v.1.0.0 of the RISC-V Bit-Manipulation Extension is supported as well as the remaining sub-extensions of draft v.0.93 of the bitmanip spec.
7678
The latter is *not ratified* and there may be changes before ratification.
77-
See [Standards Compliance](https://ibex-core.readthedocs.io/en/latest/01_overview/compliance.html) in the Ibex documentation for more information.
79+
See [Standards Compliance](https://ibex-core.readthedocs.io/en/latest/01_overview/compliance.html) in the Ibex documentation for more information. -->
7880

7981
## Documentation (to be updated)
8082

8183
The CVE2 documentation can be
8284
[read online at ReadTheDocs](https://docs.openhwgroup.org/projects/cve2-user-manual/en/latest/). It is also contained in
8385
the `doc` folder of this repository.
8486

85-
## Examples
87+
<!-- ## Examples
8688
8789
The CVE2 repository includes [Simple System](examples/simple_system/README.md).
8890
This is an intentionally simple integration of CV32E20 with a basic system that targets simulation.
89-
It is intended to provide an easy way to get bare metal binaries running on CV32E20 in simulation.
91+
It is intended to provide an easy way to get bare metal binaries running on CV32E20 in simulation. -->
9092

9193
## Contributing
9294

doc/01_specification/index.rst

Lines changed: 297 additions & 330 deletions
Large diffs are not rendered by default.

doc/02_user/getting_started.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
.. _getting-started:
22

3-
Getting Started with Ibex
3+
Getting Started with CVE2
44
=========================
55

6-
This page discusses initial steps and requirements to start using Ibex in your design.
6+
This page discusses initial steps and requirements to start using CVE2 in your design.
77

88
Identification CSRs
99
-------------------
@@ -12,7 +12,7 @@ The RISC-V Privileged Architecture specifies several read-only CSRs that identif
1212
These are ``mvendorid``, ``marchid`` and ``mimpid``.
1313
The fixed, read-only values for these CSRs are defined in :file:`rtl/cve2_pkg.sv`.
1414
Implementers should carefully consider appropriate values for these registers.
15-
Ibex, as an open source implementation, has an assigned architecture ID (``marchid``) of 0x23 (equivalent to 0d35).
15+
CVE2, as an open source implementation, has an assigned architecture ID (``marchid``) of 0x23 (equivalent to 0d35).
1616
(Allocations are specified in `marchid.md of the riscv-isa-manual repository <https://github.com/riscv/riscv-isa-manual/blob/master/marchid.md>`_.)
1717
If significant changes are made to the micro-architecture a different architecture ID should be used.
1818
The vendor ID and implementation ID (``mvendorid`` and ``mimpid``). The vendor ID (mvendorid) is assigned the value 0x602 and the implementation ID (mimpid) is assigned the value 0x0.

doc/02_user/index.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
Ibex User Guide
1+
.. _cve2_user_guide:
2+
3+
CVE2 User Guide
24
===============
35

4-
The Ibex User Guide provides all necessary information to use Ibex.
5-
It is aimed at hardware developers integrating Ibex into a design, and software developers writing software running on Ibex.
6+
The CVE2 User Guide provides all necessary information to use CVE2.
7+
It is aimed at hardware developers integrating CVE2 into a design, and software developers writing software running on CVE2.
68

79
.. toctree::
810
:maxdepth: 1

doc/02_user/integration.rst

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ Instantiation Template
1414
.. code-block:: verilog
1515
1616
cve2_top #(
17-
.MHPMCounterNum ( 0 ),
17+
.MHPMCounterNum ( 10 ),
1818
.MHPMCounterWidth ( 40 ),
1919
.RV32E ( 0 ),
20-
.RV32M ( cve2_pkg::RV32MFast ),
21-
.RndCnstLfsrSeed ( cve2_pkg::RndCnstLfsrSeedDefault ),
22-
.RndCnstLfsrPerm ( cve2_pkg::RndCnstLfsrPermDefault )
20+
.RV32M ( cve2_pkg::RV32MFast )
2321
) u_top (
2422
// Clock and reset
2523
.clk_i (),
@@ -38,7 +36,6 @@ Instantiation Template
3836
.instr_rvalid_i (),
3937
.instr_addr_o (),
4038
.instr_rdata_i (),
41-
.instr_rdata_intg_i (),
4239
.instr_err_i (),
4340
4441
// Data memory interface
@@ -51,9 +48,27 @@ Instantiation Template
5148
.data_wdata_o (),
5249
.data_wdata_intg_o (),
5350
.data_rdata_i (),
54-
.data_rdata_intg_i (),
5551
.data_err_i (),
5652
53+
// Core-V Extension Interface (CV-X-IF)
54+
// Issue Interface
55+
.x_issue_valid_o (),
56+
.x_issue_ready_i (),
57+
.x_issue_req_o (),
58+
.x_issue_resp_i (),
59+
60+
// Register Interface
61+
.x_register_o (),
62+
63+
// Commit Interface
64+
.x_commit_valid_o (),
65+
.x_commit_o (),
66+
67+
// Result Interface (),
68+
.x_result_valid_i (),
69+
.x_result_ready_o (),
70+
.x_result_i (),
71+
5772
// Interrupt inputs
5873
.irq_software_i (),
5974
.irq_timer_i (),
@@ -95,13 +110,13 @@ Parameters
95110
| | | | "cve2_pkg::RV32MSingleCycle": 1-2 cycle multiplier, iterative divider |
96111
+------------------------------+---------------------+------------+-----------------------------------------------------------------------+
97112

98-
Any parameter marked *EXPERIMENTAL* when enabled is not verified to the same standard as the rest of the Ibex core.
113+
Any parameter marked *EXPERIMENTAL* when enabled is not verified to the same standard as the rest of the CVE2 core.
99114

100-
Note that Ibex uses SystemVerilog enum parameters e.g. for ``RV32M``.
115+
Note that CVE2 uses SystemVerilog enum parameters e.g. for ``RV32M``.
101116
This is well supported by most tools but some care is needed when overriding these parameters at the top level:
102117

103118
* Synopsys VCS does not support overriding enum and string parameters at the top level via command line.
104-
As a workaround, SystemVerilog defines are used in Ibex top level files simulated with VCS.
119+
As a workaround, SystemVerilog defines are used in CVE2 top level files simulated with VCS.
105120
These defines can be set via command line.
106121

107122
* Yosys does not support overriding enum parameters at the top level by setting enum names.

doc/02_user/system_requirements.rst

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
System and Tool Requirements
22
============================
33

4-
The Ibex CPU core is written in SystemVerilog.
5-
We try to achieve a balance between the used language features (as described in our `style guide <https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md>`_) and reasonably wide tool support.
4+
The CVE2 CPU core is written in SystemVerilog.
5+
We try to achieve a balance between the used language features (as described in lowRISC's `style guide <https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md>`_) and reasonably wide tool support.
66

7-
The following tools are known to work with the RTL code of Ibex.
8-
Please `file an issue <https://github.com/lowRISC/ibex/issues>`_ if you experience problems with any of the listed tools, or if you have successfully used a tool with Ibex which is not listed here.
7+
The following tools are known to work with the RTL code of CVE2.
8+
Please `file an issue <https://github.com/openhwgroup/cve2/issues>`_ if you experience problems with any of the listed tools, or if you have successfully used a tool with CVE2 which is not listed here.
99

10+
- Altair DSim
1011
- Synopsys Design Compiler
1112
- Xilinx Vivado, version |tool_requirements.vivado| and up.
1213
- Verilator, version |tool_requirements.verilator| and up.
1314
- Synopsys VCS, version at least |tool_requirements.vcs|.
1415
- Cadence Incisive/Xcelium
15-
- Mentor Questa
16+
- Siemens EDA Questa
1617
- Aldec Riviera Pro
1718

1819
To run the UVM testbench a RTL simulator which supports SystemVerilog and UVM 1.2 is required.
1920
The `documentation of riscv-dv <https://github.com/google/riscv-dv#prerequisites>`_ contains a list of supported simulators.
2021

21-
To compile code that runs on Ibex, you'll need a RISC-V toolchain.
22+
To compile code that runs on CVE2, you'll need a RISC-V toolchain.
2223
This isn't part of the core as such, but is necessary for verification.
2324
See the :doc:`Verification <../03_reference/verification>` section of the Reference Guide for more details about which toolchains the project currently uses for testing.
2425

2526
Tools with known issues
2627
-----------------------
2728

28-
Not all EDA tools have enough SystemVerilog support to be able to work with the Ibex code base.
29+
Not all EDA tools have enough SystemVerilog support to be able to work with the CVE2 code base.
2930
Users of such tools are encouraged to file issues with the vendor.
3031
As a workaround, tools like `sv2v <https://github.com/zachjs/sv2v>`_ can pre-process the source code to an older version of Verilog.
3132

0 commit comments

Comments
 (0)