Update Breker documentation

This commit is contained in:
Jordan Carlin 2024-12-19 14:09:42 -08:00
parent 7c297af0eb
commit 73e90847d9
No known key found for this signature in database
8 changed files with 34 additions and 2 deletions

View File

@ -39,6 +39,7 @@ coverage:
cvw-arch-verif: cvw-arch-verif:
$(MAKE) -C ${WALLY}/addins/cvw-arch-verif $(MAKE) -C ${WALLY}/addins/cvw-arch-verif
# Requires a license for the Breker tool. See tests/breker/README.md for details
breker: breker:
$(MAKE) -C ${WALLY}/testbench/trek_files $(MAKE) -C ${WALLY}/testbench/trek_files
$(MAKE) -C ${WALLY}/tests/breker $(MAKE) -C ${WALLY}/tests/breker

View File

@ -401,7 +401,7 @@ parser.add_argument("--nightly", help="Run large nightly regression", action="st
parser.add_argument("--buildroot", help="Include Buildroot Linux boot test (takes many hours, done along with --nightly)", action="store_true") parser.add_argument("--buildroot", help="Include Buildroot Linux boot test (takes many hours, done along with --nightly)", action="store_true")
parser.add_argument("--testfloat", help="Include Testfloat floating-point unit tests", action="store_true") parser.add_argument("--testfloat", help="Include Testfloat floating-point unit tests", action="store_true")
parser.add_argument("--fp", help="Include floating-point tests in coverage (slower runtime)", action="store_true") # Currently not used parser.add_argument("--fp", help="Include floating-point tests in coverage (slower runtime)", action="store_true") # Currently not used
parser.add_argument("--breker", help="Run Breker tests", action="store_true") parser.add_argument("--breker", help="Run Breker tests", action="store_true") # Requires a license for the breker tool. See tests/breker/README.md for details
parser.add_argument("--dryrun", help="Print commands invoked to console without running regression", action="store_true") parser.add_argument("--dryrun", help="Print commands invoked to console without running regression", action="store_true")
args = parser.parse_args() args = parser.parse_args()

View File

@ -110,7 +110,7 @@ def prepSim(args, ElfFile):
if args.lockstep or args.lockstepverbose or args.fcov: if args.lockstep or args.lockstepverbose or args.fcov:
prefix = lockstepSetup(args) prefix = lockstepSetup(args)
defineList.append("+define+USE_IMPERAS_DV") defineList.append("+define+USE_IMPERAS_DV")
if args.config == "breker": if args.config == "breker": # Requires a license for the breker tool. See tests/breker/README.md for details
ElfFileNoExtension = os.path.splitext(ElfFile)[0] ElfFileNoExtension = os.path.splitext(ElfFile)[0]
flagsList.append("--breker") flagsList.append("--breker")
defineList.append("+define+USE_TREK_DV") defineList.append("+define+USE_TREK_DV")

View File

@ -1432,6 +1432,8 @@ UART_SUPPORTED 0
PLIC_SUPPORTED 0 PLIC_SUPPORTED 0
SPI_SUPPORTED 0 SPI_SUPPORTED 0
# Breker tests require a different memory configuration
# See tests/breker/README.md for details on the testsuite
derive breker rv64gc derive breker rv64gc
EXT_MEM_SUPPORTED 1 EXT_MEM_SUPPORTED 1
EXT_MEM_BASE 64'h90000000 EXT_MEM_BASE 64'h90000000

View File

@ -130,6 +130,7 @@ if {[lcheck lst "--lockstep"] || $FunctCoverage == 1} {
} }
# if --breker found set flag and remove from list # if --breker found set flag and remove from list
# Requires a license for the breker tool. See tests/breker/README.md for details
if {[lcheck lst "--breker"]} { if {[lcheck lst "--breker"]} {
set breker 1 set breker 1
set BREKER_HOME $::env(BREKER_HOME) set BREKER_HOME $::env(BREKER_HOME)

View File

@ -46,6 +46,7 @@ module testbench;
parameter RVVI_SYNTH_SUPPORTED=0; parameter RVVI_SYNTH_SUPPORTED=0;
parameter MAKE_VCD=0; parameter MAKE_VCD=0;
// TREK Requires a license for the Breker tool. See tests/breker/README.md for details
`ifdef USE_TREK_DV `ifdef USE_TREK_DV
event trek_start; event trek_start;
always @(testbench.trek_start) begin always @(testbench.trek_start) begin

View File

@ -0,0 +1,9 @@
Jordan Carlin, jcarlin@hmc.edu, December 2024
# Breker Trek Tests Support Files for CVW
[Breker's Trek Test Suite](https://brekersystems.com/products/trek-suite/) is a proprietary set of tests that require a license to use (this license is not generally available to noncommercial users).
This directory contains the support files necessary to run Breker's Trek Tests on CVW. For additional details on the tests see [`$WALLY/tests/breker/README.md`](../../tests/breker/README.md)
To generate the Breker support files (with a license), run `make` in the `testbench/trek_files` directory (this one). Before running, make sure to set `$BREKER_HOME` in your system's `site-setup.sh` file. This Makefile only needs to be run once.

18
tests/breker/README.md Normal file
View File

@ -0,0 +1,18 @@
Jordan Carlin, jcarlin@hmc.edu, December 2024
# Breker Tests for CVW
[Breker's Trek Test Suite](https://brekersystems.com/products/trek-suite/) is a proprietary set of tests that require a license to use (this license is not generally available to noncommercial users).
To generate the Breker tests (with a license), run `make` in both the `tests/breker` and `testbench/trek_files` directories. Alternatively, running `make breker` from the top-level `$WALLY` directory will run both of these. Before running, make sure to set `$BREKER_HOME` in your system's `site-setup.sh` file. The `testbench/trek_files` Makefile only needs to be run once, but the tests that are generated can be different each time so rerunning the `tests/breker` Makefile is worthwhile.
This will generate a testsuite for each of the constraint yaml files in the `constraints` directory. These generated tests are produced in the `tests/breker/work` directory. To run a single test use `wsim` to run the elf. The `breker` configuration must be used. For example,
```bash
$ wsim breker $WALLY/tests/breker/riscv/riscv.elf
```
To run all of the generated Breker tests use
```bash
$ regression-wally --breker
```