Files
OpenROAD/test/orfs/gcd
Øyvind Harboe 8d87f8408f test: add idempotency test for gcd using orfs_sweep
Replace orfs_flow with orfs_sweep for the gcd test design, adding
an identical "b" variant alongside the existing "base". A new
check_same() macro diffs .odb and .sdc outputs from every stage
between the two variants to verify deterministic results.

fixes #2229

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
2026-03-24 23:47:44 +01:00
..
2025-04-23 09:34:31 +02:00

Summary

Simple GCD (greatest common denominator) core. This is an extremely small design mostly used to test the sanity of the flow.

Originally generated using PyMTL.

This design has about 250 cells.

Source

Re-used code derived from http://opencelerity.org/ project.

LEC tests

LEC tests exist for each of the ORFS stages as well as a self-test for the original source.

In terms of expectations for LEC tests, this is experimental and contributions are highly appreciated. As of writing, even for such a small test case as gcd, the running time is considerable and eqy has false positives reported to the eqy project.

$ cd test/orfs/gcd
$ bazelisk query :* | grep eqy | grep _test
Loading: 0 packages loaded
//test/orfs/gcd:gcd_eqy_cts_test
//test/orfs/gcd:gcd_eqy_final_test
//test/orfs/gcd:gcd_eqy_floorplan_test
//test/orfs/gcd:gcd_eqy_grt_test
//test/orfs/gcd:gcd_eqy_place_test
//test/orfs/gcd:gcd_eqy_route_test
//test/orfs/gcd:gcd_eqy_source_test
//test/orfs/gcd:gcd_eqy_synth_test
//test/orfs/gcd:gcd_eqy_tests

To run all the tests:

bazelisk test //test/orfs/gcd:gcd_eqy_tests --keep_going

Whittle test

The gcd_whittle_test is an integration test for etc/whittle.py, the delta-debugging tool that minimises .odb files. It reuses the floorplan .odb produced by the gcd flow and repeatedly runs global placement (global_placement -density 0.35 -skip_io) while whittle removes instances and nets until iteration 100 is no longer reached.

bazelisk test //test/orfs/gcd:gcd_whittle_test