IBIS ファイルから、ドライバの出力抵抗と立ち上がり時間を読む

データシートの「出力抵抗 約10Ω」は代表値が1つだけです。IBIS ファイルには typ/min/max 3コーナー分の V-I テーブルがそのまま入っていて、原点近くの傾きを読むだけで、コーナーごとの Ro とダンピング抵抗の当たりが付けられます。

最終更新: 2026-09-23 IBIS出力抵抗立ち上がり時間ダンピング抵抗伝送線路

IBIS は「測定済みの実測データ」がそのまま入っている

IBIS(I/O Buffer Information Specification)は、SPICE モデルの代わりに、ドライバの出力段を V-I テーブルと立ち上がり時間のテーブルとしてテキストで渡す規格です。データシートの「出力抵抗 約10Ω」「立ち上がり時間 1ns」は代表値が1個だけですが、IBIS ファイルにはほぼ必ず typ/min/max の3コーナーぶんのテーブルが入っていて、プロセスばらつきの端まで数字で追えます。

このサイトの IBIS波形シミュレータ は、ファイルの [Pulldown]/[Pullup]/[Ramp] などをそのまま読み込み、パッケージや配線、終端まで含めた過渡解析をして送受端の波形を出します。本記事の数字は、そこに「デモモデルを試す」ボタンで読み込める demo_cmos33.ibs(3.3V CMOS の合成モデル。実在デバイスではありません)を使って、実際の値で計算しています。ファイルはテキストなので、エディタで開いて照らし合わせながら読むのがおすすめです。

この記事で扱うのは、IBIS ファイルの中でも実務で数字を拾うことが多い5つのキーワードです:[Component]、[Model]、[Pulldown]/[Pullup]、[GND_Clamp]/[POWER_Clamp]、[Ramp]。

IBISファイルの骨格[Component] の下に [Package] と [Pin] があり、各ピンが指す [Model] の中に [Pulldown]/[Pullup]/[GND_Clamp]/[POWER_Clamp]/[Ramp] が入る。赤枠は電圧軸が Vcc 基準のテーブル。 IBISファイルの骨格 1つの物理ピンに1つの [Model] がぶら下がる [Component] DEMO_CMOS33 [Package] R_pkg / L_pkg / C_pkg (typ/min/max) [Pin] signal_name / model_name R_pin, L_pin, C_pin(ピンごと) [Model] DEMO_OUT_33 Model_type = Output [Pulldown] typ/min/max V = V(pin) 基準 [Pullup] typ/min/max V = Vcc−V(pin) [GND_Clamp] V = V(pin) 基準 [POWER_Clamp] V = Vcc−V(pin) [Ramp] dV/dt(20-80%) R_load=50Ω 赤い枠([Pullup]/[POWER_Clamp])の電圧軸だけ Vcc 基準。読み違いの多くはここで起きる。 typ/min/max は、この5つの表すべてで同じ強さ・速さのコーナーを指す。
図1:IBIS ファイルの骨格。[Component] の下に基板ランドまでの寄生([Package])とピン対応表([Pin])があり、各ピンが指す [Model] の中に V-I テーブルとタイミング情報が入っている。赤枠は電圧軸が Vcc 基準になっているテーブル。

ファイルの骨格:Component → Pin → Model

[Component] の下には [Package] と [Pin] がぶら下がります。[Package] は基板のランドからダイまでの寄生を typ/min/max の3組で持つ表で、demo_cmos33.ibs では R_pkg = 0.060Ω、L_pkg = 2.50nH、C_pkg = 0.35pF(typ)です。[Pin] は、ピン番号ごとに signal_name・model_name・そのピン固有の R_pin/L_pin/C_pin を並べた表で、「このピンはどの [Model] を使うか」の対応表になっています。

