[skip ci] Add hierarchy to the CVA6 documentation (#995)

* Clarify scope of Verilator model

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Update repo user docs

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Update repo user docs

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* CORE-V not COREV

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* First release is v0.1.0

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Fix typo

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Create documentation hierarchy

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

Signed-off-by: Mike Thompson <mike@openhwgroup.org>
This commit is contained in:
Mike Thompson 2022-11-16 11:19:37 -05:00 committed by GitHub
parent 23217ad8bd
commit bf5a74cae5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 483 additions and 89 deletions

View file

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 684 KiB

After

Width:  |  Height:  |  Size: 684 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 263 KiB

After

Width:  |  Height:  |  Size: 263 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 240 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 316 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

View file

@ -0,0 +1,47 @@
..
Copyright (c) 2022 OpenHW Group
Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://solderpad.org/licenses/
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
OpenHW Group CVA6 User Manual
================================
Editor: **Florian Zaruba**
`florian@openhwgroup.org <mailto:florian@openhwgroup.org?subject=CVA6%20User%20Manual>`__
.. toctree::
:maxdepth: 2
:caption: Contents:
intro
pcgen_stage
if_stage
id_stage
issue_stage
ex_stage
commit_stage
cva6_soc
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Documentation
-------------
The documentation is re-generated on pushes to master.
When contributing to the project please consider the [contribution guide](https://github.com/openhwgroup/cva6/blob/master/CONTRIBUTING.md).

View file

@ -1,28 +1,30 @@
==============================
CVA6 requirement specification
==============================
===============================
CVA6 Requirement Specification
===============================
Revision 1.0.1
.. __license:
.. _license:
License
=======
| Copyright 2022 OpenHW Group and Thales
| Copyright 2018 ETH Zürich and University of Bologna
| SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
| Licensed under the Solderpad Hardware License v 2.1 (the “License”);
you may not use this file except in compliance with the License, or,
at your option, the Apache License version 2.0. You may obtain a copy
of the License at https://solderpad.org/licenses/SHL-2.1/.
| Unless required by applicable law or agreed to in writing, any work
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
Copyright 2022 OpenHW Group and Thales
Copyright 2018 ETH Zürich and University of Bologna
.. __introduction:
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
Licensed under the Solderpad Hardware License v 2.1 (the “License”);
you may not use this file except in compliance with the License, or,
at your option, the Apache License version 2.0. You may obtain a copy
of the License at https://solderpad.org/licenses/SHL-2.1/.
Unless required by applicable law or agreed to in writing, any work
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
.. _introduction:
Introduction
============
@ -49,12 +51,12 @@ project freeze (PF gate).
A list of abbreviations is available at the end of this document.
.. __scope:
.. _scope:
Scope
=====
.. __scope_of_the_ip:
.. _scope_of_the_ip:
Scope of the IP
---------------
@ -126,7 +128,7 @@ These are not in the scope of this specification:
- The vector coprocessor (CV-VEC) that is planned to interface with
CV64A6.
.. __verified_configurations:
.. _verified_configurations:
Initial Release
---------------
@ -162,12 +164,12 @@ The full list of parameters for these configurations will be detailed in the use
| cv32a6_imac_sv0 | ASIC | IMAC | 32 | No | Yes | None | None | 4 kB |
+--------------------+---------+--------+------+-------+---------+---------+---------+---------+
.. __references:
.. _references:
References
==========
.. __applicable_specifications:
.. _applicable_specifications:
Applicable specifications
-------------------------
@ -202,7 +204,7 @@ https://docs.openhwgroup.org/projects/openhw-group-core-v-xif/.
University,
https://parallel.princeton.edu/openpiton/docs/micro_arch.pdf.
.. __reference_documents:
.. _reference_documents:
Reference documents
-------------------
@ -214,12 +216,12 @@ version 1.0-fd39d01, 2022-01-12”
Manual v2p0”, chapter 6,
https://static.dev.sifive.com/SiFive-E31-Manual-v2p0.pdf
.. __functional_requirements:
.. _functional_requirements:
Functional requirements
=======================
.. __general_requirement:
.. _general_requirement:
General requirement
-------------------
@ -238,7 +240,7 @@ General requirement
As the RISC-V specification leaves space for variations, this
specification specificies some of these variations.
.. __risc_v_standard_instructions:
.. _risc_v_standard_instructions:
RISC-V standard instructions
----------------------------
@ -310,7 +312,7 @@ the F extension.
Note to ISA-110: In the current design, the duration of the division
is data-dependent, which can be a security issue.
.. __privileges_and_virtual_memory:
.. _privileges_and_virtual_memory:
Privileges and virtual memory
-----------------------------
@ -343,7 +345,7 @@ The MMU includes a TLB and a hardware PTW.
| | (hypervisor) version 1.0. |
+-----------------------------------+-----------------------------------+
.. __csr:
.. _csr:
CSR
---
@ -352,7 +354,7 @@ There are no requirements related to CSR as they derive from other
requirements, such as PVL-10, PVL-60… Details of CSRs will be available
in the users manual.
.. __performance_counters:
.. _performance_counters:
Performance counters
--------------------
@ -436,7 +438,7 @@ applications.
The users manual will detail the list of counters, events and related
controls.
.. __cache_requirements:
.. _cache_requirements:
Cache requirements
------------------
@ -450,7 +452,7 @@ The project would like to adopt the recently ratified [RVcmo]
specification. The analysis yet needs to be performed and will likely
lead to an evolution of this specification.
.. __l1_write_through_data_cache:
.. _l1_write_through_data_cache:
L1 write-through data cache
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -528,7 +530,7 @@ size/ways configurations may be implemented in the design.
The design will support one replacement policy allowed by L1W-80.
.. __l1_instruction_cache:
.. _l1_instruction_cache:
L1 Instruction cache
~~~~~~~~~~~~~~~~~~~~
@ -586,7 +588,7 @@ size/ways configurations may be implemented in the design.
The design will support one replacement policy allowed by L1I-50.
.. __fence_t_custom_instruction:
.. _fence_t_custom_instruction:
FENCE.T custom instruction
--------------------------
@ -626,7 +628,7 @@ decorrelation as expressed in the requirement with digital simulations.
We can simulate the microarchitecture features and explain how they
satisfy the requirement as Nils Wistoffs work demonstrated.
.. __ppa_targets:
.. _ppa_targets:
PPA targets
===========
@ -663,12 +665,12 @@ integrated in the continuous integration flow.
| | performance per MHz. |
+-----------------------------------+-----------------------------------+
.. __interface_requirements:
.. _interface_requirements:
Interface requirements
======================
.. __memory_bus:
.. _memory_bus:
Memory bus
----------
@ -694,7 +696,7 @@ The interface complies with AXI4. However, Atomic_Transactions is only
defined in AXI5. For the sake of clarity, we do not use the AXI5-Lite
interface.
.. __debug:
.. _debug:
Debug
-----
@ -709,7 +711,7 @@ Debug
In addition, there can be an external debug module, not in the scope of
the IP.
.. __interrupts:
.. _interrupts:
Interrupts
----------
@ -722,7 +724,7 @@ Interrupts
| | implementation. |
+-----------------------------------+-----------------------------------+
.. __coprocessor_interface:
.. _coprocessor_interface:
Coprocessor interface
---------------------
@ -743,7 +745,7 @@ speculative execution.
CVA6 can interface with several coprocessors simultaneously through a
specific external feature implemented on the CV-X-IF interface.
.. __multi_core_interface:
.. _multi_core_interface:
Multi-core interface
--------------------
@ -757,7 +759,7 @@ Multi-core interface
| | [OpenPiton]. |
+-----------------------------------+-----------------------------------+
.. __design_rules:
.. _design_rules:
Design rules
============
@ -785,7 +787,7 @@ If technology-dependent blocks are used, e.g. to improve PPA on certain
targets, the equivalent technology-independent block should be
available. Parameters can be used to select between the implementations.
.. __list_of_abbreviations:
.. _list_of_abbreviations:
List of abbreviations
=====================

View file

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Before After
Before After

View file

@ -0,0 +1,311 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="417.742px" height="103.226px" viewBox="0 0 417.742 103.226" enable-background="new 0 0 417.742 103.226"
xml:space="preserve">
<g>
<g>
<path fill="#20AA4D" d="M38.589,37.644c0.665,0.646,1.379,1.235,2.136,1.775v-1.775H38.589z"/>
<path fill="#20AA4D" d="M40.726,9.98c-0.136,0.096-0.268,0.197-0.398,0.298h0.398V9.98z"/>
<path fill="#20AA4D" d="M40.726,16.773v-5.109h-2.036c-1.196,1.143-2.226,2.446-3.072,3.878v1.231H40.726z"/>
<path fill="#20AA4D" d="M34.231,18.457c-0.562,1.521-0.929,3.132-1.063,4.812h1.063V18.457z"/>
<rect x="35.617" y="24.654" fill="#20AA4D" width="5.108" height="5.109"/>
<path fill="#20AA4D" d="M34.231,24.654h-1.133c0,0.016,0,0.029,0,0.046c0,1.759,0.264,3.454,0.735,5.063h0.398V24.654z"/>
<path fill="#20AA4D" d="M47.223,7.081c-1.824,0.407-3.54,1.095-5.111,2.01v1.188h5.111V7.081z"/>
<path fill="#20AA4D" d="M40.726,36.258v-5.109h-5.108v2.708c0.501,0.845,1.053,1.652,1.679,2.401H40.726z"/>
<rect x="48.609" y="18.159" fill="#20AA4D" width="5.108" height="5.109"/>
<rect x="48.609" y="31.149" fill="#20AA4D" width="5.108" height="5.109"/>
<rect x="42.111" y="11.664" fill="#20AA4D" width="5.111" height="5.109"/>
<rect x="48.609" y="11.664" fill="#20AA4D" width="5.108" height="5.109"/>
<rect x="48.609" y="24.654" fill="#20AA4D" width="5.108" height="5.109"/>
<rect x="42.111" y="18.159" fill="#20AA4D" width="5.111" height="5.109"/>
<rect x="42.111" y="24.654" fill="#20AA4D" width="5.111" height="5.109"/>
<rect x="42.111" y="31.149" fill="#20AA4D" width="5.111" height="5.109"/>
<rect x="35.617" y="18.159" fill="#20AA4D" width="5.108" height="5.109"/>
<rect x="55.102" y="11.664" fill="#20AA4D" width="5.11" height="5.109"/>
<path fill="#20AA4D" d="M60.212,9.09c-1.573-0.915-3.287-1.603-5.11-2.01v3.197h5.11V9.09z"/>
<path fill="#20AA4D" d="M42.111,37.644v2.665c1.571,0.915,3.287,1.603,5.111,2.01v-4.675H42.111z"/>
<path fill="#20AA4D" d="M61.597,37.644v1.775c0.756-0.54,1.472-1.129,2.137-1.775H61.597z"/>
<path fill="#20AA4D" d="M61.597,31.149v5.109h3.431c0.626-0.749,1.179-1.559,1.68-2.403v-2.706H61.597z"/>
<path fill="#20AA4D" d="M48.609,10.278h5.108v-3.44c-0.837-0.121-1.687-0.203-2.556-0.203c-0.87,0-1.716,0.082-2.552,0.203V10.278
z"/>
<path fill="#20AA4D" d="M69.224,24.654h-1.131v5.109h0.396c0.471-1.609,0.737-3.305,0.737-5.063
C69.226,24.683,69.224,24.669,69.224,24.654z"/>
<rect x="55.102" y="31.149" fill="#20AA4D" width="5.11" height="5.109"/>
<rect x="55.102" y="18.159" fill="#20AA4D" width="5.11" height="5.109"/>
<rect x="55.102" y="24.654" fill="#20AA4D" width="5.11" height="5.109"/>
<path fill="#20AA4D" d="M69.153,23.268c-0.134-1.678-0.501-3.288-1.061-4.807v4.807H69.153z"/>
<path fill="#20AA4D" d="M48.609,37.644v4.918c0.766,0.111,1.544,0.185,2.339,0.191h0.425c0.795-0.007,1.576-0.08,2.343-0.191
v-4.918H48.609z"/>
<rect x="61.597" y="18.159" fill="#20AA4D" width="5.11" height="5.109"/>
<path fill="#20AA4D" d="M55.102,37.644v4.675c1.824-0.407,3.538-1.095,5.11-2.01v-2.665H55.102z"/>
<rect x="61.597" y="24.654" fill="#20AA4D" width="5.11" height="5.109"/>
<path fill="#20AA4D" d="M61.597,10.278h0.399c-0.132-0.101-0.264-0.202-0.399-0.298V10.278z"/>
<path fill="#20AA4D" d="M66.707,15.544c-0.847-1.432-1.879-2.738-3.073-3.881h-2.038v5.109h5.11V15.544z"/>
</g>
<g>
<path fill="#20AA4D" d="M22.625,36.258h3.841c-0.767-1.62-1.369-3.332-1.805-5.109h-2.037V36.258z"/>
<rect x="22.625" y="57.129" fill="#20AA4D" width="5.111" height="5.111"/>
<rect x="22.625" y="44.139" fill="#20AA4D" width="5.111" height="5.109"/>
<path fill="#20AA4D" d="M27.736,38.643c-0.196-0.325-0.371-0.664-0.553-0.999h-4.559v5.109h5.111V38.643z"/>
<path fill="#20AA4D" d="M22.625,29.763h1.739c-0.312-1.644-0.504-3.329-0.504-5.063c0-0.017,0.001-0.03,0.001-0.046h-1.236V29.763
z"/>
<path fill="#20AA4D" d="M25.095,16.773c0.409-1.315,0.875-2.605,1.463-3.832c-1.36,0.84-2.67,1.75-3.934,2.719v1.113H25.095z"/>
<path fill="#20AA4D" d="M22.625,23.268h1.318c0.093-1.75,0.334-3.462,0.746-5.109h-2.064V23.268z"/>
<rect x="22.625" y="50.634" fill="#20AA4D" width="5.111" height="5.109"/>
<rect x="29.122" y="57.129" fill="#20AA4D" width="2.661" height="5.111"/>
<path fill="#20AA4D" d="M5.11,44.139c-0.043,0.232-0.1,0.46-0.139,0.691h3.279v-0.691H5.11z"/>
<rect x="29.122" y="50.634" fill="#20AA4D" width="2.661" height="5.109"/>
<polyline fill="#20AA4D" points="31.678,44.139 29.122,44.139 29.122,49.249 31.783,49.249 31.783,44.831 "/>
<path fill="#20AA4D" d="M30.745,42.753c-0.571-0.642-1.113-1.311-1.623-2.005v2.005H30.745z"/>
<rect x="16.13" y="44.139" fill="#20AA4D" width="5.11" height="5.109"/>
<rect x="9.637" y="37.644" fill="#20AA4D" width="5.107" height="5.109"/>
<path fill="#20AA4D" d="M8.251,42.753v-5.109H6.813c-0.568,1.664-1.042,3.37-1.425,5.109H8.251z"/>
<rect x="9.637" y="31.149" fill="#20AA4D" width="5.107" height="5.109"/>
<path fill="#20AA4D" d="M14.744,24.654h-1.026c-1.222,1.623-2.336,3.334-3.343,5.109h4.37V24.654z"/>
<path fill="#20AA4D" d="M8.251,33.999c-0.325,0.744-0.635,1.497-0.924,2.26h0.924V33.999z"/>
<rect x="9.637" y="44.139" fill="#20AA4D" width="5.107" height="0.691"/>
<rect x="16.13" y="57.129" fill="#20AA4D" width="5.11" height="5.111"/>
<rect x="16.13" y="50.634" fill="#20AA4D" width="5.11" height="5.109"/>
<rect x="16.13" y="24.654" fill="#20AA4D" width="5.11" height="5.109"/>
<path fill="#20AA4D" d="M21.24,23.268v-5.109h-1.584c-1.238,1.124-2.415,2.314-3.526,3.566v1.543H21.24z"/>
<rect x="16.13" y="37.644" fill="#20AA4D" width="5.11" height="5.109"/>
<rect x="16.13" y="31.149" fill="#20AA4D" width="5.11" height="5.109"/>
</g>
<g>
<polygon fill="#20AA4D" points="86.192,63.626 82.651,63.626 83.873,68.734 86.192,68.734 "/>
<rect x="81.083" y="44.139" fill="#20AA4D" width="5.109" height="5.109"/>
<path fill="#20AA4D" d="M81.083,23.268h5.109v-1.545c-1.11-1.25-2.287-2.44-3.525-3.564h-1.584V23.268z"/>
<rect x="81.083" y="31.149" fill="#20AA4D" width="5.109" height="5.109"/>
<rect x="81.083" y="37.644" fill="#20AA4D" width="5.109" height="5.109"/>
<rect x="81.083" y="24.654" fill="#20AA4D" width="5.109" height="5.109"/>
<path fill="#20AA4D" d="M84.205,70.12l0.763,3.179c0.175,0.701,0.31,1.35,0.414,1.931h0.719c0.025-0.188,0.059-0.395,0.091-0.595
V70.12H84.205z"/>
<path fill="#20AA4D" d="M85.941,76.615h-0.346c0.114,0.912,0.134,1.459,0.134,1.459h0.13C85.86,78.074,85.86,77.527,85.941,76.615
z"/>
<polygon fill="#20AA4D" points="87.578,55.744 90.279,55.744 91.401,50.634 87.578,50.634 "/>
<path fill="#20AA4D" d="M94.073,44.831h3.279c-0.039-0.231-0.096-0.459-0.139-0.691h-3.14V44.831z"/>
<rect x="87.578" y="37.644" fill="#20AA4D" width="5.109" height="5.109"/>
<rect x="87.578" y="31.149" fill="#20AA4D" width="5.109" height="5.109"/>
<polygon fill="#20AA4D" points="87.578,62.241 88.857,62.241 89.977,57.129 87.578,57.129 "/>
<path fill="#20AA4D" d="M87.578,29.763h4.372c-1.008-1.775-2.121-3.486-3.343-5.109h-1.028V29.763z"/>
<polygon fill="#20AA4D" points="79.21,49.249 79.697,49.249 79.697,44.139 74.588,44.139 74.588,44.831 78.152,44.831 "/>
<polygon fill="#20AA4D" points="86.192,62.241 86.192,57.129 81.097,57.129 82.321,62.241 "/>
<polygon fill="#20AA4D" points="79.542,50.634 79.697,51.283 79.697,50.634 "/>
<path fill="#20AA4D" d="M70.223,44.139c-0.229,0.228-0.443,0.474-0.685,0.691h3.664v-0.691H70.223z"/>
<polygon fill="#20AA4D" points="87.578,63.626 87.578,68.071 88.552,63.626 "/>
<path fill="#20AA4D" d="M94.073,36.258h0.924c-0.289-0.763-0.596-1.516-0.924-2.258V36.258z"/>
<polygon fill="#20AA4D" points="87.578,44.139 87.578,49.249 91.704,49.249 92.673,44.831 92.687,44.831 92.687,44.139 "/>
<path fill="#20AA4D" d="M94.073,37.644v5.109h2.863c-0.382-1.739-0.856-3.445-1.427-5.109H94.073z"/>
<path fill="#20AA4D" d="M79.697,15.66c-1.263-0.969-2.571-1.879-3.933-2.719c0.587,1.227,1.054,2.517,1.463,3.832h2.469V15.66z"/>
<path fill="#20AA4D" d="M79.697,18.159h-2.064c0.412,1.647,0.653,3.359,0.747,5.109h1.317V18.159z"/>
<path fill="#20AA4D" d="M79.697,24.654h-1.236c0,0.016,0.002,0.029,0.002,0.046c0,1.734-0.191,3.42-0.503,5.063h1.736V24.654z"/>
<path fill="#20AA4D" d="M79.697,31.149H77.66c-0.435,1.777-1.038,3.489-1.805,5.109h3.841V31.149z"/>
<path fill="#20AA4D" d="M79.697,42.753v-5.109h-4.558c-0.182,0.335-0.357,0.672-0.551,0.997v4.112H79.697z"/>
<rect x="81.083" y="50.634" fill="#20AA4D" width="5.109" height="5.109"/>
<path fill="#20AA4D" d="M73.202,40.749c-0.51,0.694-1.054,1.363-1.623,2.005h1.623V40.749z"/>
</g>
<g>
<polygon fill="#20AA4D" points="61.597,62.241 64.887,62.241 66.146,57.129 61.597,57.129 "/>
<polygon fill="#20AA4D" points="60.212,68.734 60.212,63.626 58.755,63.626 59.784,68.734 "/>
<polygon fill="#20AA4D" points="60.212,57.129 57.447,57.129 58.478,62.241 60.212,62.241 "/>
<path fill="#20AA4D" d="M68.093,46.058v3.16l0.974-3.957C68.75,45.537,68.42,45.796,68.093,46.058z"/>
<path fill="#20AA4D" d="M66.707,47.088c-1.159,0.811-2.376,1.536-3.655,2.16h3.655V47.088z"/>
<polygon fill="#20AA4D" points="61.597,68.734 63.291,68.734 64.547,63.626 61.597,63.626 "/>
<path fill="#20AA4D" d="M62.95,70.12h-1.353v5.109h0.156c0.104-0.581,0.239-1.229,0.414-1.931L62.95,70.12z"/>
<polygon fill="#20AA4D" points="61.597,50.634 61.597,55.744 66.486,55.744 66.707,54.851 66.707,50.634 "/>
<polygon fill="#20AA4D" points="60.064,70.12 60.212,70.852 60.212,70.12 "/>
<path fill="#20AA4D" d="M57.169,55.744h3.043v-5.109h-0.584c-1.076,0.355-2.181,0.648-3.313,0.865L57.169,55.744z"/>
</g>
<g>
<rect x="16.13" y="76.615" fill="#002D62" width="5.11" height="5.109"/>
<path fill="#002D62" d="M21.24,83.11h-5.11v0.878c1.33,1.495,2.745,2.916,4.254,4.23h0.856V83.11z"/>
<polygon fill="#002D62" points="46.248,57.129 42.927,57.129 42.927,62.241 47.223,62.241 47.223,61.137 "/>
<rect x="22.625" y="76.615" fill="#002D62" width="5.111" height="5.109"/>
<rect x="22.625" y="83.11" fill="#002D62" width="5.111" height="5.108"/>
<path fill="#002D62" d="M22.625,89.605v0.445c1.623,1.248,3.333,2.381,5.111,3.409v-3.854H22.625z"/>
<rect x="22.625" y="72.534" fill="#002D62" width="5.111" height="2.695"/>
<path fill="#002D62" d="M47.223,96.1h-5.111v2.756c1.674,0.325,3.378,0.564,5.111,0.708V96.1z"/>
<path fill="#002D62" d="M40.726,96.1h-5.108v1.003c1.663,0.585,3.368,1.079,5.108,1.475V96.1z"/>
<path fill="#002D62" d="M34.231,94.713v-4.349h-2.449v-0.76h-2.661v4.636c0.308,0.161,0.619,0.316,0.93,0.473H34.231z"/>
<rect x="16.13" y="72.534" fill="#002D62" width="5.11" height="2.695"/>
<rect x="42.927" y="63.626" fill="#002D62" width="4.295" height="5.107"/>
<rect x="29.122" y="72.534" fill="#002D62" width="2.661" height="2.695"/>
<rect x="42.927" y="83.11" fill="#002D62" width="4.295" height="5.108"/>
<path fill="#002D62" d="M44.811,51.224c-0.636-0.15-1.269-0.301-1.883-0.496v5.016h2.982L44.811,51.224z"/>
<rect x="42.927" y="76.615" fill="#002D62" width="4.295" height="5.109"/>
<rect x="42.927" y="70.12" fill="#002D62" width="4.295" height="5.109"/>
<rect x="29.122" y="76.615" fill="#002D62" width="2.661" height="5.109"/>
<polygon fill="#002D62" points="47.223,94.713 47.223,89.605 42.927,89.605 42.927,90.365 42.111,90.365 42.111,94.713 "/>
<rect x="29.122" y="83.11" fill="#002D62" width="2.661" height="5.108"/>
<rect x="35.617" y="90.365" fill="#002D62" width="5.108" height="4.349"/>
<path fill="#002D62" d="M34.231,96.1H33.03c0.396,0.166,0.801,0.32,1.202,0.478V96.1z"/>
<polygon fill="#002D62" points="48.609,81.724 52.233,81.724 50.988,76.615 48.609,76.615 "/>
<rect x="48.609" y="89.605" fill="#002D62" width="5.108" height="5.108"/>
<polygon fill="#002D62" points="48.609,88.218 53.717,88.218 53.717,87.821 52.57,83.11 48.609,83.11 "/>
<polygon fill="#002D62" points="49.069,68.734 48.609,66.831 48.609,68.734 "/>
<path fill="#002D62" d="M66.707,96.1h-5.11v2.439c1.737-0.398,3.452-0.855,5.11-1.438V96.1z"/>
<path fill="#002D62" d="M60.212,96.1h-5.11v3.477c1.735-0.143,3.433-0.409,5.11-0.739V96.1z"/>
<path fill="#002D62" d="M68.093,96.1v0.448c0.375-0.146,0.749-0.294,1.12-0.448H68.093z"/>
<path fill="#002D62" d="M53.717,96.1h-5.108v3.575c0.845,0.045,1.696,0.07,2.552,0.07c0.86,0,1.705-0.062,2.556-0.109V96.1z"/>
<path fill="#002D62" d="M79.697,89.605h-5.109v3.832c1.777-1.031,3.489-2.162,5.109-3.409V89.605z"/>
<path fill="#002D62" d="M68.093,89.605v5.108h4.115c0.33-0.166,0.667-0.323,0.994-0.496v-4.612H68.093z"/>
<polygon fill="#002D62" points="74.861,68.734 74.588,67.634 74.588,68.734 "/>
<polygon fill="#002D62" points="79.697,88.132 78.445,83.11 74.588,83.11 74.588,88.218 79.697,88.218 "/>
<polygon fill="#002D62" points="48.609,75.229 50.652,75.229 49.407,70.12 48.609,70.12 "/>
<polygon fill="#002D62" points="74.588,81.724 78.099,81.724 76.827,76.615 74.588,76.615 "/>
<polygon fill="#002D62" points="73.202,76.615 70.307,76.615 69.033,81.724 73.202,81.724 "/>
<polygon fill="#002D62" points="74.588,70.12 74.588,75.229 76.479,75.229 75.207,70.12 "/>
<polygon fill="#002D62" points="73.202,83.11 68.689,83.11 68.093,85.501 68.093,88.218 73.202,88.218 "/>
<rect x="55.102" y="90.365" fill="#002D62" width="5.11" height="4.349"/>
<polygon fill="#002D62" points="73.202,70.12 71.927,70.12 70.655,75.229 73.202,75.229 "/>
<rect x="61.597" y="90.365" fill="#002D62" width="5.11" height="4.349"/>
<path fill="#002D62" d="M73.202,64.391c-0.134,0.855-0.328,1.885-0.589,2.983l-0.339,1.359h0.928V64.391z"/>
</g>
</g>
<g>
<g>
<path fill="#002D62" d="M127.358,67.378c-2.174-0.8-3.945-1.884-5.316-3.247c-1.369-1.364-2.366-2.968-2.997-4.81
c-0.626-1.84-0.938-3.818-0.938-5.928c0-2.107,0.312-4.084,0.938-5.926c0.63-1.842,1.628-3.446,2.997-4.808
c1.372-1.365,3.143-2.449,5.316-3.252c2.174-0.802,4.794-1.2,7.86-1.2h11.381c3.068,0,5.686,0.398,7.86,1.2
c2.174,0.803,3.945,1.887,5.313,3.252c1.372,1.361,2.37,2.966,3,4.808c0.625,1.842,0.938,3.818,0.938,5.926
c0,2.109-0.312,4.088-0.938,5.928c-0.631,1.842-1.628,3.445-3,4.81c-1.368,1.363-3.139,2.447-5.313,3.247
c-2.174,0.802-4.792,1.203-7.86,1.203h-11.381C132.152,68.582,129.532,68.18,127.358,67.378z M151.482,61.178
c1.295-0.436,2.322-1.033,3.089-1.794c0.767-0.758,1.302-1.65,1.605-2.678c0.301-1.026,0.451-2.129,0.451-3.312
c0-1.18-0.149-2.285-0.451-3.311c-0.304-1.028-0.838-1.92-1.605-2.679c-0.767-0.761-1.793-1.355-3.089-1.793
c-1.294-0.436-2.935-0.654-4.918-0.654h-11.27c-2.013,0-3.665,0.219-4.957,0.654c-1.298,0.438-2.325,1.032-3.091,1.793
c-0.767,0.759-1.302,1.65-1.603,2.679c-0.304,1.025-0.451,2.131-0.451,3.311c0,1.184,0.147,2.286,0.451,3.312
c0.301,1.027,0.836,1.92,1.603,2.678c0.767,0.761,1.793,1.358,3.091,1.794c1.292,0.435,2.932,0.653,4.916,0.653h11.311
C148.547,61.832,150.188,61.613,151.482,61.178z"/>
<path fill="#002D62" d="M198.24,38.631c2.033,0,3.758,0.26,5.18,0.777c1.422,0.521,2.576,1.232,3.471,2.132
c0.89,0.901,1.542,1.956,1.959,3.164c0.413,1.211,0.619,2.489,0.619,3.838c0,1.407-0.206,2.707-0.619,3.903
c-0.417,1.195-1.069,2.243-1.959,3.145c-0.895,0.897-2.049,1.6-3.471,2.107c-1.422,0.506-3.147,0.759-5.18,0.759h-21.864v9.701
h-6.635V38.631H198.24z M176.376,51.707h21.71c0.932,0,1.688-0.085,2.281-0.252c0.589-0.168,1.04-0.395,1.359-0.674
c0.312-0.282,0.525-0.615,0.637-0.994c0.113-0.379,0.171-0.792,0.171-1.244c0-0.42-0.058-0.829-0.171-1.223
c-0.111-0.394-0.324-0.731-0.637-1.014c-0.319-0.279-0.77-0.505-1.359-0.675c-0.593-0.168-1.349-0.251-2.281-0.251h-21.71V51.707z
"/>
<path fill="#002D62" d="M251.91,38.631v6.749h-31.396v4.978h27.555v6.076h-27.555v4.978h31.396v6.746h-38.028V38.631H251.91z"/>
<path fill="#002D62" d="M264.763,68.158h-6.633V38.631h6.296l27.667,20.838V38.631h6.633v29.526h-6.296L264.763,47.32V68.158z"/>
<path fill="#20AA4D" d="M312.934,56.769v11.389h-6.632V38.631h6.632V50.02h27.177V38.631h6.639v29.526h-6.639V56.769H312.934z"/>
<path fill="#20AA4D" d="M365.86,68.158l-15.076-29.526h7.99l9.606,20.248l9.842-20.248h4.903l9.836,20.248l9.612-20.248h7.988
l-15.076,29.526h-4.902l-9.908-20.247l-9.918,20.247H365.86z"/>
</g>
</g>
<g>
<path fill="#6D6E71" d="M164.382,77.751h7.2c0.4,0,0.74,0.139,1.02,0.42c0.28,0.279,0.42,0.619,0.42,1.02v2.531
c0,0.4-0.14,0.74-0.42,1.021c-0.28,0.279-0.62,0.42-1.02,0.42h-5.76c-0.072,0-0.228-0.018-0.468-0.049v3.264h-0.972V77.751z
M172.05,81.722v-2.531c0-0.127-0.046-0.238-0.138-0.33c-0.092-0.092-0.202-0.139-0.33-0.139h-5.76
c-0.128,0-0.238,0.047-0.33,0.139c-0.092,0.092-0.138,0.203-0.138,0.33v2.531c0,0.129,0.046,0.236,0.138,0.324
c0.092,0.088,0.202,0.133,0.33,0.133h5.76c0.128,0,0.238-0.045,0.33-0.133C172.004,81.958,172.05,81.851,172.05,81.722z"/>
<path fill="#6D6E71" d="M184.421,79.191v2.531c0,0.4-0.14,0.74-0.42,1.021c-0.28,0.279-0.62,0.42-1.02,0.42h-1.32l2.712,3.215
h-1.284l-2.7-3.215h-3.168c-0.072,0-0.228-0.018-0.468-0.049v3.264h-0.972v-8.627h7.2c0.4,0,0.74,0.139,1.02,0.42
C184.282,78.451,184.421,78.791,184.421,79.191z M177.222,82.179h5.76c0.128,0,0.236-0.045,0.324-0.133
c0.088-0.088,0.132-0.195,0.132-0.324v-2.531c0-0.127-0.044-0.238-0.132-0.33c-0.088-0.092-0.196-0.139-0.324-0.139h-5.76
c-0.128,0-0.238,0.047-0.33,0.139c-0.092,0.092-0.138,0.203-0.138,0.33v2.531c0,0.129,0.046,0.236,0.138,0.324
C176.983,82.134,177.094,82.179,177.222,82.179z"/>
<path fill="#6D6E71" d="M189.029,77.74h5.76c0.4,0,0.74,0.139,1.02,0.42c0.28,0.279,0.42,0.619,0.42,1.02v5.76
c0,0.4-0.14,0.74-0.42,1.02c-0.28,0.281-0.62,0.42-1.02,0.42h-5.76c-0.4,0-0.74-0.139-1.02-0.42c-0.28-0.279-0.42-0.619-0.42-1.02
v-5.76c0-0.4,0.14-0.74,0.42-1.02C188.29,77.878,188.629,77.74,189.029,77.74z M189.029,85.408h5.76
c0.128,0,0.238-0.047,0.33-0.139c0.092-0.092,0.138-0.201,0.138-0.33v-5.76c0-0.129-0.046-0.238-0.138-0.33
c-0.092-0.092-0.202-0.139-0.33-0.139h-5.76c-0.128,0-0.238,0.047-0.33,0.139c-0.092,0.092-0.138,0.201-0.138,0.33v5.76
c0,0.129,0.046,0.238,0.138,0.33C188.792,85.361,188.901,85.408,189.029,85.408z"/>
<path fill="#6D6E71" d="M204.785,85.431l4.416-7.691h1.14l-4.992,8.639h-1.128l-5.004-8.639h1.14L204.785,85.431z"/>
<path fill="#6D6E71" d="M221.333,77.74v0.971h-6.912v2.857h5.556v0.982h-5.556v2.857h6.912v0.971h-7.885V77.74H221.333z"/>
<path fill="#6D6E71" d="M232.204,85.275V77.74h0.972v8.639h-1.332l-6.336-7.535v7.535h-0.972V77.74h1.332L232.204,85.275z"/>
<path fill="#6D6E71" d="M241.622,77.751h7.201c0.399,0,0.739,0.139,1.02,0.42c0.279,0.279,0.42,0.619,0.42,1.02v2.531
c0,0.4-0.141,0.74-0.42,1.021c-0.28,0.279-0.62,0.42-1.02,0.42h-5.761c-0.071,0-0.228-0.018-0.468-0.049v3.264h-0.973V77.751z
M249.29,81.722v-2.531c0-0.127-0.045-0.238-0.137-0.33c-0.093-0.092-0.203-0.139-0.33-0.139h-5.761
c-0.128,0-0.237,0.047-0.329,0.139c-0.093,0.092-0.139,0.203-0.139,0.33v2.531c0,0.129,0.046,0.236,0.139,0.324
c0.092,0.088,0.201,0.133,0.329,0.133h5.761c0.127,0,0.237-0.045,0.33-0.133C249.245,81.958,249.29,81.851,249.29,81.722z"/>
<path fill="#6D6E71" d="M261.662,79.191v2.531c0,0.4-0.14,0.74-0.42,1.021c-0.28,0.279-0.62,0.42-1.021,0.42h-1.319l2.712,3.215
h-1.284l-2.7-3.215h-3.168c-0.072,0-0.228-0.018-0.468-0.049v3.264h-0.972v-8.627h7.199c0.4,0,0.74,0.139,1.021,0.42
C261.522,78.451,261.662,78.791,261.662,79.191z M254.462,82.179h5.76c0.129,0,0.236-0.045,0.324-0.133s0.133-0.195,0.133-0.324
v-2.531c0-0.127-0.045-0.238-0.133-0.33s-0.195-0.139-0.324-0.139h-5.76c-0.127,0-0.238,0.047-0.33,0.139s-0.138,0.203-0.138,0.33
v2.531c0,0.129,0.046,0.236,0.138,0.324S254.335,82.179,254.462,82.179z"/>
<path fill="#6D6E71" d="M266.27,77.74h5.761c0.399,0,0.739,0.139,1.02,0.42c0.279,0.279,0.42,0.619,0.42,1.02v5.76
c0,0.4-0.141,0.74-0.42,1.02c-0.28,0.281-0.62,0.42-1.02,0.42h-5.761c-0.399,0-0.739-0.139-1.021-0.42
c-0.279-0.279-0.42-0.619-0.42-1.02v-5.76c0-0.4,0.141-0.74,0.42-1.02C265.53,77.878,265.87,77.74,266.27,77.74z M266.27,85.408
h5.761c0.127,0,0.237-0.047,0.33-0.139c0.092-0.092,0.137-0.201,0.137-0.33v-5.76c0-0.129-0.045-0.238-0.137-0.33
c-0.093-0.092-0.203-0.139-0.33-0.139h-5.761c-0.128,0-0.237,0.047-0.33,0.139c-0.092,0.092-0.138,0.201-0.138,0.33v5.76
c0,0.129,0.046,0.238,0.138,0.33C266.032,85.361,266.142,85.408,266.27,85.408z"/>
<path fill="#6D6E71" d="M285.325,78.71h-7.176c-0.128,0-0.238,0.047-0.33,0.139s-0.138,0.201-0.138,0.33v5.76
c0,0.129,0.046,0.238,0.138,0.33s0.202,0.139,0.33,0.139h7.176v0.971h-7.176c-0.4,0-0.74-0.139-1.02-0.42
c-0.28-0.279-0.42-0.619-0.42-1.02v-5.76c0-0.4,0.14-0.74,0.42-1.02c0.279-0.281,0.619-0.42,1.02-0.42h7.176V78.71z"/>
<path fill="#6D6E71" d="M296.401,77.74v0.971h-6.912v2.857h5.556v0.982h-5.556v2.857h6.912v0.971h-7.885V77.74H296.401z"/>
<path fill="#6D6E71" d="M308.185,79.179v0.336h-0.973v-0.336c0-0.129-0.045-0.238-0.137-0.33c-0.093-0.092-0.203-0.139-0.33-0.139
h-5.761c-0.128,0-0.237,0.047-0.329,0.139c-0.093,0.092-0.139,0.201-0.139,0.33v1.932c0,0.129,0.046,0.236,0.139,0.324
c0.092,0.088,0.201,0.133,0.329,0.133h5.761c0.399,0,0.739,0.139,1.02,0.42c0.279,0.279,0.42,0.619,0.42,1.02v1.932
c0,0.4-0.141,0.74-0.42,1.02c-0.28,0.281-0.62,0.42-1.02,0.42h-5.761c-0.399,0-0.739-0.139-1.02-0.42
c-0.28-0.279-0.421-0.619-0.421-1.02v-0.336h0.973v0.336c0,0.129,0.046,0.238,0.139,0.33c0.092,0.092,0.201,0.139,0.329,0.139
h5.761c0.127,0,0.237-0.047,0.33-0.139c0.092-0.092,0.137-0.201,0.137-0.33v-1.932c0-0.129-0.045-0.236-0.137-0.324
c-0.093-0.088-0.203-0.133-0.33-0.133h-5.761c-0.399,0-0.739-0.139-1.02-0.42c-0.28-0.279-0.421-0.619-0.421-1.02v-1.932
c0-0.4,0.141-0.74,0.421-1.02c0.28-0.281,0.62-0.42,1.02-0.42h5.761c0.399,0,0.739,0.139,1.02,0.42
C308.044,78.439,308.185,78.779,308.185,79.179z"/>
<path fill="#6D6E71" d="M319.968,79.179v0.336h-0.973v-0.336c0-0.129-0.045-0.238-0.137-0.33c-0.093-0.092-0.203-0.139-0.33-0.139
h-5.761c-0.128,0-0.237,0.047-0.329,0.139c-0.093,0.092-0.139,0.201-0.139,0.33v1.932c0,0.129,0.046,0.236,0.139,0.324
c0.092,0.088,0.201,0.133,0.329,0.133h5.761c0.399,0,0.739,0.139,1.02,0.42c0.279,0.279,0.42,0.619,0.42,1.02v1.932
c0,0.4-0.141,0.74-0.42,1.02c-0.28,0.281-0.62,0.42-1.02,0.42h-5.761c-0.399,0-0.739-0.139-1.02-0.42
c-0.28-0.279-0.421-0.619-0.421-1.02v-0.336h0.973v0.336c0,0.129,0.046,0.238,0.139,0.33c0.092,0.092,0.201,0.139,0.329,0.139
h5.761c0.127,0,0.237-0.047,0.33-0.139c0.092-0.092,0.137-0.201,0.137-0.33v-1.932c0-0.129-0.045-0.236-0.137-0.324
c-0.093-0.088-0.203-0.133-0.33-0.133h-5.761c-0.399,0-0.739-0.139-1.02-0.42c-0.28-0.279-0.421-0.619-0.421-1.02v-1.932
c0-0.4,0.141-0.74,0.421-1.02c0.28-0.281,0.62-0.42,1.02-0.42h5.761c0.399,0,0.739,0.139,1.02,0.42
C319.827,78.439,319.968,78.779,319.968,79.179z"/>
<path fill="#6D6E71" d="M324.587,77.74h5.761c0.399,0,0.739,0.139,1.021,0.42c0.279,0.279,0.42,0.619,0.42,1.02v5.76
c0,0.4-0.141,0.74-0.42,1.02c-0.281,0.281-0.621,0.42-1.021,0.42h-5.761c-0.399,0-0.739-0.139-1.02-0.42
c-0.279-0.279-0.42-0.619-0.42-1.02v-5.76c0-0.4,0.141-0.74,0.42-1.02C323.848,77.878,324.188,77.74,324.587,77.74z
M324.587,85.408h5.761c0.128,0,0.237-0.047,0.33-0.139c0.092-0.092,0.138-0.201,0.138-0.33v-5.76c0-0.129-0.046-0.238-0.138-0.33
c-0.093-0.092-0.202-0.139-0.33-0.139h-5.761c-0.127,0-0.237,0.047-0.33,0.139c-0.092,0.092-0.137,0.201-0.137,0.33v5.76
c0,0.129,0.045,0.238,0.137,0.33C324.35,85.361,324.46,85.408,324.587,85.408z"/>
<path fill="#6D6E71" d="M343.655,79.191v2.531c0,0.4-0.141,0.74-0.42,1.021c-0.28,0.279-0.621,0.42-1.021,0.42h-1.319l2.711,3.215
h-1.283l-2.7-3.215h-3.168c-0.072,0-0.228-0.018-0.468-0.049v3.264h-0.973v-8.627h7.2c0.399,0,0.74,0.139,1.021,0.42
C343.515,78.451,343.655,78.791,343.655,79.191z M336.455,82.179h5.76c0.128,0,0.235-0.045,0.324-0.133
c0.088-0.088,0.132-0.195,0.132-0.324v-2.531c0-0.127-0.044-0.238-0.132-0.33c-0.089-0.092-0.196-0.139-0.324-0.139h-5.76
c-0.128,0-0.238,0.047-0.33,0.139c-0.093,0.092-0.138,0.203-0.138,0.33v2.531c0,0.129,0.045,0.236,0.138,0.324
C336.217,82.134,336.327,82.179,336.455,82.179z"/>
<path fill="#6D6E71" d="M352.042,86.378V77.74h0.972v8.639H352.042z"/>
<path fill="#6D6E71" d="M356.59,77.751h7.2c0.4,0,0.74,0.139,1.02,0.42c0.28,0.279,0.42,0.619,0.42,1.02v2.531
c0,0.4-0.14,0.74-0.42,1.021c-0.279,0.279-0.619,0.42-1.02,0.42h-5.76c-0.072,0-0.229-0.018-0.469-0.049v3.264h-0.972V77.751z
M364.258,81.722v-2.531c0-0.127-0.046-0.238-0.138-0.33s-0.202-0.139-0.33-0.139h-5.76c-0.129,0-0.238,0.047-0.33,0.139
s-0.139,0.203-0.139,0.33v2.531c0,0.129,0.047,0.236,0.139,0.324s0.201,0.133,0.33,0.133h5.76c0.128,0,0.238-0.045,0.33-0.133
S364.258,81.851,364.258,81.722z"/>
</g>
<g>
<path fill="#002D62" d="M352.39,28.699v5.57h-7.726c-0.936,0-1.732-0.121-2.389-0.363s-1.193-0.572-1.61-0.99
c-0.416-0.418-0.721-0.908-0.914-1.471c-0.192-0.564-0.289-1.162-0.289-1.795c0-0.635,0.097-1.232,0.289-1.797
c0.193-0.562,0.498-1.053,0.914-1.471c0.417-0.418,0.954-0.748,1.61-0.99s1.453-0.363,2.389-0.363h7.077v2.113h-7.065
c-0.598,0-1.089,0.064-1.475,0.197c-0.385,0.131-0.689,0.311-0.914,0.535c-0.224,0.223-0.381,0.49-0.472,0.797
c-0.091,0.309-0.136,0.635-0.136,0.979c0,0.342,0.045,0.668,0.136,0.977c0.091,0.307,0.248,0.574,0.472,0.797
c0.225,0.225,0.529,0.404,0.914,0.535c0.386,0.133,0.877,0.197,1.475,0.197h5.686v-1.557h-3.952v-1.9H352.39z"/>
<path fill="#002D62" d="M363.332,25.029c0.63,0,1.166,0.082,1.61,0.244c0.444,0.164,0.808,0.383,1.091,0.66
s0.491,0.602,0.625,0.971s0.201,0.766,0.201,1.188c0,0.396-0.056,0.768-0.165,1.115c-0.11,0.348-0.285,0.656-0.525,0.924
c-0.239,0.27-0.546,0.488-0.92,0.66c-0.373,0.172-0.819,0.283-1.339,0.336l4.376,3.143h-3.42l-4.105-3.076h-4.151v3.076h-2.076
v-9.24H363.332z M356.609,29.16h6.641c0.291,0,0.53-0.025,0.72-0.078c0.188-0.053,0.336-0.125,0.441-0.219
c0.106-0.092,0.18-0.199,0.219-0.322s0.059-0.256,0.059-0.396c0-0.131-0.02-0.26-0.059-0.383s-0.112-0.23-0.219-0.322
c-0.105-0.094-0.253-0.166-0.441-0.219c-0.189-0.053-0.429-0.078-0.72-0.078h-6.641V29.16z"/>
<path fill="#002D62" d="M371.64,34.025c-0.681-0.252-1.235-0.59-1.663-1.018c-0.429-0.426-0.741-0.928-0.938-1.504
c-0.196-0.576-0.295-1.195-0.295-1.854c0-0.66,0.099-1.279,0.295-1.855c0.197-0.576,0.51-1.078,0.938-1.504
c0.428-0.428,0.982-0.766,1.663-1.018c0.68-0.25,1.5-0.375,2.459-0.375h3.562c0.96,0,1.779,0.125,2.46,0.375
c0.68,0.252,1.234,0.59,1.663,1.018c0.429,0.426,0.741,0.928,0.938,1.504s0.295,1.195,0.295,1.855c0,0.658-0.099,1.277-0.295,1.854
s-0.509,1.078-0.938,1.504c-0.429,0.428-0.983,0.766-1.663,1.018c-0.681,0.25-1.5,0.375-2.46,0.375h-3.562
C373.14,34.4,372.319,34.275,371.64,34.025z M379.188,32.083c0.404-0.137,0.727-0.322,0.967-0.561s0.407-0.518,0.501-0.838
c0.095-0.32,0.142-0.666,0.142-1.035c0-0.371-0.047-0.717-0.142-1.037c-0.094-0.32-0.261-0.6-0.501-0.838s-0.562-0.424-0.967-0.561
c-0.405-0.137-0.919-0.205-1.54-0.205h-3.526c-0.629,0-1.146,0.068-1.551,0.205c-0.405,0.137-0.728,0.322-0.968,0.561
c-0.239,0.238-0.406,0.518-0.501,0.838s-0.142,0.666-0.142,1.037c0,0.369,0.047,0.715,0.142,1.035s0.262,0.6,0.501,0.838
c0.24,0.238,0.562,0.424,0.968,0.561c0.404,0.137,0.918,0.205,1.539,0.205h3.538C378.27,32.289,378.783,32.22,379.188,32.083z"/>
<path fill="#002D62" d="M386.863,30.923c0.083,0.277,0.234,0.516,0.454,0.719c0.221,0.203,0.518,0.361,0.891,0.475
c0.373,0.115,0.852,0.172,1.433,0.172h2.819c0.582,0,1.06-0.057,1.434-0.172c0.373-0.113,0.67-0.271,0.891-0.475
c0.22-0.203,0.371-0.441,0.454-0.719c0.082-0.277,0.123-0.584,0.123-0.918v-4.977h2.076v4.977c0,0.633-0.082,1.221-0.248,1.762
c-0.165,0.541-0.441,1.006-0.831,1.393s-0.9,0.691-1.533,0.91c-0.633,0.221-1.418,0.33-2.354,0.33h-2.843
c-0.936,0-1.72-0.109-2.353-0.33c-0.633-0.219-1.145-0.523-1.533-0.91c-0.39-0.387-0.667-0.852-0.832-1.393
s-0.248-1.129-0.248-1.762v-4.977h2.076v4.977C386.739,30.339,386.781,30.646,386.863,30.923z"/>
<path fill="#002D62" d="M408.558,25.029c0.637,0,1.178,0.082,1.622,0.244c0.444,0.164,0.806,0.385,1.085,0.668
c0.279,0.281,0.483,0.611,0.613,0.988c0.13,0.379,0.194,0.779,0.194,1.201c0,0.441-0.064,0.848-0.194,1.221
c-0.13,0.375-0.334,0.703-0.613,0.984s-0.641,0.502-1.085,0.66s-0.985,0.236-1.622,0.236h-6.841v3.037h-2.076v-9.24H408.558z
M401.717,29.121h6.794c0.291,0,0.528-0.025,0.714-0.078c0.185-0.053,0.326-0.123,0.424-0.211c0.099-0.09,0.165-0.191,0.201-0.311
c0.035-0.119,0.053-0.25,0.053-0.391c0-0.131-0.018-0.26-0.053-0.383c-0.036-0.123-0.103-0.229-0.201-0.316
c-0.098-0.088-0.239-0.158-0.424-0.211c-0.186-0.053-0.423-0.078-0.714-0.078h-6.794V29.121z"/>
</g>
<line fill="#6D6E71" stroke="#6D6E71" stroke-miterlimit="10" x1="118.106" y1="82.673" x2="157.744" y2="82.673"/>
<line fill="#6D6E71" stroke="#6D6E71" stroke-miterlimit="10" x1="370.925" y1="82.673" x2="410.562" y2="82.673"/>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

View file

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before After
Before After

View file

@ -7,7 +7,7 @@
Original Author: Alae Eddine EZ ZEJJARI (alae-eddine.ez-zejjari@external.thalesgroup.com)
.. _CVA6_AXI:
.. _CV32A6_AXI:
AXI
===

View file

@ -7,7 +7,7 @@
Original Author: Jean-Roch COULON (jean-roch.coulon@thalesgroup.com)
.. _CVA6_FRONTEND:
.. _CV32A6_FRONTEND:
FRONTEND Module
===============

View file

@ -15,7 +15,7 @@
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
.. _CVA6_GLOSSARY:
.. _CV32A6_GLOSSARY:
Glossary
========

View file

@ -7,11 +7,16 @@
Original Author: Jean-Roch COULON (jean-roch.coulon@thalesgroup.com)
.. _CVA6_INTRO:
.. _CV32A6_INTRO:
Introduction
=============
The OpenHW Group uses `semantic versioning <https://semver.org/>`_ to describe the release status of its IP.
This document describes v0.1.0 of the CV32A6.
This is not intended to be a formal release of CVA6.
Currently, the first planned release of CVA6 is the CV32A6 v0.2.0.
CVA6 is a 6-stage in-order and single issue processor core which implements the RISC-V instruction set.
CVA6 can be configured as a 32- or 64-bit core (RV32 or RV64), called CV32A6 or CV64A6.
This document describes an initial version (v0.1.0) of the CV32A6 processor configuration.

View file

@ -10,11 +10,8 @@
.. _CVA6_SUBSYSTEM:
CV32A6 v0.1.0 Subsystem
========================
Description
-----------
CV32A6 Subsystem
================
The CV32A6 v0.1.0 is a subsystem composed of the modules and protocol interfaces as illustrated `CV32A6 v0.1.0 modules`_
The processor is a Harvard-based modern architecture.

View file

@ -15,17 +15,17 @@
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
OpenHW Group CV32A6 v0.1.0 Design Document
==========================================
CV32A6 Design Document
======================
.. toctree::
:maxdepth: 3
:caption: Contents:
cva6_intro
cva6_system
cva6_frontend
cva6_isa
CV32A6_CSR
cva6_axi
cva6_glossary
cv32a6_intro
cv32a6_subsystem
cv32a6_frontend
cv32a6_isa
cv32a6_csr
cv32a6_axi
cv32a6_glossary

View file

@ -1,35 +1,67 @@
.. CVA6 documentation master file, created by
sphinx-quickstart on Sun Jul 26 12:37:22 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
..
Copyright (c) 2022 OpenHW Group
OpenHW Group CVA6 User Manual
================================
Editor: **Florian Zaruba**
`florian@openhwgroup.org <mailto:florian@openhwgroup.org?subject=CVA6%20User%20Manual>`__
Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://solderpad.org/licenses/
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
This is the CVA6 documentation master file.
CVA6: An application class RISC-V CPU core
==========================================
The goal of the CVA6 project is create a family of production quality, open source, application class RISC-V CPU cores.
The CVA6 targets both ASIC and FPGA implementations, although individual cores may target a specific implementation technology.
The CVA6 is written in SystemVerilog and is heavily parameterizable.
For example parameters can set the ILEN to be either 32- or 64-bits and support for floating point can be enabled/disabled.
CORE-V Nomenclature
-------------------
**CORE-V** is the name of the OpenHW Group family of RISC-V cores.
CVA6 is the name of a GitHub repository for the source code for a set of application class CORE-V cores.
The CV prefix identifies it as a member of the CORE-V family and the A6 indicates that it is an application class processor with a six stage execution pipeline.
However, the CVA6 "as is" is not intended to implement a specific production core.
Rather, the CVA6 is expected to be the basis for a number of application class cores.
The naming convention for these cores is:
``CV <ILEN> <class> <# of pipeline stages> <product identifier>``
Thus, the CV64A60 would be a 64-bit application core with a six stage pipeline.
Note that in this example, the product identifer is "0".
Organization of this Document
-----------------------------
This documentation is split into multiple parts.
The :doc:`CVA6 User Guide <01_cva6_user/index>` provides a detailed introduction to the CVA6.
This document is based on the original Ariane documentation and is aimed at hardware developers integrating CVA6 into a design.
The :doc:`CVA6 Requirements Specification <02_cva6_requirements/cva6_requirements_specification>` is the top-level specification of the CVA6.
One of the key attributes of this document is to specify the feature set of specific CORE-V products based on CVA6.
This document focuses on _what_ the CVA6 does, without detailed consideration of _how_ a specific requirement is implemented.
The target audience of this document is current and existing members of the OpenHW Group who wish to participate in the definition of future cores based on the CVA6.
The :doc:`CV32A6 Design Specification <03_cv32a6_design/source/index>` describes in detail the **CV32A6**, the first production quality 32-bit application processor derived from the CVA6.
The primary audience for this documentation are design and verification engineers working to bring the CV32A6 to TRL-5.
.. toctree::
:maxdepth: 2
:caption: Contents:
:hidden:
intro
pcgen_stage
if_stage
id_stage
issue_stage
ex_stage
commit_stage
cva6_soc
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Documentation
=============
The documentation is hosted in the docs folder and is re-created on pushes to master. When contributing to the project please consider the [contribution guide](https://github.com/openhwgroup/cva6/blob/master/CONTRIBUTING.md).
01_cva6_user/index.rst
02_cva6_requirements/cva6_requirements_specification.rst
03_cv32a6_design/source/index.rst