EQY Output Directory Format

Main log and status files

The EQY terminal output is also written to the file logfile.txt in the output directory.

Further, when the EQY run successfully proved equivalence the entire design, a file PASS is created in the output directory, and a file FAIL is generated otherwise.

Gate and gold designs

The file gold.il contains the compiled gold design. The log for compiling it is written to gold.log and the yosys script compiling it is gold.ys. Finally, the list of gold entities going into the matching algorithm is stored in gold.ids.

Similarly there are gate.il, gate.log, gate.ys, and gate.ids for the gate design.

Combined gold and gate designs

EQY stores a “combined” gold and gate design, that contains all modules from the gold design, their names prefixed with gold_, and all modules from the gate design, using the gate_ name prefix.

The combined design is stored in the output file combined.il. The script that performs the task of combining the gold and gate designs is stored in combine.ys, and the log messages generated by that script are stored in combine.log.

The combine operation partially flattens the gold and gate designs, so that the hierarchies of both designs match, thus getting to a state of matching module names in both design hierarchies.

Matched gold and gate names

The list of matched gold and gate entity names is stored in the file matched.ids. Each line of this file contains a module name, followed by a gold net name, followed by a gate net name.

Design partition files

The file partition.ids contains partitioning rules generated from the [collect ...] and [partition ...] configuration sections. These rules guide the partition generation algorithm. The following statements are valid in partition.ids files.

solo <module> <net>
group <module> <net> <net>
bind <module> <net>
join <module> <net>

name <module> <net> <name>
merge <module> <net> <net>
path <module> <net> <net>
sticky <module> <net>
final <module> <net>

amend <module> <net>
amend <module> <net> <net>

The file partition.list contains a list of all generated design partitions, and the primary output bits and primary input bits of each partition.

The file partition.ys contains the script running the partitioning algorithm, and the file partition.log contains the log output from running that script.

Finally, the partitions/ directory contains the generated partitions, one file for each partition, each file containing a gold_ and a gate_ module.

Strategies input and output files

The directory strategies/ contains a sub-directory for each partition, and a sub-sub-directory for each strategy applied to that partition.

Each of those sub-sub-directories contains a run.sh script that will run the strategy, and a run.log script with the log output from running that script.

Lastly, a file status is generated when the strategy is being run, and the first word in that file is PASS when the strategy proved the partition to be equivalent successfully. The other possible status values for a strategy are UNKNOWN, FAIL, and ERROR.

The file strategies.mk is a Makefile that runs all the strategies within the strategies/ directory.