Skip to content

tight designs asap7_cva6 ihp_i2c - #4471

Open
LucasYuki wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:update-metrics-lucas
Open

tight designs asap7_cva6 ihp_i2c#4471
LucasYuki wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:update-metrics-lucas

Conversation

@LucasYuki

Copy link
Copy Markdown
Contributor

Tight designs:

  • asap7_cva6: clk_period 1000 -> 900
  • ihp_i2c: clk_period 20 -> 10

Signed-off-by: LucasYuki <lucasyuki@yahoo.com.br>
@LucasYuki LucasYuki self-assigned this Aug 25, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request reduces the clock period for the CVA6 design on ASAP7 and the I2C GPIO expander design on IHP SG13G2, updating the corresponding baseline rules and metadata. The review feedback correctly identifies that reducing the clock period to 10.0 while keeping the clock waveform hardcoded to {0 10.0} results in an incorrect 100% duty cycle. It is recommended to dynamically scale the clock waveform based on the clock period variable to maintain a 50% duty cycle.


create_clock [get_ports clock] -name clock -period 20.0 -waveform {0 10.0}
create_clock -name vclk -period 20.0
create_clock [get_ports clock] -name clock -period $clk_period -waveform {0 10.0}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The clock waveform is hardcoded to {0 10.0}. Since the clock period $clk_period has been reduced to 10.0, this results in a 100% duty cycle (the clock is high for the entire period). To maintain a 50% duty cycle, the waveform should scale dynamically with the period.

create_clock [get_ports clock] -name clock -period $clk_period -waveform [list 0 [expr {$clk_period / 2.0}]]


set_ideal_network [get_pins sg13g2_IOPad_io_clock/p2c]
create_clock [get_pins sg13g2_IOPad_io_clock/p2c] -name clk_core -period 20.0 -waveform {0 10.0}
create_clock [get_pins sg13g2_IOPad_io_clock/p2c] -name clk_core -period $clk_period -waveform {0 10.0}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The clock waveform is hardcoded to {0 10.0}. Since the clock period $clk_period has been reduced to 10.0, this results in a 100% duty cycle (the clock is high for the entire period). To maintain a 50% duty cycle, the waveform should scale dynamically with the period.

create_clock [get_pins sg13g2_IOPad_io_clock/p2c] -name clk_core -period $clk_period -waveform [list 0 [expr {$clk_period / 2.0}]]

@openroad-ci

openroad-ci commented Aug 25, 2026

Copy link
Copy Markdown
Member

🔍 QoR check

Metrics reflect the PR merge build — i.e. what will land on the target branch. Advisory — results are log-only and do not affect build status. The authoritative QoR gate remains the local rules-file check.

Commit c7975c3 · Jenkins build #2 · Baseline: build

62 design(s) checked — 2 with regression(s), 0 without a comparable baseline.
Design Variant Verdict local vs inline passed / failed / missing
asap7/aes base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes-block base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes-mbff base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes_lvt base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/cva6 base ❌ fail ⚠️ MISMATCH 9 / 3 / 0
asap7/ethmac base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/ethmac_lvt base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/gcd-ccs base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/jpeg_lvt base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/mock-alu base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/mock-cpu base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/riscv32i-mock-sram base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/swerv_wrapper base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/uart base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/aes base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/aes-hybrid base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/uart-blocks base ✅ pass ✅ MATCH 25 / 0 / 0
gt2n/aes base ✅ pass ✅ MATCH 25 / 0 / 0
gt2n/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
gt2n/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/aes base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/i2c-gpio-expander base ❌ fail ⚠️ MISMATCH 19 / 6 / 0
ihp-sg13g2/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/spi base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/aes base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/ariane133 base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/ariane136 base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/black_parrot base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/bp_be_top base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/bp_fe_top base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/bp_multi_top base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/cva6 base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/dynamic_node base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/mempool_group base ✅ pass ✅ MATCH 12 / 0 / 0
nangate45/swerv base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/swerv_wrapper base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/tinyRocket base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/aes base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/chameleon base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/microwatt base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/aes base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
❌ asap7/cva6 base — 3 failing metric(s)
Metric target base delta limit band
cts__timing__setup__tns -1085.67 0 -200.0 PeriodPadding 20%
finish__timing__setup__tns -1112.21 0 -200.0 PeriodPadding 20%
globalroute__timing__setup__tns -1478.15 0 -200.0 PeriodPadding 20%
❌ ihp-sg13g2/i2c-gpio-expander base — 6 failing metric(s)
Metric target base delta limit band
cts__timing__setup__tns -5.72223 0 -4.0 PeriodPadding 20%
cts__timing__setup__ws -2.05803 7.90724 -126.02715991926387% -1.0 PeriodPadding 5.0%
finish__timing__setup__tns -5.52067 0 -4.0 PeriodPadding 20%
finish__timing__setup__ws -2.03171 7.93861 -125.59276749960006% -1.0 PeriodPadding 5.0%
globalroute__timing__setup__tns -5.74093 0 -4.0 PeriodPadding 20%
globalroute__timing__setup__ws -2.05577 7.91166 -125.98405391536036% -1.0 PeriodPadding 5.0%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants