agentee

回路図とレイアウト

レイアウト

*.pcb.toml ファイル: 配置、配線、ビア、ファンアウト、ステッチング、ベタ、カットアウト、シルク、アートワーク、テストアクセス、バージョンウォーターマーク。

回路図のフットプリントを基板に配置し、配線します。

name = "lna"
board = "lna"
schematic = "lna"

[[footprints]]
ref = "U1"
at = [13.0, 8.05]
rotation = 90                  # degrees, counter-clockwise
# side = "bottom"              # mirrors the footprint and swaps F./B. layers
label = { at = [9.9, 7.4], rotation = 90 }   # move the silk reference; size = 0.8, hide = true
# mlcc = false                 # this part is not a ceramic capacitor, over the footprint's `mlcc`
# locked = true                # `agentee place` never moves it

[[tracks]]
net = "RF_OUT"
layer = "F.Cu"
points = [[18.68, 10], [25.5, 10]]
# width = 0.36                 # default: the net class width

[[vias]]
net = "GND"
at = [7.2, 8.9]
# via = "std"                  # a [[vias]] name from the board, default the first class via
# count = 6                    # a row, like pads
# pitch = [1.2, 0]

[[fanouts]]                    # a via in every connected pad of a BGA
ref = "U3"                     # * and ? globs: ref = "*" with nets = [...] fans out every plane pad
# via = "bga"                  # or a list, the first reaching the pad layer; default the class vias
# skip_rings = 2               # leave the two outer rings for escape on the outer layer
# always = ["GND", "LVDS_*"]   # nets that get a via even in those rings, globs allowed
# skip = ["A1", "B7"]          # pads to leave alone
# skip_at = [[4.5, 3.0]]       # no via at these spots (the viewer adds one when you edit a via)
# nets = ["GND", "3V3"]        # only pads on these nets, globs allowed
# exclude = ["C2?", "J1"]      # refs to leave out when ref is a glob; a glob never
                               # matches test points, a probe pad keeps no via

[[stitching]]                  # ground vias wherever they clear every other net and silk text
net = "GND"
# via = "std"                  # default the net's first class via
# pitch = "2.5mm"              # grid pitch, or the spacing along a fence (default 1mm)
# outline = [[x, y], ...]      # default the board outline
# margin = "0.6mm"             # extra distance from the board edge
# fence = ["RF_*"]             # instead of a grid: a row either side of these nets' tracks
# offset = "0.5mm"             # fence row distance from the track centre, default just past
                               # the class coplanar gap
# skip_at = [[4.5, 3.0]]       # no via at these spots (the viewer adds one when you edit a via)

[[zones]]
net = "GND"
layers = ["F.Cu", "In1.Cu", "In2.Cu", "B.Cu"]
# outline = [[x, y], ...]      # default: the board outline
# clearance = 0.25             # default: the net class clearance
# priority = 1                # higher fills first; other nets' zones on the layer pour around it
# min_island_area = 2.0       # mm2; a piece touching one item of the net is kept only this big
# pad_connection = "relief"    # solid (default) | relief: pads of the net join the pour by four
                               # spokes across a gap, so they heat like a track-fed pad;
                               # none: the pour keeps its clearance from the pads. A pad's
                               # own zone_connect wins, and BGA balls (16 or more round SMD
                               # pads) stay solid, since spokes starve a ball of solder heat
# relief_tht_only = true       # relief on through-hole pads only, SMD pads solid (KiCad's
                               # thru_hole_only)
# relief_gap = "0.3mm"         # default: the zone clearance
# spoke_width = "0.3mm"        # default: the net class track width, at least min_width

[[cutouts]]                    # keep zones off an area, e.g. under an SMA centre pin;
                               # a hole through the board is [[outline.cutouts]] in the board file
layers = ["In1.Cu"]
points = [[0, 9], [5.4, 9], [5.4, 11], [0, 11]]

[[graphics]]                   # board text and lines, same keys as footprint graphics
kind = "text"
layer = "F.SilkS"              # F.SilkS, B.SilkS, F.Fab or B.Fab
at = [7.4, 7.6]
# locked = true                # `agentee place` never moves it
text = "RF IN"
size = 1.0                     # mm, the fab minimum is in the board rules

[[artwork]]                    # a filled logo or icon
layer = "F.SilkS"
icon = "arrow"                 # built in: arrow, warning, ground, antenna, lightning, pin1, ce
# file = "logo.svg"            # or any SVG, relative to this file
at = [7.4, 6.3]                # centre of the artwork
height = 0.8                   # mm, the width follows the aspect ratio
# rotation = 90

[test]                         # in-circuit and flying probe test access, all optional
# nets = ["3V3", "*RST*"]      # nets that need a probe, globs, any case; default below
# exclude = ["LED_*"]          # nets to leave out
# side = "B"                   # probe side, F or B
# through_holes = true         # exposed plated through-hole pads count as access
# vias = false                 # vias count as access; opens the probe side mask over every via
# min_test_pad = "1.0mm"       # smallest test pad
# min_test_pad_pitch = "1.27mm"   # centre to centre between test pads
# min_test_pad_to_body = "1.0mm"  # to another part's body on the probe side
# min_test_pad_to_edge = "3.0mm"  # to the board edge and tooling holes