[Model] の中に、実際に読みたい V-I テーブル([Pulldown]/[Pullup]/[GND_Clamp]/[POWER_Clamp])と、立ち上がり時間の情報([Ramp]、モデルによっては [Rising Waveform]/[Falling Waveform])が入っています。Model_type が Output/I-O ならドライバの特性、Input なら Vinh/Vinl としきい値だけ、という違いも押さえておくと迷いません。

typ/min/max の意味と、Pullup の罠

typ/min/max は「抵抗の公差」ではなく、プロセス・電源電圧・温度をまとめた3つの動作コーナーです。min 列は電流が小さい、つまり弱く・遅いドライバ、max 列は電流が大きい、つまり強く・速いドライバを表します。この「弱い/強い」の対応は、同じファイル内の [Pulldown]・[Pullup]・[Ramp]・[GND_Clamp] すべてで揃っているのが IBIS の約束事です。ある表の min 列と別の表の min 列が違うコーナーを指す、ということは起きません。

読み違えやすいのが、電圧軸の基準です。[Pulldown] と [GND_Clamp] の電圧はピンの電圧そのもの(GND 基準)ですが、[Pullup] と [POWER_Clamp] の電圧は Vcc − V(pin) で書かれています。Vcc が違う電源電圧でも同じ形の表を使い回せるようにするための書式ですが、そのまま「V(pin) = 1.0V のとき I = −62mA」と読むと符号も値も外れます。実際にこのサイトの IBIS シミュレータでも、Pullup の電流は I(Vcc − V(pin)) という形で評価しています。

たとえば demo_cmos33.ibs の DEMO_OUT_33 の [Pullup] には、表の電圧 1.0V の行に I(typ) = −61.96mA とあります。Vcc = 3.3V なら、これは ピン電圧 2.3V のときに 61.96mA を吐き出しているという意味です。表の電圧をそのままピン電圧だと思うと、電流の大きさも符号も取り違えます。

Pulldown の V-I テーブルから Ro を読む

出力抵抗 Ro は、V-I テーブルの原点近くの接線の傾きから読みます。1点だけを選んで V ÷ I をやってはいけません。[Pulldown] のテーブルは、低い電圧では FET が線形領域(三極管領域)にいて抵抗のようにふるまいますが、電圧が上がるにつれて飽和して電流の伸びが鈍る、非線形な曲線だからです。

demo_cmos33.ibs の DEMO_OUT_33・[Pulldown]・typ 列で確認します。V = 0.1V で I = 9.09mA なので、Ro ≒ 0.1V ÷ 9.09mA ≒ 11.0Ω。これが小信号での Ro です。同じ表の V = 3.3V(フルスイング)では I = 123.1mA なので、V ÷ I をそのまま計算すると 26.8Ω になります。同じ typ コーナーの同じ表なのに、読む場所によって Ro が2.4倍違って見えるのは、Pulldown が非線形だからです。「Ro」と呼んでよいのは原点近くの接線の傾きだけで、大振幅での電圧降下を見積もるときはテーブルをそのまま補間して使う必要があります。

min/max 列でも同じように原点近くの傾きを取ると、Ro_min(弱い・遅いコーナー)≒ 13.7Ω、Ro_max(強い・速いコーナー)≒ 9.0Ωになります。同じ型番の同じピンでも、コーナーによって Ro が1.5倍変わるということです。

Pulldown / Pullup の V-I カーブPulldown typ/min/max と Pullup typ の V-I カーブ。原点付近の接線の傾きが Ro。大振幅側で傾きが寝る(非線形)。 Pulldown / Pullup の V-I カーブと Ro 原点近くの接線の傾き = Ro。1点の V÷I ではない 0V 0.5V 1V 1.5V 2V 2.5V 3V 3.3V 0mA 20mA 40mA 60mA 80mA 100mA 120mA 140mA 160mA ピン電圧 V(pin) Ro_typ ≒ 11.0Ω Ro_typ ≒ 14.0Ω Pulldown typ min(弱い・遅い) max(強い・速い) Pullup typ Pulldown: 0.1V で 9.09mA(typ)→ Ro ≒ 11.0Ω。3.3V では V÷I が 26.8Ω に見えるが、これは非線形の見かけ上の値。 Pullup: 表の電圧は Vcc−V(pin)。0.1V(ピン電圧 3.2V)で 7.15mA(typ)→ Ro ≒ 14.0Ω。
図2:Pulldown(typ/min/max)と Pullup(typ)の V-I カーブ。原点近くの接線の傾きが Ro。大振幅側でカーブが寝てくる(電流の伸びが鈍る)のが非線形の見え方。

