隣の配線はなぜエッジに反応するのか
一言でいうと
隣の配線の電圧が変わると、2本の配線の間の小さな静電容量にも電流が流れます。ビクティム線に直接信号を入れなくても、パルスが現れる理由です。今回は、集中定数の抵抗・コンデンサーのモデルについて、実際のngspiceの過渡解析を読みます。伝送線路の分布定数のNEXT/FEXTを求めたり、実物のボードの適合性を認証したりする実験ではありません。
なぜ必要なのか
クロックが停止しているときは静かなセンサー入力も、クロックのエッジが始まると揺れることがあります。電圧の高さだけでなく、どれだけ速く変わるかが重要です。結合電流は、2つのノードの間の電圧の変化率に比例します。したがって、繰り返しの周波数が同じでも、エッジを変えると、誘導されるパルスが変わります。逆に、小さい抵抗を付けてノイズを減らすと、実際の回路では、信号源に負荷を追加することがあります。ノイズの数値の1つが改善したことを、設計全体の改善に広げてはいけません。
どう動くのか
アグレッサー線は理想的な電圧源が駆動し、ビクティム線はRvとCv=2pFで接地に接続されます。2本の線の間には、Ccがあります。理想的な電圧源の出力インピーダンスは0なので、ビクティム線がアグレッサー線の波形を変えないという仮定です。実際のドライバーの出力抵抗・パッケージ・インダクタンスは、省略しました。コンデンサーの電流の式をビクティム線の接点に適用すると、次の式が得られます。
(Cv+Cc)·dv/dt + v/Rv = Cc·dva/dt
左辺にCcも含まれることが重要です。時定数はRv·(Cv+Cc)で、瞬間的な電圧の分配比は、Cc/(Cv+Cc)です。RvがΩ、CがpFのとき、時定数nsは、積に0.001を掛けた値です。Rv=200Ω、Cc=1pFなら、0.6nsです。2pFだけを入れると0.4nsになり、モデルが合わなくなります。電流を無条件にCc·dva/dtとおいて、ビクティム線の変化を抜かした場合も、同じ誤りが生じます。
アグレッサー線は、2nsからtrの間、0Vから1Vへ線形に立ち上がり、12nsから同じtrの間、0Vに下がります。立ち上がりの間は、一定の傾きがビクティム線を押し上げます。立ち上がりが終わると、新しい注入が止まって、指数関数的に減衰します。立ち下がりは、逆向きの電流を作って、負のパルスを起こします。1つのエッジの応答をg(t)とすると、全体の応答はg(t−2)−g(t−12)です。g(u)は、u≤0では0、0
Cc=1pF、Rv=200Ωで、tr=0.2nsの理論上のピークは約0.28347V、tr=2nsなら0.09643Vです。遅いエッジの間に、抵抗を通して電荷が抜ける時間が生じるからです。ただし、これをすべてのノイズの普遍的な法則として使ってはいけません。この結果は、固定された1Vの振幅、線形のエッジ、線形のR·Cという、今回のモデルの中での比較です。
ピーク1つでは足りない理由
高さが同じ2つのパルスも、受信器の敏感な時間区間にとどまる長さは異なることがあります。今回は、|v|>0.15Vである全体の時間を、0–60nsの観測から計算します。サンプルを数えて0.01nsを掛けると、しきい値をまたいだ部分的な区間を捨てることになります。各サンプルの間の電圧を線形補間して、+0.15Vと−0.15Vを通る時点を求める必要があります。たとえば、3nsの間に−0.3Vから+0.3Vに変わるなら、真ん中の半分はしきい値の内側です。両端に先に絶対値を付けると、すべて+0.3Vのように見えて、滞留時間が2倍になります。
観測した時定数は、立ち上がりが終わったあとの、2つの正のサンプルで求めます。tau=(t2−t1)/ln(v1/v2)です。ここでは、エッジの終わり+0.5nsと+1.5nsを使います。時間の差を使うので時間の原点とは無関係で、比を使うので全体の振幅の倍率とも無関係です。値が0だったり大きくなったりする区間や、負の区間を、同じ式に無理に入れてはいけません。この公式は、単一の指数関数的な減衰の仮定に依存します。複数の時定数・計測ノイズがある実物には、回帰と残差の検討がさらに必要で、今回の2点からの逆算は、そうした検証の代わりにはなりません。
現場での姿
Rv=1000Ω、Cc=2pFなら、tau=4nsです。次の立ち下がりのエッジが始まるとき、前の立ち上がりの尾が残っているので、正と負のピークの絶対値が等しくありません。前のパルスを忘れて立ち下がりだけを描いたり、absで符号を消したりすると、この現象を見落とします。小さいRv、小さいCc、遅いエッジを、1つの条件ずつ変えて比べてはじめて、何が改善を生んだのかを説明できます。
学習用の判定は、全体の絶対値のピーク≤0.2Vで、しきい値を超えた滞留≤1nsの場合です。実際のロジック入力・バスの規格ではありません。モデルと元の波形が合っているかを検査するconsistentと、この2つの数値の条件であるmeets_specを、別に記録します。波形を0に変えると、数値は良く見えても、モデルと合わないので、passedはfalseでなければなりません。ngspiceのファイルも実物の測定ではないので、measuredはfalseです。
次のラボですること
定数の計算から始めて、符号付きの波形、正・負の極値、しきい値を超えた滞留、観測した時定数、実際の波形との照合、条件ごとの報告書を作ります。エンジンの実行と表のパースは提供され、入力の設定・回路・生の波形・エンジンのログをあわせて保存します。失敗した条件を、報告書から消しません。
概念の根拠: Analog Devicesの静電容量結合の実験。 その実物の実験の回路と、今回の数値の回路は異なります。実行の文法は、 ngspiceマニュアルを参照します。