agentee

設計

配置、配線、ベタ

自動配置、グランドと電源のベタ、プレーンタイ、自動配線、シルクラベル、テストパッド、製造パッケージをゲートする設計ルールチェック。

レイアウトは、回路図のフットプリントを基板に配置し、銅で結びつけます。ここでのすべてのコマンドは、*.pcb.tomlに通常のエントリを書き込むため、配置ツールやルーティングツールが何をしたとしても、後からあなたやエージェントが編集できます。

agentee new layout NAME

スターターにboardとschematicを追加します。チェックは、まだ配置されていないすべての部品を報告します。

配置

agentee place NAME
agentee render pcb:NAME -o placed.png

agentee place は基板全体のクイックスタートです。優先順に、以下を実行します。

  • コネクタを基板の縁に配置し、接続面を外側に向けます。別の分割が可能な場合、RF コネクタと USB コネクタを同じ縁に配置しません。USB 3 のノイズは 2.4 GHz 帯域に入るためです。
  • RF 経路をコネクタからコネクタまで直線に配置し、並列部品をそのノードの横に配置します。
  • 大型チップを中央に寄せ、デパネリングで基板が曲がる縁や穴から離します。
  • 各 IC のデカップリングコンデンサを、その IC が供給する電源ピンに集め、クリスタルをクロックピンに配置します。
  • スイッチングレギュレータをクリスタルや RF 部品から 8 mm 離し、発熱部品も互いに離します。
  • 0805 以上のセラミックコンデンサを、縁や穴付近のフレックスゾーンから除外し、小型部品は縁に沿うように回転します。
  • すべての部品を、そのネットに向くように回転します。

配置リファレンス に各ルールの根拠を掲載しています。結果はファイルと --seed のみに依存します。

その後、人が行う作業を行います。表示を確認し、重要な部品を移動し、ロックします。

agentee edit pcb NAME place J1 2.54,12 --rotation 180 --locked
agentee place NAME --keep-placed
agentee place NAME --seed 7
agentee place NAME --parts 'C*,R*'
agentee place NAME --side both

locked = true の部品は移動しません。--keep-placed は既に位置が決まっているすべての部品を残し、--parts は一致する部品のみを配置し、--side both はデカップリングコンデンサを BGA の裏面に配置できます。レイアウトの [place] edges でコネクタを縁に固定し、keepouts はコートヤードが侵入してはならないポリゴンです。

[place]
edges = { J1 = "left", J2 = "right" }
keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]

ベタとプレーン

agentee edit pcb NAME zone GND --layers F.Cu,In1.Cu,In2.Cu,B.Cu
agentee edit pcb NAME zone 3V3 --layers In2.Cu --priority 1

ゾーンは、アウトライン(デフォルトでは基板)から、他のすべてのネットの銅をクリアランス分拡大したものを除いた領域を、角が丸い正確なポリゴンとして埋めます。ゾーンの min_width より狭いネックは、基板メーカーのエッチングと同様に除去され、どこにも接続しない島は削除されます。1 層では、ゾーンは priority 順に埋められるため、基板全体のグラウンドベタ内の電源ベタは、ショートせず周囲に埋められます。--pad-connection relief は、パッドを固い銅ではなく 4 本のスポークで接続します。

フィルは読み込み時に計算され、キャッシュされます。agentee fill NAME はレイアウトファイルの末尾に保存するため、新しいチェックアウトではフィルなしで読み込めます。

パッドをプレーンに接続する

agentee tie NAME

ゾーンを持つネットはプレーンネットです。tie は、プレーンネットのすべての SMD パッドに短いスタブと、部品側とは反対の側で、他のパッドや他のネットからクリアランスを確保した位置にビアを配置します。これが、パッド間を配線で結ぶのではなく、グラウンドや電源パッドがプレーンに接続すべき方法です。既にそのネットのビアが近くにあればそのパッドは変更せず、合法的な位置がないパッドは failed にリストされます。

ルーティング

agentee route NAME --nets 'USB_*,SPI_*' --layers F.Cu,B.Cu
agentee route NAME --nets '*'

ルーティングエンジンは 0.05 mm グリッドで動作し、既存のすべての要素に対して、各クラスの幅、クリアランス、層、ビアを維持します。45 度方向にステップし、ビアと曲がりにはコストを課し、その後で配線を引き締め、クラス幅より狭いパッドには配線をネックダウンします。自由な経路がない接続は、邪魔になっているものを除去し、そのネットをキューに戻します。

  • --nets のグロブはプレーンネットにマッチしないため、--nets '*' はすべてのシグナルをルーティングし、グラウンドはプレーンに任せます。
  • 既存の銅は移動されません。--reroute で指定されたネットの配線とビアを先に削除する場合を除きます。
  • 一部の接続が失敗した場合、周囲のネットと --reroute を付けて再ルーティングするか、--grid 0.025 に下げます。
  • --pairs は、差分ペアを、収まる範囲で結合ペアとしてルーティングします。
  • --via-in-pad は、そのネットの SMD パッド内に、フィルとキャップ付きのビアを配置できます。
  • --dry-run は書き込まずにレポートします。