typ/min/max のコーナーと、そこから決まる立ち上がり時間

[Ramp] は dV/dt_r(立ち上がり)と dV/dt_f(立ち下がり)を「電圧の変化量 / その時間」の形で、typ/min/max ごとに持っています。IBIS のこの区間は振幅の20%〜80%で測ったものと決まっているので、dt の値をそのまま20-80%の立ち上がり時間 trとして使えます(0-100%のフルスイングの時間は、目安として tr ÷ 0.6 です)。測定条件として R_load(多くは 50Ω)も書かれており、これは実際の配線インピーダンスではなく測定用の基準負荷です。

demo_cmos33.ibs の DEMO_OUT_33・[Ramp] は dV/dt_r = 0.980/1.05E-9(typ)、0.720/1.85E-9(min)、1.180/0.72E-9(max)。dt をそのまま読むと、typ で 1.05ns、弱い・遅いコーナー(min 列)で 1.85ns、強い・速いコーナー(max 列)で 0.72ns です。Pulldown で Ro が小さかった(強い)コーナーが、Ramp でも edge が速い(max 列)コーナーになっていて、コーナーの対応が表をまたいで一貫しているのが確認できます。

DEMO_OUT_33 のコーナーごとの Ro・立ち上がり時間・臨界配線長(1/6 ルール、FR-4 マイクロストリップ tpd = 6.5ps/mm)
コーナーRo(原点接線)t_r(20-80%、[Ramp]の dt)臨界配線長
弱い・遅い(min 列)13.7Ω1.85ns47mm
typ11.0Ω1.05ns27mm
強い・速い(max 列)9.0Ω0.72ns18mm

立ち上がり時間から臨界配線長へ

配線が伝送線路として扱われるかどうかの境目は、配線は何mmから「伝送線路」になるかで説明した臨界長 ℓ = tr ÷ (6 × tpd) で決まります。[Ramp] から得た tr をここに代入するだけで、その IBIS モデルに固有の臨界長が出ます。

上の表のとおり、同じピンでもコーナーによって臨界長が18mmから47mmまで2.6倍動きます。配線長を決めるときは、typ の 27mm ではなく、いちばん厳しい(速い)コーナーの 18mm を基準にしてください。18mm 以下に収まらない配線には、反射への対策(終端かダンピング抵抗)が要ります。

[Ramp] の dV/dt と立ち上がり時間[Ramp] の dV/dt_r はそのまま 20-80% の立ち上がり時間。コーナーによって t_r が変わり、臨界配線長も変わる。 ① 弱い・遅いコーナー(min 列)dV/dt_r = 0.720V/1.85ns → t_r(20-80%) = 1.85ns ② typ コーナーdV/dt_r = 0.980V/1.05ns → t_r(20-80%) = 1.05ns ③ 強い・速いコーナー(max 列)dV/dt_r = 1.180V/0.72ns → t_r(20-80%) = 0.72ns 0% 20% 80% 100% 時間 1.85ns 1.05ns 0.72ns 臨界配線長(1/6ルール) t_r = 1.85ns ℓ ≒ 47mm 弱い・遅いコーナー基準 t_r = 1.05ns ℓ ≒ 27mm typ 基準 t_r = 0.72ns ℓ ≒ 18mm 強い・速いコーナー基準(最厳) ℓ = t_r ÷ (6×t_pd) t_pd = 6.5ps/mm(FR-4 マイクロストリップ) 配線長は、いちばん厳しい(速い)コーナーの臨界長を基準に決める。typ の27mmで安心してはいけない。
図3:[Ramp] の dV/dt はそのまま 20-80% の立ち上がり時間。コーナーによって t_r が0.72〜1.85nsまで変わり、そのぶん臨界配線長も18〜47mmまで動く。

