This page is a concise developer guide for the --genus mode flow.
What Genus mode is for
Use --genus when you want full workflow control from parsed netlist stages through metrics and TPI generation.
Typical scope:
- parse and convert intermediate netlist formats
- DAG construction and reconvergence analysis
- COP/SCOAP metric generation
- test-point insertion with explicit knobs
Core command flow
Verilog -> parse -> convert -> dag -> cop/scoap -> tpi -> enhanced Verilog
In many paths, Verilog input can trigger auto-pipeline behavior for analysis commands.
Common commands
python3 opentest --genus help
python3 opentest --genus parse -i designs/priority_enc.v
python3 opentest --genus dag -i <netlist.json>
python3 opentest --genus scoap -i <design.v or parsed.txt>
python3 opentest --genus cop -i <design.v or parsed.txt> -j
python3 opentest --genus tpi -i <netlist.json> -m <metrics.json> -t 50 -n 10 -v
Developer checkpoints
- validate netlist input schema before TPI (dict-based input pin mapping)
- keep reconvergence algorithm selection explicit while debugging
- verify output paths through project utilities, not hardcoded directories
- check both metric quality and generated Verilog correctness
Output and reports
- metrics typically land in
data/results/ - TPI netlists are written to
data/TPI/(or selected output path) - verbose logs and reports are written under
results/log/andresults/reports/
Common pitfalls
- mode mismatch (
--genuscommand with Yosys-only JSON assumptions) - parsed format mismatch for TPI inputs
- interpreting old/generated artifacts as source-of-truth inputs