agentee

設計

基板仕様、層構成、ネットクラス

基板メーカーと実際の層構成を選び、ネットの種類ごとにネットクラスを定義し、インピーダンスと電流の目標値を設定して、checkが幅を解けるようにします。

基板仕様は設計の最初のファイルであり、他のすべてがこれに対してチェックされます。基板メーカー、層構成、アウトライン、ビアタイプ、ネットクラスを指定します。最初に正しく設定してください。誤った層構成に対してルーティングされたレイアウトは、すべての制御ラインでインピーダンスが誤ります。

agentee new board sensor-node

基板メーカーを選択

name = "sensor-node"
fab = "jlcpcb"

fabはルールプリセットを選択します:generic、jlcpcb、またはhdi。プリセットは、銅層数、外層銅厚、仕上げをキーとするテーブルです。そのため、4層1オンスの基板は2層2オンスの基板よりも厳しい配線ルールになります。jlcpcbの値はJLCPCBの能力ページの行ごとに従います。ルールリファレンスは、各値とその出典となる行、およびagenteeが意図的に厳しくしている少数の箇所を示します。

[rules]で任意のルールを上書きします:

[rules]
min_track_width = "0.15mm"
min_clearance = "0.15mm"

実際の層構成を選択

層の厚さを手入力しないでください。基板メーカー自身のビルドを選択します:

agentee stackups --fab jlcpcb --layers 4
agentee stackups --fab jlcpcb --layers 6 --thickness 1.6
agentee stackups JLC04161H-7628

プリセットは、JLCPCBのインピーダンス制御ビルド(4層から20層、0.4 mmから3.0 mm)、PCBWayの標準ビルド(4層から18層)、汎用HDIビルド2種をカバーしています。JLCPCBのプリセットは、基板メーカー独自のコード、JLC04161H-7628で識別されます。内容は、層数、厚さ、外層と内層の銅、プリプレグです。最後のコマンドは、1つのプリセットの層を、厚さと誘電率付きで出力します。

agentee edit board sensor-node stackup --preset JLC04161H-7628 --finish ENIG

同じビルドで基板を発注してください。JLCPCBが別の層構成を使う場合、計算したすべてのインピーダンスがずれます。

外形、切り欠き、穴

agentee edit board sensor-node outline --size 50,30 --corner-radius 1mm
[[outline.cutouts]]
origin = [20, 12]
size = [6, 2]
corner_radius = 1              # half the width makes a slot

外形は、size、origin、corner_radiusを持つ長方形、またはpointsのポリゴンです。切り欠きは、基板を貫通してルーティングされた窓、スロット、大きな穴です。エッジに関心を持つもの(エッジまでの銅、パッド、ベタ、ルーティング、シミュレーション)は、切り欠きのエッジを基板エッジとして扱います。レイアウトファイル内の切り欠きは異なります。一部の層で、特定の領域にベタを入れないようにするだけです。

ビアの種類

[[vias]]
name = "std"
drill = "0.3mm"
diameter = "0.6mm"

基板には複数のビアタイプを指定できます。スルービアは追加の指定が不要です。ブラインドビア、バリアドビア、マイクロビアはHDI対応の基板メーカーが必要で、HDI: マイクロビアと積層で説明しています。

ネットクラス

ネットクラスは、ネットの性質を定義します。配線幅、クリアランス、ビア、チェックが適用するターゲットです。ネットの種類ごとにクラスを割り当ててください。Defaultに残されたネットは警告になります。クラスがルーティングの仕方を決めるためです。

agentee edit board sensor-node class Signal --track-width 0.2mm --clearance 0.2mm --via std
agentee edit board sensor-node class Power --current 2A --max-temp-rise 10C
agentee edit board sensor-node class USB --impedance 90ohm --diff-gap 0.15mm --layers F.Cu
agentee edit board sensor-node class RF --impedance 50ohm --coplanar-gap 0.2mm --solver field --layers F.Cu

classは、その名前のクラスをその場で編集するか、追加します。ターゲットの動作は以下の通りです。

  • currentは、クラスが使用できるすべての層で、max_temp_rise(既定は10 C)に対してIPC-2221でチェックされます。内層は外層より電流が小さく、チェックは各層でその電流を流す幅を指定します。
error: blinky.board.toml: blinky netclass Power on In2.Cu: 0.6mm carries only 0.451A for a 10C rise, 1A needs 1.7994mm (IPC-2221)
  • impedanceは、layersのすべての層でチェックされます。track_widthを省略すると、チェックが最初の層で解算します。1つの幅ですべての層に合わない場合は、widthsで層ごとに指定します。
  • diff_gapは、クラスを差動ペアにし、そのインピーダンスを差動インピーダンスにします。
  • coplanar_gapは、接地コプランアにします。ベタが両側にそのギャップを維持し、下にプレーンがあります。
  • solver = "field"は、閉じた形の公式ではなく、ソルダーレジストと銅の厚さを考慮したGPUフィールドソルバーでクラスをチェックします。

層構成から得られる値を見る

agentee check
agentee show board:sensor-node

showは、解決済みの基板をJSONで出力します。各クラスと各層について、トレースの幾何学(外層はマイクロストリップ、内層はストリップライン)、インピーダンス、ターゲットを満たす幅、流れる電流です。クラスがターゲットから外れている場合、チェックはどの程度外れているか、何をすべきかを指定します。

error: lna.board.toml: lna netclass RF on F.Cu: field solver gives 59.4 ohm with solder mask, outside 50ohm +/- 5%, use track_width = "0.2985mm" (50.2 ohm)

幅を貼り付け、チェックを再実行します。インピーダンス制御とペアでさらに詳しく説明しています。

設計ルール設定

レイアウトチェックは、ルールレジストリから来ます。各ルールにはID、カテゴリ、既定の重大度があります。基板で無効にしたり、重大度を変更したりできます。

[drc]
disable = ["silk-width"]
severity = { "starved-thermal" = "error", "via-in-pad" = "warning" }

agentee drc NAME --listは、この基板に適用されるかどうか、その理由付きですべてのルールを出力します。設計ルールチェックの参照にすべてがリストされています。

チェックリスト

  • fabを設定し、基板メーカーが実際にビルドする層構成のpresetを指定する。
  • ネットの種類ごとに1クラス: シグナル、電源、グランド、各インピーダンス、各ペア。
  • クラスにインピーダンスと電流のターゲットを指定し、手計算で幅を決めない。
  • 数オームが重要なすべてのクラスにsolver = "field"を指定する。
  • 回路図でクラス名を付ける前に、agentee checkがクリーンになること。

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