[place]                        # optional, for `agentee place`
# edges = { J1 = "left", J2 = "right" }   # pin a connector to an edge: left, right, top
                               # (smallest y) or bottom
# keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]   # polygons no courtyard may enter

[watermark]                    # optional: where the agentee version watermark goes
# at = [30, 21]                # centre of the text, default a clear spot found by check
# layer = "B.SilkS"            # default B.SilkS, else F.SilkS
# rotation = 90                # default 0, or 90 where only a tall gap is clear

すべてのレイアウトにはシルクテキストagentee vX.Y.Z-HASHが含まれます。これはパッケージをビルドしたagenteeのバージョンと、そのソースの短いgitハッシュです。ツリーに未コミットの変更がある場合は-dirty、git外ではunknownになります。常にプロットされ、無効にすることはできません。min_silk_text_heightの高さで中央揃えです。デフォルトではB.SilkSに配置されます (下側にスペースがない場合、または基板に下側のシルクがない場合はF.SilkS)。基板の左下隅に最も近い空きスペースに配置され、高い隙間しか合わない場合は90度回転します。空きスペースは、パッド、ビア、他のシルクテキストや線、アートワーク、部品本体から離れ、アウトラインからmin_copper_to_edge以内にとどまります。ビューア、レンダリング、組立図に表示され、fab-notes.txtにも名前が記載されます。空きスペースがない場合、チェックはwatermarkエラーを報告し、確保すべきサイズと最も混雑していない場所を示します。メーカーは拒否します。そこにスペースを確保するか、[watermark] at (およびlayer、rotation) を自分で設定してください。[watermark]の場所が空きスペースでない場合、衝突したものを特定したwatermarkエラーになります。kind = "silk"レイヤーのない層構成は、そのレイヤーを求めるwatermarkエラーになります。

テストアクセス: デフォルトでは、プローブが必要なネットは電源ネット(currentを持つクラス、または3V3、1V8、+5V、VCC*、VDD*、VBUS*、VBAT*、VIN*、VSYS*のような名前)、グランド(GND、*GND、GND*)、および*RST*、*RESET*、*EN*、*PG*、*CLK*、*TX*、*RX*、*SCL*、*SDA*、*SWD*、*TCK*、*TMS*、*TDI*、*TDO*のような名前のネットです。デフォルトでは、スイッチノードやレギュレータのフィードバック、ソフトスタート、ノイズ低減用のネット(SW*、*_SW、LX*、FB*、SS*、NR*。名前全体または最後の/区切りで一致)は除外されます。これらは電源クラスに属していても同様です。プローブの容量とパッドへのスタブがスイッチングノイズをフィードバック分圧回路に結合させたり、ソフトスタートやノイズフィルタを遅らせたりするためです。また、スイッチノード上のスタブはノイズを放射します。netsはこのリストを置き換えます(そこにネット名を指定すると、そのネットもプローブされます)。一方、excludeはリストからネットを除外します。テストポイントは、参照がTPと番号を持つ部品、またはTestPoint*という名前のフットプリントです。他のすべての部品と同様に、回路図に含まれている必要があります。組み込みのTestPoint_Pad_D1.0mmフットプリント(直径1.0 mmの円形SMDパッド、ソルダーレジスト開口、はんだ付けなし)とTestPointシンボルは、agentee testpointsによってfootprints/とsymbols/に書き込まれます。

agentee testpoints NAME --nets "3V3,*RST*" [--side B] [--pitch 2.54] (MCP testpoints) は、まだプローブアクセスのない各一致するネットにテストパッドを追加します (--netsを省略した場合、ネットは[test]のデフォルトです。インピーダンスとペアのネットはスキップされます)。プローブ側で、ネットの銅の近くにある--pitchグリッド上の空きスペースを探します。エッジとツールングホールからmin_test_pad_to_edge、部品本体からmin_test_pad_to_body、他のテストパッドから--pitch、他の銅および他のネットのために配置したパッド、スタブ、ビアからネットクリアランスを保ちます。ネット名を指定する回路図シートにネットに接続されたTP部品を追加し、レイアウトのプローブ側に[[footprints]]エントリを追加してパッド横のビアへの短いスタブ配線を行います。その後、オートルーターで各新しいパッドをネットの銅に配線し、それらの配線とビアを追加します。ルーターが接続できないパッドは、回路図とレイアウトから再び削除され、空きスペースが見つからなかったネットとともにリストされます。新しいパッドのラベルは空きスペースに移動するか、非表示になります。レイアウトがゾーンフィルを保存している場合、agentee fillと同様に更新されます。--dry-runは書き込まずに場所を報告します。

シルクテキストは、他のシルクテキストから0.4 mm、シルクのアウトラインから0.2 mm離れ、パッド、ビア、他の部品の本体を避け、基板上にとどまる必要があります。これらそれぞれがエラーですが、他の部品の本体下にあるテキストは警告です。参照ラベルが失敗した場合、チェックはすべてのルールを満たす場所をlabel = { at = [...] }行として貼り付け可能な形で特定します。agentee silk NAME (MCP silk) はそれらすべてを貼り付け、ラベルが安定するまで繰り返します。--hideは空きスペースのない参照を非表示にします。通常はBGA下の小さな受動部品です。