ダンピング抵抗 Rs = Z0 − Ro を決める

配線が臨界長を超えるなら、いちばん簡単な対策は送端の直列終端(ダンピング抵抗)です。Rs = Z0 − Ro になるように選び、Rs と Ro の合計を配線の特性インピーダンス Z0 に合わせます。Z0 = 50Ω、Ro_typ = 11.0Ω なら Rs = 39.0Ω。E96 系列に 39.2Ω があるので、そのまま実装できます。

問題は、Ro がコーナーで 9.0〜13.7Ω まで動くのに対して、実装できる Rs は1つの固定値だということです。typ 基準で Rs = 39Ω を選ぶと、強い・速いコーナー(Ro = 9.0Ω)では Rs + Ro = 48.0Ω < Z0 となり、送端が低抵抗側にずれます。受端(開放に近い入力)での反射で電圧が最終値を約2%超え、その反射がもう一度送端で反射して、小さなリンギングとして残ります。逆に弱い・遅いコーナー(Ro = 13.7Ω)では Rs + Ro = 52.7Ω > Z0 となり、最初の一段が最終値の約97%までしか届かず、階段状に2段目でようやく収束する、過減衰側の波形になります。

ノイズ耐性を優先するなら、いちばん Ro が小さいコーナー(強い・速い)でも Rs + Ro ≥ Z0 になるように Rs を決めるのが安全です。この例なら Rs = Z0 − Ro_max = 50 − 9.0 = 41Ω を選べば、全コーナーでオーバーシュートが出ません。代わりに弱い・遅いコーナーでの階段(過減衰)が少し深くなりますが、ringing よりは実害が小さいことがほとんどです。

ダンピング抵抗と受端波形Rs を typ 基準の固定値にすると、Ro がコーナーで動くぶん受端波形は過減衰(階段状)〜整合〜アンダーシュート/リンギングの間で変わる。 ① 弱い・遅いコーナー:過減衰(階段状)Ro=13.7Ω、Rs=39Ω → Rs+Ro=52.7Ω>Z0。最初の一段は最終値の約97%、2段目で収束 ② typ コーナー:ほぼ整合Ro=11.0Ω、Rs=39Ω → Rs+Ro=50.0Ω≒Z0。1回でほぼ最終値に到達 ③ 強い・速いコーナー:アンダーシュート気味のリンギングRo=9.0Ω、Rs=39Ω → Rs+Ro=48.0Ω<Z0。最終値を約2%超え、小さく振動しながら収束 最終値 時間 0% 50% 100% Rs+Ro=52.7Ω>Z0=50Ω(過減衰) Rs+Ro=50.0Ω≒Z0=50Ω(整合) Rs+Ro=48.0Ω<Z0=50Ω(過小終端) 安全側に振るなら、いちばん Ro が小さいコーナーでも Rs+Ro≥Z0 になるように Rs を選ぶ(例:Rs=41Ω)。
図4:Rs を固定したまま Ro がコーナーで動くと、受端波形は過減衰(階段状)〜整合〜アンダーシュート/リンギングの間を行き来する。強い・速いコーナーでオーバーシュートが出ないように Rs を決めるのが安全側。

Pullup 側の Ro と、非対称なドライバ

[Pullup] の側でも、Vcc に近い端(表の電圧が 0V 付近)で同じように接線を引けば Ro が読めます。demo_cmos33.ibs の DEMO_OUT_33・[Pullup]・typ では、表の V = 0.1V(ピン電圧では 3.2V)で I = −7.15mA なので、Pullup 側の Ro_typ ≒ 14.0Ω。Pulldown 側の 11.0Ω より少し大きく、H を出すときと L を出すときで Ro が違う非対称なドライバだと分かります。

