mirror of
https://github.com/supleed2/ELEC50010-IAC-CW.git
synced 2024-11-09 17:25:50 +00:00
Update README.md
v1.3 from Upstream PC typo, include EL version of gcc, provision script
This commit is contained in:
parent
dd5789d8cc
commit
044132117c
30
README.md
30
README.md
|
@ -22,6 +22,10 @@ Revision log
|
|||
- 2020/10/20 : v1.0 - Updated with harvard and bus to provide simpler learning curve.
|
||||
- 2020/11/16 : v1.1 - Minor tweaks based on lab results.
|
||||
- 2020/11/20 : v1.2 - Added missing environment/standards part.
|
||||
- 2020/11/25 : v1.3 - Various tweaks and clarifications
|
||||
- Added the ability to include a provision script
|
||||
- Fixed the typo related to PC on reset.
|
||||
- Added gcc-mipsel-linux-gnu as explicitly available package.
|
||||
|
||||
Overall goals
|
||||
=============
|
||||
|
@ -352,7 +356,7 @@ The reason for this choice is intimately related to the reset conditions
|
|||
and [MIPS O32 ABI](https://en.wikipedia.org/wiki/MIPS_architecture#Calling_conventions);
|
||||
in particular, this choice exploits the following existing requirements:
|
||||
|
||||
- For the reset, we require that all registers (including the PC) are set to 0.
|
||||
- For the reset, we require that all registers (excluding the PC) are set to 0.
|
||||
- The MIPS ABI also specifies that integer return values from functions are placed in register $v0, which is defined to be register 2.
|
||||
- The MIPS ABI also specifies that the return address for a function is stored in register $ra, which is defined to be register 31.
|
||||
|
||||
|
@ -617,14 +621,33 @@ packages will be installed, along with the following packages:
|
|||
|
||||
- `build-essential` (g++, make)
|
||||
- `git`
|
||||
- `gcc-mips-linux-gnu`
|
||||
- `qemu-system-mips`
|
||||
- `gcc-mipsel-linux-gnu` and `gcc-mips-linux-gnu`
|
||||
- `qemu-system-mips`
|
||||
- `python3`
|
||||
- `cmake`
|
||||
- `verilator`
|
||||
- `libboost-dev`
|
||||
- `parallel`
|
||||
|
||||
Provisioning
|
||||
------------
|
||||
|
||||
If there is a particular package that you want to use, such as a python
|
||||
library or standard Ubuntu package, then you can include a script called `provision.sh`
|
||||
which can install such packages. You can assume that this package will be
|
||||
run once as root before your test-bench is installed.
|
||||
|
||||
Note that this script is completely optional. Most teams probably won't need one.
|
||||
|
||||
Exactly two types of package are allowed:
|
||||
|
||||
- Ubuntu package installation via `apt install`. This must be a standard Ubuntu package,
|
||||
with no use of PPAs or other package sources.
|
||||
- Python package installation via `pip install` or `pip3 install`. This must be a package
|
||||
coming from the standard pip set of packages.
|
||||
|
||||
|
||||
|
||||
Clarifying notes
|
||||
================
|
||||
|
||||
|
@ -655,4 +678,3 @@ decode and execute logic is mostly the same. It is only the
|
|||
parts that deal with instruction timing and memory that are
|
||||
different. So you can have a single shared execution core
|
||||
that is used by two variants.
|
||||
|
||||
|
|
Loading…
Reference in a new issue