Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

gf180: `-split_cuts {Metal3 0.128}` in the platform PDN config makes overlapping, off-grid Via2/Via3 cuts

Abierto Apto para principiantes
#4,754 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
71/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo

Línea de trabajo

Lee flow/platforms/gf180/openROAD/pdn/pdn_grid_strategy_7t_6M.cfg y pdn_grid_strategy_9t_6M.cfg, y luego inspecciona la opción add_pdn_connect. Reproduce el problema en un diseño GF180 mediante 6_final.gds. Elimina la configuración -split_cuts especificada y comprueba si los cortes Via2/Via3 se solapan y si están alineados con la cuadrícula. Después, verifica check_power_grid y el DRC del enrutado; el trabajo estará terminado cuando ambas configuraciones produzcan cortes separados y correctamente alineados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

Both flow/platforms/gf180/openROAD/pdn/pdn_grid_strategy_7t_6M.cfg and ..._9t_6M.cfg have, on line 25:

add_pdn_connect -grid {block} -layers {Metal1 Metal4} -max_columns {5} -ongrid {Metal2 Metal3 Metal4} -split_cuts {Metal3 0.128}

The Via2/Via3 cuts are 0.26 µm squares, but with this setting pdngen places them closer than their own size, so neighbouring cuts overlap and merge into one large cut, and the cut corners land off the 0.005 µm manufacturing grid (MANUFACTURINGGRID 0.0050 in the tech LEF). Measured on the final GDS of gcd (minimal gf180 config: designs/src/gcd/gcd.v, CORE_UTILIZATION 40, 20 ns, 9-track cells, ORFS c06bf3c; the PDN files are the same on current master):

Via2 (38/0) cuts after merging largest merged cut vertices off the 0.005 µm grid
platform config 5,970 × 0.26 × 0.26 1,074 shapes 0.772 × 1.028 µm 19,584
same, -split_cuts {Metal3 0.128} removed 2,383 × 0.26 × 0.26 2,383 (none overlap) 0.26 × 0.26 0

Via3 (40/0) is the same: 5,063 cuts merging into 167 shapes, 19,584 off-grid vertices, against 1,463 separate cuts and 0 off-grid without the option. Each Metal1-rail × Metal4-strap crossing becomes one 0.772 × 1.028 µm Via2 and one such Via3.

Without -split_cuts, pdngen uses the tech LEF's VIARULE and makes ordinary via arrays; check_power_grid passes for VDD and VSS and routing DRC stays 0 (gcd and a 4-SRAM FIFO). A metal/via rule check written from the tech LEF's own values goes from 2,629 markers to 1 on gcd (the remaining one is an IO pin next to a strap end) and from 10,752 to 0 on the FIFO. A spacing of 0.62 instead of 0.128 also removes the overlaps, but leaves the Metal3 pads at each crossing too close (576 Metal3 spacing markers on gcd).

The image has no GF180 sign-off DRC deck (make drc writes "DRC not supported on this platform" and returns 0), so this was found with that tech-LEF-based subset plus the geometric checks above (cut size, overlap, grid), which do not depend on any deck. Every design in flow/designs/gf180/ uses these PDN files.

To reproduce

Run any gf180 design to 6_final.gds and count the Via2 shapes before and after merging, e.g. in KLayout Python:

import pya
ly = pya.Layout(); ly.read("6_final.gds")
r = pya.Region(ly.top_cell().begin_shapes_rec(ly.layer(38, 0))); r.merged_semantics = False
print(r.count(), "cuts,", r.merged().count(), "after merging")
Suggested fix

Drop -split_cuts {Metal3 0.128} from both files (or give a pitch of at least cut size + cut spacing and check the resulting Metal3 pads).

Lenguaje dominante
Verilog
Estrellas
777
Forks
549
Merge medio
2 d 10 h
PR fusionados (30 d)
91

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de The-OpenROAD-Project/OpenROAD-flow-scripts

Todos los issues de The-OpenROAD-Project/OpenROAD-flow-scripts

Issues similares

Más issues de DevOps

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.