H 出力と L 出力でダンピング抵抗の最適値が微妙に違う、という場合はここが原因です。厳密にやるなら Rs は Pulldown 側・Pullup 側それぞれの Ro で計算し、実害が大きい方(多くは反射が症状として見えやすい、速いエッジの側)に合わせます。

Pullup/POWER_Clamp テーブルの電圧軸Pullup/POWER_Clamp の電圧はピン電圧ではなく Vcc−V(pin) で書かれている。テーブルの V=1.0V は、Vcc=3.3V ならピン電圧2.3Vを指す。 ① テーブルの電圧:Vcc から測る[Pullup]/[POWER_Clamp] の V は Vcc − V(pin)。表の V=1.0V は Vcc からの下がり幅 ② 実際のピン電圧に直すとV(pin) = Vcc − V(表) = 3.3 − 1.0 = 2.3V。電流の符号もこの向きで読む Vcc = 3.3V GND = 0V ピン電圧 2.3V 表の V = 1.0V V(pin) = 2.3V [Pullup] の行: V(表) = 1.0V I(typ) = −61.96mA そのまま読むと誤り: 「V(pin) = 1.0V のとき −61.96mA」 → 符号も電圧も違う 正しい変換: V(pin) = Vcc − V(表) = 3.3 − 1.0 V(pin) = 2.3V のとき 61.96mA を吐出 (GND基準の Pulldown/GND_Clamp は V(表) がそのまま V(pin)) このサイトの /ibis/ でも Pullup 電流を I(Vcc−V(pin)) として評価している。 Vcc が違う電源電圧でも同じ形の表を使い回せるようにするための書式。Pulldown/GND_Clamp は最初から GND 基準なので変換は不要。
図5:[Pullup]/[POWER_Clamp] の電圧軸は Vcc 基準(V = Vcc − V(pin))。表の V = 1.0V は、Vcc = 3.3V ならピン電圧 2.3V を指す。

注意:Ro とタイミングだけでは決まらないもの

  • C_comp:[Model] の C_comp(demo_cmos33.ibs の DEMO_OUT_33 で typ 3.00pF)は、ダイの容量として Ro と並列に効く負荷です。配線のトレース容量やコネクタの容量と合算しないと、実際のエッジはテーブルの Ramp よりも鈍ります。
  • パッケージの L_pkg:[Package] の L_pkg(typ 2.50nH)は、電流が速く変わるほど効きます。DEMO_OUT_33 の typ コーナーで、Pulldown 電流がフルスイング(0→123mA)まで 1.05ns で変化すると仮定すると、L_pkg による電圧降下は V = L × dI/dt ≒ 2.5nH × (0.123A ÷ 1.05ns) ≒ 0.29V。3.3V 振幅の約9%にあたり、単純な Ro だけのモデルでは説明できないオーバーシュートやリンギングの一因になります。
  • [Ramp] の R_load:Ramp の dV/dt は、指定された R_load(多くは50Ω)を負荷にしたときの測定条件です。実際の配線の Z0 がこれと大きく違う(25Ωや100Ωなど)場合、立ち上がり時間はテーブルの値から多少ずれます。厳密に見たいなら、Pulldown/Pullup の V-I テーブルと C_comp、パッケージの RLC まで含めて過渡解析するしかなく、それがこのサイトの IBIS波形シミュレータ がやっていることです。