フィルのピースは、そのネットの2つのアイテムに触れている場合、または1つに触れていてmin_island_area以上の場合にのみ保持されます。残りは新しいものに到達しないため削除されます。チェックは他のネットに対するすべてのフィルを検証します。他のネットのゾーン、配線、ビア、パッドと重なるフィル、またはクリアランスより近づくフィルはエラーです。30度より鋭い銅の先端はフラグが立てられます。

同一レイヤーのベタはpriorityの順、次に面積の小さい順に配置されます。各ベタは既に配置されたベタとのクリアランスを維持するため、基板全体のグランドベタ内部にある小さなスイッチノードや電源ベタは、ショートせずに周囲にベタが張られます。

ベタは他のネットのビア穴からmin_via_hole_to_copper、非めっき穴からmin_npth_to_copperの距離を保ちます。また、クリアランスも保ち、円弧は実際の円の外側に描かれるため、隙間は決してショートしません。ステッチングビアは、跨ぐ各レイヤーで他のすべてのネットの銅からクリアランスを保ち、その銅からmin_via_hole_to_copper、任意のネットのSMDパッドからmin_hole_to_smd_pad、すべてのドリル穴からmin_hole_to_hole、アウトラインからエッジルールを保ち、かつ自分のネットのゾーン内に収まる位置にのみ配置されます。checkは配置した数を報告します。ドリルとプロットは通常のビアと同様に行われます。

ゾーンベタは正確なポリゴンです。ゾーンのアウトラインから、他のすべてのネットの銅をクリアランス分だけ拡大したものを差し引き、角は丸められます。これにより、ベタは階段状にならずにレンダリングとプロットされます。ゾーンのmin_width(デフォルト0.25 mm)より狭いネックや細片は除去されます。これは基板メーカーのエッチングと同様です。2つのクリアランス領域(アンチパッド、配線とパッドのクリアランス)がmin_widthより近接する場合、ベタはそれらを結ぶ直線まで削り込まれ、隙間から約1.5倍のmin_width以内で、突き出た部分や細い腰が残らないようにします。クリアランス領域と基板エッジのクリアランス、カットアウト、または他のゾーンベタの周囲のクリアランスの間でも同様です。

ゾーンベタはキャッシュされます。各ベタは依存するすべての要素のハッシュをキーとして~/.cache/agentee/fillsに保存され、読み込み時には銅、クリアランス、または隣接関係が変更されたゾーンのみがベタ張りされます(AGENTEE_NO_FILL_CACHEを設定するとキャッシュをスキップします)。agentee fill NAME(MCPのfill)は、レイアウトファイルの末尾にベタを保存します。ゾーンとレイヤーごとに1つの[[fills]]テーブルです。これにより、新しいチェックアウトではベタ張りなしで読み込めます。ハッシュが一致しない保存済みベタは無視され、checkは--infoでそれを注記します。基板のインポート時はそのベタが保存されます。[[fills]]テーブルはツールに任せます。

パッドに軽く触れるだけの配線(中心線がパッドを通過しない場合)はフラグが立てられます。パッド内に配線を引き込みます。同一レイヤーで重なり合う同一ネットの2つのセグメント(平行で、配線幅以上の長さで重なる場合)はエラーです。銅が二重になるためです。90度より鋭い曲げは酸トラップとしてフラグが立てられます。配線はクラス幅より細くネックダウンできますが、基板メーカーの最小値以上で、最大0.5 mmまで(クラスのneckdown)です。これは小さなパッドに接続する場合に限られます。ルーターはこのようなネックを自分で描画します(オートルーティングを参照)。ドリル穴、ビア、めっきパッドはすべて、基板のmin_hole_to_hole間隔を保たなければなりません。checkは保たれていないペアを数え、最初のものを特定します。同一ネットの2つのビアが同じ位置にある場合もエラーです。基板メーカーは穴を2回ドリルすることになるためです。マスク開口部はパッドのアウトラインで、拡大はありません。ビアはテント処理されます。異なるネット(またはネットなし)の2つの開口部が重なるか、min_mask_web未満のマスクウェブを残す場合はエラーです。部品ペアごとに数えられ、最初の場所が特定されます。細ピッチ部品のパッドもチェックされます。フットプリントでパッドを狭くするか、基板メーカーが許可している場合はmin_mask_webを小さく設定してください。mask_web = falseのフットプリントは、パッド全体を1つの開口部としてマスクが開かれます(ガング開口)。そのため、自身のパッドのペアはスキップされます。ただし、他の部品とのパッドはチェックされます。

下層の図形は、下から正しく読めるようにミラーリングされます。SVGの塗りつぶしと線はポリゴンにフラット化されます。SVG内のテキストは無視されるため、先にパスに変換してください。シルクのテキストと図形は、参照ラベルと同じチェック(重複、パッド、シルクアウトライン、基板エッジ)が適用されます。

docs/format.md · エージェント向けMarkdown