設計
基板仕様、層構成、ネットクラス
基板メーカーと実際の層構成を選び、ネットの種類ごとにネットクラスを定義し、インピーダンスと電流の目標値を設定して、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.Cuclassは、その名前のクラスをその場で編集するか、追加します。ターゲットの動作は以下の通りです。
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-nodeshowは、解決済みの基板を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がクリーンになること。