まとめ:実務でのチェックリスト

  • Ro は Pulldown/Pullup の V-I テーブルの原点近くの接線の傾きから読む。1点の V ÷ I や、データシートの代表値をそのまま使わない。
  • [Pullup] と [POWER_Clamp] の電圧軸は Vcc − V(pin) 基準。[Pulldown] と [GND_Clamp] はピン電圧そのもの。
  • typ/min/max は、同じファイル内のすべての表で同じ強さ・速さのコーナーを指す。min 列と max 列、どちらが厳しいかは見る指標(信号品質か、タイミングマージンか)で変わる。
  • [Ramp] の dt はそのまま 20-80% の立ち上がり時間として使い、臨界配線長 ℓ = tr ÷ (6 × tpd) に代入する。基準にするのはいちばん速いコーナー。
  • ダンピング抵抗は Rs = Z0 − Ro で決め、いちばん Ro が小さいコーナーでも Rs + Ro ≥ Z0 になっているか確認してから固定値に決める。
  • C_comp・パッケージの RLC・[Ramp] の R_load 条件まで含めて波形で確認したい場合は、IBIS波形シミュレータ に実ファイルを読み込んで見るのが早い。

よくある質問

IBIS の Ro は、データシートの「出力抵抗」の値と同じになりますか。
近い値にはなりますが、一致するとは限りません。データシートの1個の数字は、多くの場合ある1点(VCC/2付近や規定電流など)から計算した代表値で、測定条件やコーナーが明記されていないことも多いです。IBIS の Pulldown/Pullup テーブルから自分で原点近くの接線を引けば、どの条件でのRoかが明確になり、min/maxコーナーの値も同時に手に入ります。
min と max、信号品質にとって厳しいのはどちらのコーナーですか。
何を見るかで変わります。反射・オーバーシュート・リンギングのような信号品質には、Ro が小さくエッジが速い「強い・速い」コーナー(多くの場合 max 列)が厳しくなります。逆にセットアップ/ホールドなどのタイミングマージンには、エッジが遅い「弱い・遅い」コーナー(多くの場合 min 列)が厳しくなります。同じ設計でも、見ている指標によって効くコーナーが逆になる点に注意してください。
[Ramp] が無く、[Rising Waveform]/[Falling Waveform] しか無いモデルはどう扱いますか。
波形テーブル(電圧・時間の実測カーブ)があれば、そこから20-80%の時間を直接読み取れば十分で、むしろ [Ramp] より情報量が多く、立ち上がりが単純な指数カーブでない場合もそのまま表現できます。両方とも無いモデルは立ち上がり時間が不明なので、他の同系統モデルの値で見当をつけるか、メーカーに確認するしかありません。
配線の Z0 が [Ramp] の R_load(50Ω)と大きく違う場合、立ち上がり時間はどれくらいずれますか。
目安としては[Ramp]の値をそのまま使ってよいですが、正確ではありません。Ramp の測定はその R_load を負荷にした条件での結果なので、実際の負荷インピーダンスが大きく違う(25Ωや100Ωなど)と、Ro による電圧分割が変わってエッジの実効的な速さも変わります。正確に見たい場合は、Pulldown/Pullup の V-I テーブルと C_comp、パッケージの RLC から実際の負荷条件で過渡解析するしかなく、それがこのサイトの IBIS波形シミュレータの役割です。
Ro のコーナー差が大きいドライバでは、ダンピング抵抗をどう選べばいいですか。
固定抵抗1本で全コーナーを完全に最適化することはできないので、優先順位を決めます。ノイズ耐性(オーバーシュートで絶対最大定格を超えない)を優先するなら、いちばん Ro が小さいコーナーで Rs + Ro ≥ Z0 になるように選びます。信号の速さ(遅延・スキュー)を優先するなら typ 基準にします。ばらつきが特に大きい場合は、実装時に抵抗値を選べるように、フットプリントを2〜3種類の値に対応させておくと後から調整できます。

参考にした規格・資料

  • IBIS Open Forum, I/O Buffer Information Specification (IBIS) — [Component]/[Model]/[Pulldown]/[Pullup]/[GND_Clamp]/[POWER_Clamp]/[Ramp] の書式、Pullup・POWER_Clamp の電圧軸が Vcc 基準であることを規定
  • IBIS Open Forum, The IBIS Cookbook — Ro の読み方、typ/min/max コーナーの考え方、Ramp の使い方など実務向けの解説

← コラム一覧へ