WBA testsuite is an example of integration of the processor core in a complete environment. The intent of this flow is to create programs to stress the IP's core with a white-box strategy, very driven by the architecture.
For more information about the bash front-end flow:
./run.sh -h
Injects a set of alternating LUI / AUIPC / aritmetic instructions to ensure the control unit correctly handles this kind of situation. All these instructions are executed in one cycle and shouldn't introduce any wait cycles between each others.
Injects a set of alternating LUI / AUIPC / LOAD /STORE aritmetic instructions to ensure the control unit correctly handles this kind of situation.
While aritmetic instructions are completed in one cycle, LOAD and STORE can span over several cycles. This test will ensure incoming instructions between them will not be lost and so the control unit properly manages this situation.
Executes FENCE and FENCE.i between ALU and memfy instructions. The test is supposed for the moment harmless for FENCE because the processor doesn't support neither out-of-order or parallel executions.
Executes memory and arithmetic instructions break up by JAL and JALR instruction to ensure branching doesn't introduce failures.
Executes memory and arithmetic instructions break up by CSR accesses.
Stresses out outstanding requests management in Memfy module when issuing multiple read or write requests.
Checks instret, cycle and time are incremented accordingly the spec
Setup interrupt and checks the core manages EIRQ correctly.
Check multiply /division extension
Stresses out read / write with memfy and check collisions don't occur