mirror of
https://github.com/openhwgroup/cve2.git
synced 2025-04-20 03:57:25 -04:00
Merge pull request #145 from NXP/bugfix/remove-unwanted-documentation
Removing outdated documentation that is missleading for CV32E20
This commit is contained in:
commit
4be52dedc2
8 changed files with 3 additions and 220 deletions
|
@ -1,67 +0,0 @@
|
|||
Standards Compliance
|
||||
====================
|
||||
|
||||
Ibex is a standards-compliant 32 bit RISC-V processor.
|
||||
It follows these specifications:
|
||||
|
||||
* `RISC-V Instruction Set Manual, Volume I: User-Level ISA, document version 20190608-Base-Ratified (June 8, 2019) <https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMFDQC-and-Priv-v1.11/riscv-spec-20190608.pdf>`_
|
||||
* `RISC-V Instruction Set Manual, Volume II: Privileged Architecture, document version 20190608-Base-Ratified (June 8, 2019) <https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMFDQC-and-Priv-v1.11/riscv-privileged-20190608.pdf>`_.
|
||||
Ibex implements the Machine ISA version 1.11.
|
||||
* `RISC-V External Debug Support, version 0.13.2 <https://content.riscv.org/wp-content/uploads/2019/03/riscv-debug-release.pdf>`_
|
||||
* `RISC-V Bit-Manipulation Extension, version 1.0.0 <https://github.com/riscv/riscv-bitmanip/releases/download/1.0.0/bitmanip-1.0.0-38-g865e7a7.pdf>`_ and `version 0.93 (draft from January 10, 2021) <https://github.com/riscv/riscv-bitmanip/blob/master/bitmanip-0.93.pdf>`_
|
||||
* `PMP Enhancements for memory access and execution prevention on Machine mode (Smepmp) version 0.9.3 <https://github.com/riscv/riscv-tee/blob/61455747230a26002d741f64879dd78cc9689323/Smepmp/Smepmp.pdf>`_
|
||||
|
||||
Many features in the RISC-V specification are optional, and Ibex can be parametrized to enable or disable some of them.
|
||||
|
||||
Ibex can be parametrized to support either of the following two instruction sets.
|
||||
|
||||
* The RV32I Base Integer Instruction Set, version 2.1
|
||||
* The RV32E Base Integer Instruction Set, version 1.9 (draft from June 8, 2019)
|
||||
|
||||
In addition, the following instruction set extensions are available.
|
||||
|
||||
.. list-table:: Ibex Instruction Set Extensions
|
||||
:header-rows: 1
|
||||
|
||||
* - Extension
|
||||
- Version
|
||||
- Configurability
|
||||
|
||||
* - **C**: Standard Extension for Compressed Instructions
|
||||
- 2.0
|
||||
- always enabled
|
||||
|
||||
* - **M**: Standard Extension for Integer Multiplication and Division
|
||||
- 2.0
|
||||
- optional
|
||||
|
||||
* - **B**: Standard Extension for Bit-Manipulation Instructions
|
||||
- 1.0.0 + 0.93 [#B_draft]_
|
||||
- optional
|
||||
|
||||
* - **Zicsr**: Control and Status Register Instructions
|
||||
- 2.0
|
||||
- always enabled
|
||||
|
||||
* - **Zifencei**: Instruction-Fetch Fence
|
||||
- 2.0
|
||||
- always enabled
|
||||
|
||||
Most content of the RISC-V privileged specification is optional.
|
||||
Ibex currently supports the following features according to the RISC-V Privileged Specification, version 1.11.
|
||||
|
||||
* M-Mode and U-Mode
|
||||
* All CSRs listed in :ref:`cs-registers`
|
||||
* Performance counters as described in :ref:`performance-counters`
|
||||
* Vectorized trap handling as described at :ref:`exceptions-interrupts`
|
||||
|
||||
See :ref:`PMP Enhancements<pmp-enhancements>` for more information on Ibex's experimental and optional support for the PMP Enhancement proposal from the Trusted Execution Environment (TEE) working group.
|
||||
|
||||
.. rubric:: Footnotes
|
||||
|
||||
.. [#B_draft] Ibex fully implements the ratified version 1.0.0 of the RISC-V Bit-Manipulation Extension including the Zba, Zbb, Zbc and Zbs sub-extensions.
|
||||
In addition, Ibex also supports the remaining Zbe, Zbf, Zbp, Zbr and Zbt sub-extensions as defined in draft version 0.93 of the RISC-V Bit-Manipulation Extension.
|
||||
Note that the latter sub-extensions may change before being ratified as a standard by the RISC-V Foundation.
|
||||
Ibex will be updated to match future versions of the specification.
|
||||
Prior to ratification this may involve backwards incompatible changes.
|
||||
Additionally, neither GCC or Clang have committed to maintaining support upstream for unratified versions of the specification.
|
|
@ -1,16 +0,0 @@
|
|||
Introduction to CVE2
|
||||
====================
|
||||
|
||||
Ibex is a production-quality open source 32-bit RISC-V CPU core written in SystemVerilog.
|
||||
The CPU core is heavily parametrizable and well suited for embedded control applications.
|
||||
Ibex is being extensively verified and has seen multiple tape-outs.
|
||||
|
||||
Read on for more information Ibex in general: what standards it implements, what synthesis targets it supports, and what legal and financial obligations you have when using Ibex.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: In this section
|
||||
|
||||
compliance
|
||||
targets
|
||||
licensing
|
|
@ -1,16 +0,0 @@
|
|||
Licensing
|
||||
=========
|
||||
|
||||
Ibex is released under the Apache license, version 2.0.
|
||||
|
||||
Ibex can be used, modified, and distributed for any purpose (including commercial) and without any royalties.
|
||||
There are some requirements on including copyright notices and the original license.
|
||||
|
||||
Please see the ``LICENSE`` file in the source code for the full (and legally binding) license text.
|
||||
|
||||
Even though the license doesn't require it, we appreciate feedback and contributions to make Ibex work better for everyone.
|
||||
Please open an `issue <https://github.com/lowRISC/ibex/issues>`_ for bug reports, questions, or suggested improvements, or a `pull request <https://github.com/lowRISC/ibex/pulls>`_ if you'd like to contribute code.
|
||||
|
||||
.. note::
|
||||
|
||||
Commercial support for Ibex is available from `lowRISC <https://www.lowrisc.org/>`_.
|
|
@ -1,19 +0,0 @@
|
|||
Synthesis Targets
|
||||
=================
|
||||
|
||||
ASIC Synthesis
|
||||
--------------
|
||||
|
||||
ASIC synthesis is supported for Ibex.
|
||||
The whole design is completely synchronous and uses positive-edge triggered flip-flops, except for the register file, which can be implemented either with latches or with flip-flops.
|
||||
See :ref:`register-file` for more details.
|
||||
The core occupies an area of roughly 24 kGE when using the latch-based register file and implementing the RV32IMC ISA, or 15 kGE when implementing the RV32EC ISA.
|
||||
|
||||
|
||||
FPGA Synthesis
|
||||
--------------
|
||||
|
||||
FPGA Synthesis is supported for Ibex.
|
||||
The FPGA-optimized register file implementation should be used.
|
||||
The flip-flop based register file is also compatible with FPGA synthesis, however it may result in significantly higher resource utilization.
|
||||
Since latches are not well supported on FPGAs, the latch-based register file should not be used.
|
|
@ -1,73 +0,0 @@
|
|||
.. _concierge:
|
||||
|
||||
The Ibex Concierge
|
||||
==================
|
||||
|
||||
.. figure:: https://upload.wikimedia.org/wikipedia/commons/8/80/France_in_XXI_Century._Concierge.jpg
|
||||
|
||||
The Ibex Concierge is the friendly caretaker of the Ibex project.
|
||||
It's a rotating duty shared by experienced contributors to help newcomers find their way around the project, and to stay on top of the various small tasks necessary to keep the project going.
|
||||
|
||||
The Ibex CPU project is a reasonably large open source project.
|
||||
Like all projects we experience two challenges:
|
||||
we want to lend a helping hand to new developers, answering their questions or helping them with code contributions.
|
||||
And we need to stay on top of our "caretaker" tasks, like fixing problems with our continuous integration setup, triaging issues and pull requests, etc.
|
||||
The Ibex Concierge combines these two duties in one person.
|
||||
|
||||
Please reach out to the Ibex Concierge if you have trouble finding your way around the Ibex project.
|
||||
You can find today's Ibex Concierge in the calendar below.
|
||||
|
||||
|
||||
Who is Ibex Concierge today?
|
||||
----------------------------
|
||||
|
||||
The concierge duties rotate between several core developers on a weekly basis.
|
||||
You can find today's concierge on duty in a `public calendar <https://calendar.google.com/calendar/embed?src=lowrisc.org_s0pdodkddnggdp40jusjij27h4%40group.calendar.google.com>`_.
|
||||
|
||||
* Greg Chadwick (`@GregAC <https://github.com/gregac>`_)
|
||||
* Tom Roberts (`@tomroberts-lowrisc <https://github.com/tomroberts-lowrisc>`_)
|
||||
* Rupert Swarbrick (`@rswarbrick <https://github.com/rswarbrick>`_)
|
||||
* Pirmin Vogel (`@vogelpi <https://github.com/vogelpi>`_)
|
||||
* Philipp Wagner (`@imphil <https://github.com/imphil>`_)
|
||||
|
||||
You can be Ibex Concierge, too.
|
||||
Please talk to any of the current concierges to discuss!
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<iframe src="https://calendar.google.com/calendar/embed?src=lowrisc.org_s0pdodkddnggdp40jusjij27h4%40group.calendar.google.com" style="border: 0" width="100%" height="600" frameborder="0" scrolling="no"></iframe>
|
||||
|
||||
|
||||
Ibex Concierge duties
|
||||
---------------------
|
||||
|
||||
The Ibex Concierge is aware of what's happening in the Ibex project, and helps to ensure that everyone feels welcome and is able to work productively.
|
||||
The list of duties includes, but isn't strictly limited to the following tasks.
|
||||
|
||||
* Triage incoming issues and pull requests.
|
||||
|
||||
* Assign labels to them.
|
||||
|
||||
* Give initial feedback with an indication of what the next steps are.
|
||||
|
||||
* Answer questions if possible.
|
||||
|
||||
* Ask for clarifications where necessary.
|
||||
|
||||
* Redirect to the right developers as needed.
|
||||
|
||||
* Track progress of open issues and pull requests.
|
||||
Ensure contributors always know what's going on, and are informed if things take longer.
|
||||
|
||||
* Welcome new contributors, and provide (hands-on) help to get them up to speed.
|
||||
For example, help them get their commits into good shape, etc.
|
||||
|
||||
* Fix or coordinate fixes to necessary infrastructure, such as the continuous integration setup in a timely manner.
|
||||
|
||||
* Go through the list of open pull requests: ping developers if information or action is needed, close abandoned pull requests, etc.
|
||||
|
||||
* Assist with the review and update of open issues.
|
||||
|
||||
* At the end of the week, hand over to the next Ibex Concierge on the rota.
|
||||
|
||||
Note the obvious: it is not the job of the Ibex Concierge to fix all bugs, implement all incoming feature requests, or be available 24/7.
|
|
@ -1,18 +0,0 @@
|
|||
Ibex Developer Guide
|
||||
====================
|
||||
|
||||
Ibex is an open source project and invites everyone to contribute.
|
||||
The Ibex Developer Guide documents how Ibex is developed, both in terms of process and tools.
|
||||
|
||||
Read on if you would like to work with the Ibex code base to fix a bug, add a feature, or reproduce the verification.
|
||||
|
||||
.. todo::
|
||||
|
||||
Describe how to set up development environment, how to make changes, etc.
|
||||
Use content from various READMEs and the CONTRIBUTING guide in the repo.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: In this section
|
||||
|
||||
concierge
|
|
@ -7,29 +7,21 @@ The CPU core is based on the Ibex core, but simplified and verified under the Op
|
|||
You are now reading the CV32E20 documentation.
|
||||
The documentation is split into multiple parts.
|
||||
|
||||
The :doc:`Technical Specification <00_specification/index>` Contains the technical specification of CV32E20.
|
||||
The :doc:`Technical Specification <01_specification/index>` contains the technical specification of CV32E20.
|
||||
It defines the supported features in the form of requirements.
|
||||
|
||||
The remaining parts of documentation are inherited from the Ibex project. They are kept for reference and will be reworked in the future.
|
||||
|
||||
The :doc:`Overview documentation <01_overview/index>` looks at Ibex from high up.
|
||||
It answers questions like what are the high-level properties of Ibex, which standards is Ibex following, and where is it typically used.
|
||||
|
||||
The :doc:`User Guide <02_user/index>` provides all necessary information to use Ibex.
|
||||
It is aimed at hardware developers integrating Ibex into a design, and software developers writing software running on Ibex.
|
||||
|
||||
The :doc:`Reference Guide <03_reference/index>` provides background information.
|
||||
It describes the design in detail, discusses the verification approach and the resulting testbench structures, and generally helps to understand Ibex in depth.
|
||||
|
||||
The :doc:`Developer Guide <04_developer/index>` is aimed at people making changes to Ibex itself.
|
||||
Since Ibex is open source, every user of Ibex is encouraged to learn how to adapt Ibex to their use case, and be part of the open development process.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 3
|
||||
:hidden:
|
||||
|
||||
00_specification/index.rst
|
||||
01_overview/index.rst
|
||||
01_specification/index.rst
|
||||
02_user/index.rst
|
||||
03_reference/index.rst
|
||||
04_developer/index.rst
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue