- 
                Notifications
    You must be signed in to change notification settings 
- Fork 390
ihp-sg13g2: Sync PDK #3562
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
ihp-sg13g2: Sync PDK #3562
Conversation
         dnltz
  
      
      
      commented
      
            dnltz
  
      
      
      commented
        Oct 9, 2025 
      
    
  
- Sync the PDK with the latest version from the PDK.
- Include the sg13g2.map file to the update script.
- Change the metal routing direction to match changes made in the PDK.
| export IO_PLACER_H ?= Metal2 | ||
| export IO_PLACER_V ?= Metal3 | ||
| export IO_PLACER_V ?= Metal2 | ||
| export IO_PLACER_H ?= Metal3 | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes are important to match the changed routing direction.
| There are lot of design failures. Please say more about the layer direction changes. I suspect the pdn setup will also need adjusting. | 
| 
 @maliberty Yes, I'm working on this issue right now. I opened this PR to run all designs in the CI environment (making sure my OpenROAD set up is not broken) and in case I need to open an issue, I can link this PR. Do you have a "Do not merge" label? and sorry for misusing the PR flow :) | 
| Usually people just put that in the title temporarily, eg [DO NOT MERGE] | 
310f0ea    to
    98adbe3      
    Compare
  
    | }, | ||
| "detailedroute__route__drc_errors": { | ||
| "value": 0, | ||
| "value": 4, | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@maliberty I had to move the PDN from M5+TM1 to TM1+TM2. Since IHP changed the routing direction, M5 had the same orientation as M1 and they can't be connected.
Some designs now have route DRC errors. I assume they need to be fixed, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think so as it routed cleanly before. What do they look like?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
98adbe3    to
    225af32      
    Compare
  
    Silences a lot of useless warnings. Signed-off-by: Matt Liberty <[email protected]>
Signed-off-by: Matt Liberty <[email protected]>
Signed-off-by: Augusto Berndt <[email protected]>
Signed-off-by: Augusto Berndt <[email protected]>
===================================================== make update_ok for aes-block (asap7)... ===================================================== designs/asap7/aes-block/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__design__instance__count__hold_buffer | 1131 | 1398 | Failing | | cts__timing__setup__ws | -131.0 | -160.0 | Failing | | cts__timing__setup__tns | -8400.0 | -13300.0 | Failing | | globalroute__timing__setup__tns | -8330.0 | -10500.0 | Failing | | detailedroute__route__wirelength | 56217 | 55890 | Tighten | | finish__timing__setup__ws | -96.9 | -127.0 | Failing | | finish__timing__setup__tns | -4570.0 | -8360.0 | Failing | ===================================================== make update_ok for aes-mbff (asap7)... ===================================================== designs/asap7/aes-mbff/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__ws | -52.6 | -40.1 | Tighten | | cts__timing__setup__tns | -865.0 | -749.0 | Tighten | | globalroute__timing__setup__ws | -55.5 | -51.5 | Tighten | | globalroute__timing__setup__tns | -2340.0 | -2430.0 | Failing | ===================================================== make update_ok for riscv32i (asap7)... ===================================================== designs/asap7/riscv32i/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | globalroute__timing__setup__tns | -316.0 | -17300.0 | Failing | | finish__timing__setup__ws | -66.3 | -119.0 | Failing | | finish__timing__setup__tns | -239.0 | -25000.0 | Failing | ===================================================== make update_ok for riscv32i-mock-sram (asap7)... ===================================================== designs/asap7/riscv32i-mock-sram/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | placeopt__design__instance__area | 2190 | 2176 | Tighten | | placeopt__design__instance__count__stdcell | 11561 | 11437 | Tighten | | cts__design__instance__count__setup_buffer | 1005 | 994 | Tighten | | cts__design__instance__count__hold_buffer | 1005 | 994 | Tighten | | cts__timing__setup__tns | -768.0 | -577.0 | Tighten | | detailedroute__route__wirelength | 75124 | 73967 | Tighten | | finish__timing__setup__tns | -417.0 | -1870.0 | Failing | | finish__design__instance__area | 2290 | 2277 | Tighten | ===================================================== make update_ok for uart (asap7)... ===================================================== designs/asap7/uart/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | placeopt__design__instance__area | 95 | 110 | Failing | | cts__timing__setup__tns | -594.0 | -556.0 | Tighten | | globalroute__timing__setup__tns | -1100.0 | -1170.0 | Failing | | finish__timing__setup__tns | -575.0 | -658.0 | Failing | ===================================================== make update_ok for ariane136 (nangate45)... ===================================================== designs/nangate45/ariane136/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | placeopt__design__instance__area | 853377 | 853182 | Tighten | | cts__timing__hold__tns | -3.88 | -5.49 | Failing | | detailedroute__timing__hold__ws | -0.334 | -0.326 | Tighten | | detailedroute__timing__hold__tns | -3.69 | -1.49 | Tighten | ===================================================== make update_ok for bp_be_top (nangate45)... ===================================================== designs/nangate45/bp_be_top/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__ws | -0.344 | -0.333 | Tighten | | globalroute__timing__setup__ws | -0.344 | -0.335 | Tighten | | globalroute__timing__setup__tns | -20.9 | -19.8 | Tighten | | detailedroute__route__wirelength | 2571693 | 2566212 | Tighten | | finish__timing__setup__tns | -27.4 | -28.7 | Failing | ===================================================== make update_ok for bp_multi_top (nangate45)... ===================================================== designs/nangate45/bp_multi_top/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__flow__warnings__count:RSZ-2021 | 90 | 102 | Failing | | detailedroute__route__wirelength | 4187726 | 4180077 | Tighten | | detailedroute__timing__setup__ws | -11.1 | -6.13 | Tighten | | detailedroute__timing__setup__tns | -785.0 | -607.0 | Tighten | | detailedroute__timing__hold__ws | -0.0646 | -1.48 | Failing | | detailedroute__timing__hold__tns | -5.05 | -105.0 | Failing | ===================================================== make update_ok for ibex (nangate45)... ===================================================== designs/nangate45/ibex/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__ws | -0.134 | -0.12 | Tighten | | cts__timing__setup__tns | -0.503 | -0.45 | Tighten | | globalroute__timing__setup__ws | -0.122 | -0.118 | Tighten | | globalroute__timing__setup__tns | -0.61 | -0.456 | Tighten | | finish__timing__setup__tns | -1.46 | -2.93 | Failing | ===================================================== make update_ok for swerv (nangate45)... ===================================================== designs/nangate45/swerv/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__tns | -41.7 | -48.7 | Failing | | globalroute__timing__setup__tns | -56.6 | -62.2 | Failing | | detailedroute__timing__hold__ws | -0.108 | -0.107 | Tighten | | detailedroute__timing__hold__tns | -3.02 | -0.856 | Tighten | | finish__timing__setup__tns | -60.4 | -72.3 | Failing | ===================================================== make update_ok for swerv_wrapper (nangate45)... ===================================================== designs/nangate45/swerv_wrapper/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__tns | -14.2 | -4.31 | Tighten | | globalroute__timing__setup__tns | -33.8 | -9.52 | Tighten | | finish__timing__setup__tns | -75.8 | -88.0 | Failing | | finish__timing__hold__tns | -1.33 | -7.63 | Failing | ===================================================== make update_ok for tinyRocket (nangate45)... ===================================================== designs/nangate45/tinyRocket/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | placeopt__design__instance__area | 61264 | 61249 | Tighten | | cts__timing__setup__tns | -15.0 | -11.3 | Tighten | | globalroute__timing__setup__tns | -20.1 | -24.3 | Failing | | detailedroute__timing__setup__ws | -0.0879 | -0.0853 | Tighten | | finish__timing__setup__tns | -30.4 | -27.5 | Tighten | ===================================================== make update_ok for chameleon (sky130hd)... ===================================================== designs/sky130hd/chameleon/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__flow__warnings__count:GRT-0243 | 2 | 1 | Tighten | | globalroute__flow__warnings__count:GRT-0243 | 1 | 2 | Failing | | globalroute__antenna_diodes_count | 110 | 232 | Failing | | detailedroute__route__wirelength | 788921 | 784325 | Tighten | | detailedroute__timing__hold__ws | -0.551 | -0.35 | Tighten | | detailedroute__timing__hold__tns | -3.0 | -1.4 | Tighten | ===================================================== make update_ok for ibex (sky130hd)... ===================================================== designs/sky130hd/ibex/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__flow__warnings__count:DRT-0120 | 12 | 24 | Failing | | globalroute__flow__warnings__count:DRT-0120 | 4 | 6 | Failing | | cts__timing__setup__ws | -0.849 | -0.683 | Tighten | | cts__timing__setup__tns | -8.15 | -3.56 | Tighten | | globalroute__timing__setup__tns | -7.09 | -9.3 | Failing | | finish__timing__setup__ws | -0.806 | -0.768 | Tighten | ===================================================== make update_ok for microwatt (sky130hd)... ===================================================== designs/sky130hd/microwatt/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__flow__warnings__count:GRT-0243 | 3 | 2 | Tighten | | cts__timing__setup__tns | -371.0 | -405.0 | Failing | | globalroute__antenna_diodes_count | 2942 | 2548 | Tighten | | globalroute__timing__setup__tns | -415.0 | -420.0 | Failing | | globalroute__timing__hold__ws | -0.752 | -0.75 | Tighten | | detailedroute__antenna__violating__nets | 4 | 0 | Tighten | | detailedroute__antenna_diodes_count | 1980 | 1274 | Tighten | | detailedroute__timing__setup__tns | -96.1 | -121.0 | Failing | | detailedroute__timing__hold__tns | -539.0 | -428.0 | Tighten | | finish__timing__setup__tns | -413.0 | -399.0 | Tighten | ===================================================== make update_ok for riscv32i (sky130hd)... ===================================================== designs/sky130hd/riscv32i/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__tns | -81.1 | -47.5 | Tighten | | globalroute__timing__setup__tns | -109.0 | -131.0 | Failing | | finish__timing__setup__tns | -48.2 | -61.0 | Failing | ===================================================== make update_ok for aes (sky130hs)... ===================================================== designs/sky130hs/aes/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__ws | -0.157 | -0.357 | Failing | | globalroute__timing__setup__ws | -0.375 | -0.585 | Failing | | globalroute__timing__setup__tns | -8.69 | -5.4 | Tighten | | finish__timing__setup__tns | -2.45 | -1.34 | Tighten | ===================================================== make update_ok for jpeg (sky130hs)... ===================================================== designs/sky130hs/jpeg/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__flow__warnings__count:DRT-0120 | 78 | 36 | Tighten | | globalroute__flow__warnings__count:DRT-0120 | 13 | 9 | Tighten | | globalroute__antenna_diodes_count | 212 | 332 | Failing | | detailedroute__antenna__violating__nets | 3 | 0 | Tighten | ===================================================== make update_ok for riscv32i (sky130hs)... ===================================================== designs/sky130hs/riscv32i/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__tns | -13.5 | -25.6 | Failing | | globalroute__timing__setup__tns | -138.0 | -33.7 | Tighten | | finish__timing__setup__tns | -43.6 | -10.3 | Tighten | Signed-off-by: Augusto Berndt <[email protected]>
===================================================== make update_ok for bp_single (gf12)... ===================================================== designs/gf12/bp_single/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__flow__warnings__count:DRT-0120 | 8 | 7 | Tighten | | flow__warnings__count:PDN-0110 | 771 | 1001 | Failing | | globalroute__flow__warnings__count:DRT-0120 | 8 | 7 | Tighten | | cts__timing__setup__tns | -1640.0 | -2620.0 | Failing | | globalroute__timing__hold__ws | -135.0 | -117.0 | Tighten | | globalroute__timing__hold__tns | -833.0 | -569.0 | Tighten | | detailedroute__timing__hold__ws | -130.0 | -120.0 | Tighten | | detailedroute__timing__hold__tns | -3910.0 | -1310.0 | Tighten | | finish__timing__setup__ws | -116.0 | -222.0 | Failing | ===================================================== make update_ok for ca53 (gf12)... ===================================================== designs/gf12/ca53/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | globalroute__timing__hold__tns | -856.0 | -1410.0 | Failing | | detailedroute__timing__hold__ws | -265.0 | -241.0 | Tighten | | detailedroute__timing__hold__tns | -114000.0 | -102000.0 | Tighten | | finish__timing__hold__tns | -5150.0 | -4850.0 | Tighten | ===================================================== make update_ok for ibex (gf12)... ===================================================== designs/gf12/ibex/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__timing__setup__ws | -51.0 | -114.0 | Failing | | cts__timing__setup__tns | -204.0 | -1310.0 | Failing | | globalroute__timing__setup__ws | -78.5 | -66.4 | Tighten | | globalroute__timing__setup__tns | -3890.0 | -271.0 | Tighten | ===================================================== make update_ok for hercules_idecode (rapidus2hp)... ===================================================== designs/rapidus2hp/hercules_idecode/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | detailedplace__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | detailedroute__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | finish__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | floorplan__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | globalplace__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | globalroute__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | placeopt__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | placeopt__design__instance__area | 12567 | 12565 | Tighten | | cts__timing__setup__ws | -231.708 | -261.0 | Failing | | cts__timing__setup__tns | -795000.0 | -1110000.0 | Failing | | globalroute__timing__setup__ws | -308.0 | -227.0 | Tighten | | globalroute__timing__setup__tns | -1300000.0 | -564000.0 | Tighten | | finish__timing__setup__ws | -308.0 | -227.0 | Tighten | | finish__timing__setup__tns | -1300000.0 | -564000.0 | Tighten | | finish__design__instance__area | 12842 | 12834 | Tighten | ===================================================== make update_ok for hercules_is_int (rapidus2hp)... ===================================================== designs/rapidus2hp/hercules_is_int/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | cts__flow__warnings__count:RSZ-0062 | 2 | 1 | Tighten | | cts__flow__warnings__count:STA-0122 | 40 | 27 | Tighten | | cts__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | detailedplace__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | detailedroute__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | finish__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | floorplan__flow__warnings__count:EST-0027 | 2 | 1 | Tighten | | floorplan__flow__warnings__count:IFP-0028 | 2 | 1 | Tighten | | floorplan__flow__warnings__count:ODB-0256 | 1502 | 1001 | Tighten | | floorplan__flow__warnings__count:ODB-0279 | 1502 | 1001 | Tighten | | floorplan__flow__warnings__count:ODB-0280 | 1502 | 1001 | Tighten | | floorplan__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | globalplace__flow__warnings__count:GPL-0998 | 2 | 1 | Tighten | | globalplace__flow__warnings__count:GPL-0999 | 2 | 1 | Tighten | | globalplace__flow__warnings__count:STA-0122 | 40 | 27 | Tighten | | globalplace__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | globalroute__flow__warnings__count:DRT-0240 | 2 | 1 | Tighten | | globalroute__flow__warnings__count:DRT-0263 | 10 | 7 | Tighten | | globalroute__flow__warnings__count:DRT-0349 | 15 | 10 | Tighten | | globalroute__flow__warnings__count:GRT-0246 | 2 | 1 | Tighten | | globalroute__flow__warnings__count:RSZ-0062 | 2 | 1 | Tighten | | globalroute__flow__warnings__count:STA-0122 | 40 | 27 | Tighten | | globalroute__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | placeopt__flow__warnings__count:STA-0122 | 40 | 27 | Tighten | | placeopt__flow__warnings__count:STA-1257 | 1502 | 1001 | Tighten | | cts__timing__setup__ws | -354.0 | -344.0 | Tighten | | cts__timing__setup__tns | -2761572.0 | -2480000.0 | Tighten | | globalroute__timing__setup__ws | -451.0 | -343.0 | Tighten | | globalroute__timing__setup__tns | -3740000.0 | -2040000.0 | Tighten | | globalroute__timing__hold__ws | -12.5 | -58.4 | Failing | | globalroute__timing__hold__tns | -50.0 | -1810.0 | Failing | | finish__timing__setup__ws | -451.0 | -343.0 | Tighten | | finish__timing__setup__tns | -3740000.0 | -2040000.0 | Tighten | | finish__timing__hold__ws | -12.5 | -58.4 | Failing | | finish__timing__hold__tns | -50.0 | -1810.0 | Failing | Signed-off-by: Augusto Berndt <[email protected]>
Signed-off-by: Augusto Berndt <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
Also sync the map file for SG13G2. Signed-off-by: Daniel Schultz <[email protected]>
The routing direction for all Metal layers recently changed the in the SG13G2 PDK. Update the config file to match with the latest tech file. Signed-off-by: Daniel Schultz <[email protected]>
Use sg13g2_udpate.py to sync with the latest changes from the main branch. Signed-off-by: Daniel Schultz <[email protected]>
Move Power Delivery Network to TopMetal1 and 2. Since IHP changed the orientation of all metal directions, Metal5 and TM1 can't be used anymore. Signed-off-by: Daniel Schultz <[email protected]>
Since the routing direction changed, pins at the macro edge and power ring vias might be too close to each other. Increase the core margin by 1um to prevent this issue. Signed-off-by: Daniel Schultz <[email protected]>
Move Power Delivery Network to TopMetal1 and 2. Since IHP changed the orientation of all metal directions, Metal5 and TM1 can't be used anymore. Use Metal4 and 5 for the PDN inside macro blocks. Signed-off-by: Daniel Schultz <[email protected]>
Update all ihp-sg13g2 designs to match the latest PDK files. Additionally, lower frequency for spi and gdc design to meet worst-case latency. Signed-off-by: Daniel Schultz <[email protected]>
225af32    to
    2eef655      
    Compare
  
    