Commit 5b4bbaef authored by kblantos's avatar kblantos

README changes in testnech directory and in AXI testbenches

parent 044a3bb2
The majority of the general cores has each own testbench written in VHDL and is using OSVVM as a verification methodology. Below, there are the requirements, that the user should fullfil, in order to run the tests locally:
# Description
The majority of the general cores have their own testbench written in VHDL and as a verification methodology, OSVVM is used. There are also some testbenches which are written in SystemVerilog.
1. Install `HDLMAKE`, `GHDL` and `OSVVM(2020.05+)`
2. Add in `usr/local/lib/ghdl/vendors/config.sh` the path of the downloaded OSVVM
The common features of each test are:
- Randomization of the input signals
- FSM coverage (when there are FSM in the RTL design), results are shown at the end of the simulation
- Assertions are used to verify aspects of the core's functionality, cumply with the specifications
There are two options for the user, in order to run these testbenches. One is to run them all through the Makefile that exist in this directory. This Makefile, contains all the tests, so with `make`, all the tests will run. The other option is to run a specific one seperately. For that option, these are the steps that need to be followed:
There are two options for the users, in order to run these tests. First is to run them all by using the Makefile in the current directory. This Makefile contains all the VHDL tests. Second option, is to run each test individually.
1. Compile OSVVM by running the script: `/usr/local/lib/ghdl/vendors/compile-osvvm --all`
2. Run `hdlmake makefile`
3. Run `make`
4. Run `./run.sh`
5. (Optional) add in the run.sh --wave=waveform.ghw to see waveform with gtkwave
6. See the results of the test in the terminal
## Requirements
- [hdlmake](https://hdlmake.readthedocs.io/en/master/#install-hdlmake-package)
- [ghdl](https://ghdl.github.io/ghdl/development/building/index.html#build)
- [OSVVM](https://github.com/OSVVM/OSVVM) version 2020.05+
## Set up environment
- Modify the file **/usr/local/lib/ghdl/vendors/config.sh** by adding the OSVVM path (in OSVVM_settings change the Installation Directory)
- Compile OSVVM:
```console
/usr/local/lib/ghdl/vendors/compile-osvvm --all
```
## How to test
```console
hdlmake makefile
make
./run.sh
```
Waveform option:
```console
./run.sh --wave=waveform.ghw
```
......@@ -7,18 +7,7 @@ as verification methodology and GHDL is the simulator.
NOTE: You can change the simulation time by changing the NOW variable in the stimulus
The testing process is the following:
- Randomized inputs are given to the Design Under Test in order to check the functionality of the RTL core.
- FSM coverage. Legal and ilegal states are printed in the end.
- Randomized inputs are given to the Design Under Test
- FSM coverage is printed in the end.
- Assertions are used to check the functionality of the AXI4-Full and AXI4-Lite protocols
How to run the test:
1) For this test you need to install HDLMAKE, GHDL and OSVVM(2020.05+)
2) Add in usr/local/lib/ghdl/vendors/config.sh the path of the OSVVM
3) Compile OSVVM by running the script: `/usr/local/lib/ghdl/vendors/compile-osvvm --all`
4) run hdlmake makefile
5) run make
6) run ./run.sh
7) (Optional) add in the run.sh --wave=waveform.ghw to see waveform with gtkwave
8) See the results of the test
......@@ -2,26 +2,12 @@ This is a testbench in order to verify the behavior of the axi4lite to axi4full
bridge. Master is the axi4lite and the slave is axi4full.
For the development of the RTL core and the testbench, the documentation that
taken into account is : "AMBA AXI and ACE Protocol Specification". OSVVM used
as verification methodology and GHDL is the simulator.
taken into account is : "AMBA AXI and ACE Protocol Specification".
NOTE: You can change the simulation time by changing the NOW variable in the stimulus
Also, add in the *run.sh* the --wave=waveform.ghw option in order to generate waveform
file through GHDL simulator.
The testing process is the following:
- Randomized values are given to the Design Under Test input signals.
- FSM coverage. Legal and ilegal states are printed in the end of the simulation.
- Randomized inputs are given to the Design Under Test
- FSM coverage is printed in the end.
- Assertions are used to check the functionality of the AXI4-Full and AXI4-Lite protocols
How to run the test:
1) For this test you need to install HDLMAKE, GHDL and OSVVM(2020.05+)
2) Add in usr/local/lib/ghdl/vendors/config.sh the path of the OSVVM
3) Compile OSVVM by running the script: `/usr/local/lib/ghdl/vendors/compile-osvvm --all`
4) run hdlmake makefile
5) run make
6) run ./run.sh
7) (Optional) add in the run.sh --wave=waveform.ghw to see waveform with gtkwave
8) See the results of the test
This is the testbench for the axi4lite to wishbone bridge (axi4lite_wb_bridge).
GHDL used as a simulator alongside with OSVVM methodology. The testing process is:
In this core, the Master is AXI4 Lite and Slave is Wishbone.
For the development of the RTL core and the testbench, the documentation that
taken into account is : "AMBA AXI and ACE Protocol Specification".
NOTE: You can change the simulation time by changing the NOW variable in the stimulus
The testing process is the following:
- Randomized inputs are given to the Design Under Test, both for Master and Slave
- FSM coverage is printed in the end.
- Assertions are used to check the functionality of the AXI4-Lite and Wishbone protocols
- Randomized inputs are given to the Design Under Test in order to check the
functionality of the RTL core.
- FSM coverage. Legal and ilegal state changes are printed in the end.
- Assertions are used to check that the protocols of AXI-Lite and Wishbone
behave as it is expected.
How to run the test:
1) For this test you need to install HDLMAKE, GHDL and OSVVM(2020.05+)
2) Add in `usr/local/lib/ghdl/vendors/config.sh` the path of the OSVVM
3) Compile OSVVM by running the script:
/usr/local/lib/ghdl/vendors/compile-osvvm --all
4) run `hdlmake makefile`
5) run `make`
6) run `./run.sh`
7) (Optional) add in the `run.sh` --wave=waveform.ghw to see waveform
with gtkwave
8) See the results of the test
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment