Logical Equivalence Checking with Yosys EQY #287
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed during the review for #284 (add X-IF 1.0) for the need a Logical Equivalence Checking (LEC) to evaluate RTL changes on the CVE2, I added the choice to use the Yosys EQY on the Sequential Logical Equivalence Checking script
scripts/sec/sec.sh
.To test it, one should first obtain Yosys EQY and add it to the PATH. I got mine from a prebuilt release of the Yosys HQ's OSS CAD Suite and activated its environment with
source .../oss-cad-suite/environment
.Then, to run the LEC scrip, execute from the repo's root directory
cd scripts/sec && ./sec.sh -t yosys
. If the design is equivalent, it will print the messageSEC: The DESIGN IS SEQUENTIAL EQUIVALENT
.Some notes on it:
read_verilog -sv
was not enough during my tests.XInterface
to be 1 to be enabled.I see points 2 and 3 as debatable if we plan to make it an automated test for future RTL pull requests