agentee

回路図とレイアウト

インターフェース

USB 3 から 50 オームの RF 線まで、リンクが満たすべき要件: インピーダンス、スキュー、長さ、ビア、スタブ、リファレンスプレーン、リターンビア。

インターフェースはリンクが満たすべき条件を定義し、チェックは銅をそれに対して測定します。インピーダンス、スキュー、長さ、ビア、ビアスタブ、すべての配線の下の参照平面、リターンビア、バスタイミング、およびそれをモデル化するシミュレーションのSパラメータとアイパターンです。

[[interfaces]]
name = "usb-ss"
preset = "usb3-gen2"           # usb3-gen1, usb3-gen2, usb2-hs, lvds, rf-50, cmos
nets = ["SS_TX*", "SS_RX*"]    # globs; differential presets pair them up, through series parts
# differential = true
# impedance = "90ohm"          # the member classes' targets must sit inside this
# impedance_tolerance = "7%"
# max_skew = "5mil"            # within each pair, a length or a time ("1ps")
# max_length = "3in"           # end to end, through series parts
# max_vias = 2                 # per trace
# max_stub = "15mil"           # the via barrel past the last layer the trace uses
# max_unreferenced = "0.5mm"   # total run with no plane of `reference` under it
# reference = ["GND"]
# return_via = "200mil"        # a reference via this close to every signal via

[[interfaces]]
name = "ad-rx"
preset = "cmos"
nets = ["AD_P1_D*", "AD_RX_FRAME", "AD_DATA_CLK"]
clock = "AD_DATA_CLK"          # a pair's clock is named by either leg
max_bus_skew = "30ps"          # spread of arrival across the data lines
clock_window = ["-50ps", "150ps"]   # data minus clock arrival, from the setup and hold budget

[[interfaces.measure]]         # read from a finished sim; missing or stale results are errors
sim = "sdr-usb"                # an FDTD run
pair = ["TX1_FX+", "TX1_FX-", "TX1_J+", "TX1_J-"]   # IN+, IN-, OUT+, OUT-; or through = [IN, OUT]
up_to = "5GHz"                 # Nyquist, the band the limits apply over
max_loss = 1.5                 # dB, worst Sdd21 (or S21) in the band
min_return_loss = 10.0         # dB, worst Sdd11
max_mode_conversion = -30.0    # dB, worst Scd21

[[interfaces.measure]]
sim = "sdr-usb-eye"            # a channel sim
min_eye_height = "70mV"
min_eye_width = "0.47UI"       # or ps

[[interfaces.measure]]
sim = "i2c-bus"                # a logic sim: no limits, it passes when the sim passes

ロジックシミュレーションの測定は、シミュレーションに失敗(アサーション、コンテション、タイミング違反、または停止した実行)がある間、失敗します。失敗数と最初の失敗を特定します。シミュレーションの仕様や回路図ネットリストが変更された場合は、シミュレーション自体が報告するように、古くなります。銅が変更された場合は古くなりません。ロジックシミュレーションはレイアウトを見ないためです。

プリセットインピーダンススキュービアスタブその他
usb3-gen1、usb3-gen290 オーム +/-7% 差動5 mil215 mil3500 / 3000 mil長、GNDリターンビアは200 mil以内、0.5 mm未参照
usb2-hs90 オーム +/-10% 差動50 mil412000 mil長、1 mm未参照
lvds100 オーム +/-10% 差動1 mm未参照
rf-5050 オーム +/-10%00.5 mm未参照
cmos2 mm 参照なし

USBの数値はTIのHigh-Speed Interface Layout Guidelines(SPRAAR7J、付録A)です。Gen 2の長さはcongatec AN37です。プリセットが設定するものはすべて、インターフェースで上書きできます。

遅延は、各層の有効誘電率からの配線遅延と、信号が横切るビアバレルです。平面は参照としてカウントされます。配線から離れて歩き、カットアウト層を越えて最初に発見された銅が、配線の全幅を覆うreferenceネットのベタの場合です。ネット自身のビア周りのアンチパッドはカウントされません。すべてのシミュレーション結果は、見た銅のハッシュを記録します(シミュレーションのregionのみ、および層構成)。銅が変更された後の結果は古く、それに対する測定は失敗します。

agentee tune NAME(MCP tune)はこれらを修正します。スキュー制限を超えるすべてのペアと、ターゲットに届かないすべてのマッチグループメンバーについて、長い直線セグメント上で、シリーズチェーンのどこでも、他のすべてのネットのクリアランスと基板エッジルールを維持するバンプで短い側をメアンダーさせ、新しい点を配線に書き込みます。--netsで範囲を限定し、--amplitudeでバンプの高さを上限設定し、--pitchでバンプのピッチを固定します(デフォルトは配線幅3倍、収まる範囲でより密に)。ペアの1本の脚では、脚がすでに離れている部分(ブレイクアウトや曲がり角、ミスマッチの原因となる部分)を優先的にバンプし、クラスギャップから外れてパートナーの隣を走っている脚を残しません。結合セグメントは、ペアをクリアできる高さのバンプのみを受け取ります。インターフェースもカウントされます。時間だけでなく長さでも:ペアがmax_skew(ps)を超えている場合、短い側の長さをその遅延分だけ伸ばします。max_bus_skewとclock_windowの場合、クロックは最新のデータラインがウィンドウ内に入るまで伸ばされ、バススプレッドやウィンドウの早期エッジに届かないすべてのデータラインは最新のデータライン(ウィンドウ内)まで伸ばされます。ペアの両方の脚を一緒に処理します。遅延は、各ネット自身のps/mmでミリメートルに変換されます。ペアの1本の脚がすべてを受け取れない場合、もう1本の脚は受け取った分まで保持されます。グループターゲットを超えるネットは報告され、短くされません。agentee calc serpentine --from x,y --to x,y --add 2.5mm(MCP serpentine)は、選択したセグメント上のそのようなメアンダーの1つの点を返します。ネットの長さと遅延はagentee show pcb:NAMEにあります。

ビューアのレイアウトページには3dタブがあります(agentee view --3dで開くとそこに移動します):層構成の厚さを持つ基板、マスクとシルクの色と仕上げ、マスク下の銅、裸のパッド、めっきドリル壁と裸ドリル壁、および各パーツの3Dモデル。partsトグルでモデルを非表示にします。ドラッグで回転、Shiftドラッグでパン、スクロールでズーム、ダブルクリックでリセットします。ビューアはOpenGL(three-d)で描画します。agentee render pcb:NAME --show 3d(または3d-top、3d-bottom)はソフトウェアで同じシーンを描画し、--hide partsでモデルを除外し、--regionでカメラをその領域に向けます。

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