Update README.md
- List things that are no longer submodules as subpackages instead - clean up some formatting issues
This commit is contained in:
parent
058396aefe
commit
4465260469
79
README.md
79
README.md
@ -38,6 +38,7 @@ of riscv-tools:
|
||||
$ git submodule update --init --recursive
|
||||
$ export RISCV=/path/to/install/riscv/toolchain
|
||||
$ ./build.sh
|
||||
$ ./build-rv32im.sh (if you are using RV32).
|
||||
|
||||
For more information (or if you run into any issues), please consult the
|
||||
[riscv-tools/README](https://github.com/riscv/riscv-tools/blob/master/README.md).
|
||||
@ -96,6 +97,7 @@ If riscv-tools version changes, you should recompile and install riscv-tools acc
|
||||
|
||||
$ cd riscv-tools
|
||||
$ ./build.sh
|
||||
$ ./build-rv32im.sh (if you are using RV32)
|
||||
|
||||
If firrtl version changes and you are using Chisel3, you may need to clean and recompile:
|
||||
|
||||
@ -143,24 +145,6 @@ instructions on how to build your design with Chisel3 instead of Chisel2.
|
||||
FIRRTL (Flexible Internal Representation for RTL) is the intermediate format
|
||||
which Chisel3 is based upon. The Chisel3 compiler generates a FIRRTL representation,
|
||||
from which the final product (Verilog code, C code, etc) is generated.
|
||||
* **rocket**
|
||||
([https://github.com/ucb-bar/rocket](https://github.com/ucb-bar/rocket)):
|
||||
The rocket repository holds the actual source code of the Rocket core.
|
||||
Note that the L1 blocking I$ and the L1 non-blocking D$ are considered
|
||||
part of the core, and hence we keep the L1 cache source code in this
|
||||
repository. This repository is not meant to stand alone; it needs to be
|
||||
included in a chip repository (e.g. rocket-chip) that instantiates the
|
||||
core within a memory system and connects it to the outside world.
|
||||
* **uncore**
|
||||
([https://github.com/ucb-bar/uncore](https://github.com/ucb-bar/uncore)):
|
||||
This repository implements the uncore logic, such as the coherence hub
|
||||
(the agent that keeps multiple L1 D$ coherent). The definition of the
|
||||
coherent interfaces between tiles ("tilelink") and the debug interface
|
||||
also live in this repository.
|
||||
* **junctions**
|
||||
([https://github.com/ucb-bar/junctions](https://github.com/ucb-bar/junctions)):
|
||||
This repository contains code and
|
||||
converters for various bus protocols and interfaces.
|
||||
* **hardfloat**
|
||||
([https://github.com/ucb-bar/berkeley-hardfloat](https://github.com/ucb-bar/berkeley-hardfloat)):
|
||||
This repository holds the parameterized IEEE 754-2008 compliant
|
||||
@ -182,26 +166,48 @@ library for use with Chisel3.
|
||||
([https://github.com/dramninjasUMD/DRAMSim2](https://github.com/dramninjasUMD/DRAMSim2)):
|
||||
Currently, the DRAM memory system is implemented in the testbench. We
|
||||
use dramsim2 to emulate DRAM timing.
|
||||
* **fpga-zynq**
|
||||
([https://github.com/ucb-bar/fpga-zynq](https://github.com/ucb-bar/fpga-zynq)):
|
||||
We also tag a version of the FPGA infrastructure that works with the RTL
|
||||
committed in the rocket-chip repository.
|
||||
* **riscv-tools**
|
||||
([https://github.com/riscv/riscv-tools](https://github.com/riscv/riscv-tools)):
|
||||
We tag a version of riscv-tools that works with the RTL committed in the
|
||||
rocket-chip repository. Once the software toolchain stabilizes, we
|
||||
might turn this submodule into an external dependency.
|
||||
* **groundtest**
|
||||
([https://github.com/ucb-bar/groundtest](https://github.com/ucb-bar/groundtest)):
|
||||
This repository contains code which can test the uncore by generating randomized
|
||||
instruction streams. It replaces the rocket processor with an instruction
|
||||
stream generator to stress-test the uncore portions of the design.
|
||||
* **torture**
|
||||
([https://github.com/ucb-bar/torture](https://github.com/ucb-bar/torture)):
|
||||
The torture test code is used to generate randomized instruction streams which
|
||||
are then run as code on the rocket core(s). These are constrained random tests
|
||||
to stress-test both the core and uncore portions of the design.
|
||||
|
||||
### <a name="what_submodules"></a>The Sub Packages
|
||||
|
||||
In addition to submodules, which are tracked as different git repositories,
|
||||
the rocket-chip Chisel code base is factored into a number of Scala packages.
|
||||
Here is a brief description
|
||||
of what can be found in each package:
|
||||
|
||||
* **rocket**
|
||||
([https://github.com/ucb-bar/rocket](https://github.com/ucb-bar/rocket)):
|
||||
The rocket repository holds the actual source code of the Rocket core.
|
||||
Note that the L1 blocking I$ and the L1 non-blocking D$ are considered
|
||||
part of the core, and hence we keep the L1 cache source code in this
|
||||
repository. This repository is not meant to stand alone; it needs to be
|
||||
included in a chip repository (e.g. rocket-chip) that instantiates the
|
||||
core within a memory system and connects it to the outside world.
|
||||
* **uncore**
|
||||
([https://github.com/ucb-bar/uncore](https://github.com/ucb-bar/uncore)):
|
||||
This repository implements the uncore logic, such as the coherence hub
|
||||
(the agent that keeps multiple L1 D$ coherent). The definition of the
|
||||
coherent interfaces between tiles ("tilelink") and the debug interface
|
||||
also live in this repository.
|
||||
* **junctions**
|
||||
([https://github.com/ucb-bar/junctions](https://github.com/ucb-bar/junctions)):
|
||||
This repository contains code and
|
||||
converters for various bus protocols and interfaces.
|
||||
* **groundtest**
|
||||
([https://github.com/ucb-bar/groundtest](https://github.com/ucb-bar/groundtest)):
|
||||
This repository contains code which can test the uncore by generating randomized
|
||||
instruction streams. It replaces the rocket processor with an instruction
|
||||
stream generator to stress-test the uncore portions of the design.
|
||||
|
||||
### <a name="what_toplevel"></a>The Top Level Module
|
||||
|
||||
Next, take a look at rocket-chip's src/main/scala directory.
|
||||
@ -256,22 +262,21 @@ There are 4 major I/O ports coming out of the top-level module:
|
||||
|
||||
* **Debug interface (debug)**:
|
||||
The debug interface can be used to both debug the processor as
|
||||
it is executing, and to read and write memory. It is slated to repalce the
|
||||
host interface in the near future.
|
||||
* **High-performance memory interface (mem_*) **:
|
||||
Memory requests from the processor comes out the mem_* ports.
|
||||
it is executing, and to read and write memory.
|
||||
* **High-performance memory interface (mem_\*)**:
|
||||
Memory requests from the processor comes out the mem_\* ports.
|
||||
Depending on the configuration of the design, these may be visible as
|
||||
AXI or AHB protocol. The mem_* port(s) uses the same uncore clock, and
|
||||
AXI or AHB protocol. The mem_\* port(s) uses the same uncore clock, and
|
||||
is intended to be connected to something on the same chip.
|
||||
* ** Memory mapped I/O interface (mmio_*) **:
|
||||
The optional mmio_* interfaces can be used to communicate with devices
|
||||
* **Memory mapped I/O interface (mmio_\*)**:
|
||||
The optional mmio_\* interfaces can be used to communicate with devices
|
||||
on the chip but outside of the rocket-chip boundary. Depending on the
|
||||
configuration of the design, these may be visible as AXI or AHB.
|
||||
* ** Interrupts interface (interrupts) **: This interface is used to
|
||||
* **Interrupts interface (interrupts)**: This interface is used to
|
||||
deliver external interrupts to the processor core.
|
||||
|
||||
Of course, there's a lot more in the actual submodules, but hopefully
|
||||
this would be enough to get you started with using the Rocket chip
|
||||
Of course, there's a lot more in the submodules, but
|
||||
this should be enough to get you started with the Rocket chip
|
||||
generator. We will keep documenting more about our designs in the
|
||||
respective README of each submodules, release notes, and even blog
|
||||
posts. In the mean time, please post questions to the hw-dev mailing
|
||||
|
Loading…
Reference in New Issue
Block a user