Comments (2)
Hi there, and thanks for the question.
Many of the tests work in essentially the same way:
- We generate a constrained random program using riscv-dv.
- We execute the program with an instruction set simulator (Spike), spitting out a log of the instructions and state changes.
- We execute the program in an RTL simulation, spitting out equivalent logs.
- We compare the logs from the two executions and check that they match.
Some specific tests / configurations are defined in testlist.yaml
. For example, it contains:
- test: riscv_arithmetic_basic_test
description: >
Arithmetic instruction test, no load/store/branch instructions
gen_opts: >
+instr_cnt=10000
+num_of_sub_program=0
+no_fence=1
+no_data_page=1
+no_branch_jump=1
+boot_mode=m
iterations: 10
gen_test: riscv_instr_base_test
rtl_test: core_ibex_base_test
There are some more details about how this all works in the manual. See the file verification.rst
. You can find it rendered online here: https://ibex-core.readthedocs.io/en/latest/03_reference/verification.html
from ibex.
May i say that when using make TEST=riscv_arithmetic_basic_test
, in riscv-dv is actually using the three uvm files below to generate tmp *.s file then compiled to binary, next to execute ?
inst_overrides = [
'riscv_asm_program_gen',
'ibex_asm_program_gen',
'uvm_test_top.asm_gen'
]
...
sim_opts_dict = {
'uvm_set_inst_override': ','.join(inst_overrides),
...
}
(Code from dv/uvm/core_ibex/scripts/run_instr_gen.py line 156 to 175.)
from ibex.
Related Issues (20)
- Upgrade Verilator dependency
- docs/readthedocs.org:ibex-core CI step keeps failing HOT 1
- Upgrade verilator HOT 1
- Endless illegal instructions when running elf executables HOT 5
- ERROR: Conflicting requirements:o Ibex HOT 1
- Replacement of Xcelium HOT 4
- Error in Simple system VCS+Verdi simulation, Failed to find the Verdi database HOT 3
- Security vulnerability: Ibex leaks data when multiplication is aborted HOT 2
- Floating-point support (software) HOT 1
- File not found HOT 1
- File not found
- Installation Issue: FuseSoC build doesn't work HOT 2
- Exception occuring when calling cryptographic function
- Compilation issue in ibex bring-up
- Is it possible to support Verilator as the RTL simulator for cosim?
- x0 is not zero HOT 1
- Trap Return with activated Branch Prediction results in an unintended instruction retire
- Report a bug in Ibex
- Spike not generating csrrw and compressed instructions
- Incorrect stalling behaviour for configurations with writeback stage but without branch target ALU results in an incorrect branch target HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ibex.