Repository navigation
Conversation
Allow the existing default-via alignment step on lower layers used by pin access. Keep the routing ceiling, generation switch and missing-default behavior unchanged. Cover aligned landing geometry, unchanged routing bounds and skipped-generation cases with native parser tests. Signed-off-by: Philippe Sauter <phsauter@iis.ee.ethz.ch>
There was a problem hiding this comment.
Code Review
This pull request modifies the default via initialization logic in io::Parser::initDefaultVias to check for a non-null default via definition on the layer instead of comparing the layer number against the bottom routing layer. It also introduces a new set of unit tests in parserTest.cpp to validate default via generation and retention behavior under various configurations. The feedback suggests calling the base class Fixture::SetUp() within the overridden SetUp() method of the new test fixture to ensure proper initialization.
| void SetUp() override | ||
| { | ||
| auto tech = design->getTech(); |
There was a problem hiding this comment.
It is a best practice to call the base class SetUp() method when overriding it in a test fixture. This ensures that any common initialization performed by Fixture::SetUp() is executed properly.
| void SetUp() override | |
| { | |
| auto tech = design->getTech(); | |
| void SetUp() override | |
| { | |
| Fixture::SetUp(); | |
| auto tech = design->getTech(); |
Summary
I have some cases where we have coloring on the lowest two metals and pins can be in both but we really only want to route on the third and above to avoid coloring.
Currently OpenROAD skips via alignment on the layers below the first routing layer, eg metal layer 2 in my case. This enables it without enabling general routing on those layers.
Type of Change
Impact
Improved pin access when going through one intermediate non-routing layer.
Verification
./etc/Build.sh).