まず手で重要なネットをルーティングします。RF 線、スイッチングレギュレータのホットループ、クリスタルなどです。その後、ルーティングエンジンに残りをクラスごとに埋めさせます。

手動では、配線とビアもコマンドです。

agentee edit pcb NAME track RF_OUT F.Cu 19.28,12 30.92,12
agentee edit pcb NAME via GND 7.2,8.9

配線はパッドに進入しなければなりません。中心線がパッドの縁にただ接しているだけの配線は、銅が触れていてもフラグが立てられます。

ステッチングとファンアウト

[[stitching]]
net = "GND"
pitch = "2.5mm"

[[stitching]]
net = "GND"
fence = ["RF_*"]

[[fanouts]]
ref = "U3"
skip_rings = 2

[[stitching]] は、他のすべてのネットからクリアランスを確保できる場所にグリッドでグラウンドビアを配置するか、指定されたネットの配線に沿ってフェンス状に配置します。[[fanouts]] は、BGA のすべての接続パッドにビアを配置し、外側のリングをトップ層からのエスケープ用に空けます。どちらもルールであり、周囲の銅が変わるたびにビアが再配置されます。agentee edit pcb NAME stitch GND --pitch 2.5mm と fanout U3 --skip-rings 2 でこれらを書き込みます。

シルク

チェックは、他のテキストを圧迫している、パッドやビアの上にある、基板からはみ出している、などの参照ラベルをフラグし、条件を満たす位置を特定します。agentee silk はそれらをすべてその位置に移動します。

agentee silk NAME
agentee silk NAME --hide

--hide は、配置場所がないラベルを非表示にします。通常は BGA 下の小型受動部品です。

すべての基板には、シルクに agentee vX.Y.Z-HASH が含まれます。デフォルトでは裏面です。約 23 x 1.2 mm のクリアな帯が必要です。小型または混雑した基板では、その場所を確保するか、[watermark] at を自分で設定してください。これがなければ、ファブパッケージは拒否されます。

テストパッド

agentee testpoints NAME
agentee testpoints NAME --nets '3V3,*RST*' --side B --pitch 2.54

すべての基板には、ブリングアップ用のプローブアクセスと、生産テスト用のポゴピンフィクスチャが必要です。デフォルトでは、電源レール、グラウンド、リセット、イネーブル、パワーグッド、クロック、低速バスです。スイッチングノードとレギュレータのフィードバックは意図的に除外されています。testpoints は、まだアクセスがない各ネットに対して、回路図に TP 部品、そのネットの銅付近のプローブ側に 1 mm パッド、そしてそこへのルーティングされた配線を追加します。インピーダンスネットとペアは、スタブが影響するためスキップされます。

設計ルールチェック

agentee check --item pcb:NAME
agentee drc NAME
agentee drc NAME --list

check はすべてのルールを実行し、drc はレイアウトのルール診断のみを出力します。各診断は ID を角括弧で先頭に含みます。--list は、この基板に適用されるかどうかを示してすべてのルールを出力します。エラーはファブパッケージをブロックします。警告と通知は、基板メーカーの制限ではなく慣行です。設計に理由がある場合を除き従い、その理由を DESIGN.md に記載してください。

ルーティングが完了するのは、agentee show pcb:NAME のすべてのネットの unrouted が 0 になったときです。

チップのピンを整理する

agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --write

pinswap は、FPGA や MCU の交換可能な I/O(同じバンク、ペアはペアのまま、クロックピンはクロックピンのまま)を再割り当てしてラッツネストを整理し、--write で回路図のピン参照を書き換えます。

レイアウトエンジン

agentee layout NAME は、レイアウトエンジンの設定されたステージを順に実行し(制約、配置、アクセス、グローバルルーティング、詳細ルーティング、仕上げ)、各用語のスコアと最悪の違反者を出力します。--from、--to、--only でステージを選択します。place や route より新しく、ステージとその設定はレイアウトの [engine] テーブルにあります。ビューアでは、ウィンドウ内のレイアウトの現状に対してこれらを実行できます。

このガイドを改善する · エージェント向けMarkdown