mirror of
https://github.com/supleed2/ELEC50010-IAC-CW.git
synced 2024-12-22 21:35:48 +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
28
README.md
28
README.md
|
@ -22,6 +22,10 @@ Revision log
|
||||||
- 2020/10/20 : v1.0 - Updated with harvard and bus to provide simpler learning curve.
|
- 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/16 : v1.1 - Minor tweaks based on lab results.
|
||||||
- 2020/11/20 : v1.2 - Added missing environment/standards part.
|
- 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
|
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);
|
and [MIPS O32 ABI](https://en.wikipedia.org/wiki/MIPS_architecture#Calling_conventions);
|
||||||
in particular, this choice exploits the following existing requirements:
|
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 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.
|
- 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,7 +621,7 @@ packages will be installed, along with the following packages:
|
||||||
|
|
||||||
- `build-essential` (g++, make)
|
- `build-essential` (g++, make)
|
||||||
- `git`
|
- `git`
|
||||||
- `gcc-mips-linux-gnu`
|
- `gcc-mipsel-linux-gnu` and `gcc-mips-linux-gnu`
|
||||||
- `qemu-system-mips`
|
- `qemu-system-mips`
|
||||||
- `python3`
|
- `python3`
|
||||||
- `cmake`
|
- `cmake`
|
||||||
|
@ -625,6 +629,25 @@ packages will be installed, along with the following packages:
|
||||||
- `libboost-dev`
|
- `libboost-dev`
|
||||||
- `parallel`
|
- `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
|
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
|
parts that deal with instruction timing and memory that are
|
||||||
different. So you can have a single shared execution core
|
different. So you can have a single shared execution core
|
||||||
that is used by two variants.
|
that is used by two variants.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue