Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

クローズ 初心者向け
#4,738 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
ruby

調査の方向性

flow/platforms/asap7/drc/asap7.lydrc の V5.M6.AUX.2 と V7.M8.AUX.2 のチェックを読み、角度の選択を asap7_tech_1x_201209.lef の M6 および M8 の向きと比較してください。説明されている手作りのテストレイアウト、または asap7/gcd フローで再現してください。ルールに適合する水平の M6/M8 ビアが通過し、より狭いビアでは引き続き違反が発生し、その他のルールの違反数が変わらなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Verilog
スター
777
フォーク
549
平均マージ
2日 10時間
マージ済み PR(30日)
91

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

The-OpenROAD-Project/OpenROAD-flow-scripts のほかの issue

The-OpenROAD-Project/OpenROAD-flow-scripts の issue をすべて見る

似ている issue

Backend & API Design の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。