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

asap7.lydrc: V5.M6.AUX.2 and V7.M8.AUX.2 check vertical edges, but M6 and M8 are horizontal, so legal VIA56/VIA78 are flagged

Cerrado Apto para principiantes
#4,738 0 comentarios 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
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
ruby

Línea de trabajo

Lee flow/platforms/asap7/drc/asap7.lydrc en las comprobaciones V5.M6.AUX.2 y V7.M8.AUX.2; después, compara la selección de ángulos con las orientaciones M6 y M8 en asap7_tech_1x_201209.lef. Reproduce el problema con los diseños de prueba hechos a mano descritos o con el flujo asap7/gcd. El trabajo estará terminado cuando las vías horizontales M6/M8 que cumplen las reglas pasen, las vías más estrechas sigan provocando infracciones y el recuento de infracciones de las demás reglas no cambie.

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

Descripción

Description

flow/platforms/asap7/drc/asap7.lydrc checks that a via is exactly as wide as the metal above it by looking for coincident edges, selecting the edges across the metal's width with with_angle:

  • line 377, V3.M4.AUX.2: .edges.with_angle(0) -- M4 is HORIZONTAL, correct;
  • lines 423 and 477, V4.M5.AUX.2 and V6.M7.AUX.2: .edges.with_angle(90) -- M5 and M7 are VERTICAL, correct;
  • line 431, V5.M6.AUX.2, and line 485, V7.M8.AUX.2: .edges.with_angle(90), but M6 and M8 are HORIZONTAL in asap7_tech_1x_201209.lef (lines 453 and 574), so the check looks at the wrong edges.

As a result every legal V5 under a horizontal M6 is flagged, including the tech LEF's own VIA56 (lines 683-690: V5 24 x 32 nm under a 32 nm wide M6) and pdngen's wide power vias (e.g. via5_6_120_288_1_2_58_322, a 24 x 288 nm cut under a 288 nm M6 strap).

Evidence
  • asap7/gcd (with DEF units fixed, see #4737): 81 V5.M6.AUX.2 markers (65 VIA56 x 1, 8 power vias x 2); with with_angle(0) on the two lines: 0, every other rule count unchanged.
  • A ~72k-instance block: 8,501 V5.M6.AUX.2 markers, all gone with the change; total 95,010 -> 86,509, nothing else changed.
  • Hand-made test layouts: a minimum-width (32 nm) horizontal M6 with a VIA56-shaped V5 is flagged by the current deck and passes with with_angle(0); a V5 that really is narrower than the M6 (24 nm high under 32 nm) is flagged by both, so the fixed check still catches real violations.
Suggested fix
-v5.not_interacting(m6.enclosing(v5, 1.dbu, projection, two_opposite_sides_allowed).edges.with_angle(90)).output("V5.M6.AUX.2", ...
+v5.not_interacting(m6.enclosing(v5, 1.dbu, projection, two_opposite_sides_allowed).edges.with_angle(0)).output("V5.M6.AUX.2", ...
-v7.not_interacting(m8.enclosing(v7, 1.dbu, projection, two_opposite_sides_allowed).edges.with_angle(90)).output("V7.M8.AUX.2", ...
+v7.not_interacting(m8.enclosing(v7, 1.dbu, projection, two_opposite_sides_allowed).edges.with_angle(0)).output("V7.M8.AUX.2", ...

ORFS commit c06bf3c; the two lines are unchanged on current master (the deck was last changed 2023-04-05). KLayout 0.28.16.

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 Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.