Comments
Description
Transcript
スイッチ・レベルの シミュレーション
連 載 設計データ 第8 回(最終回) スイッチ・レベルの シミュレーション 渡辺 玲 によるコンピュータ設計 前回の番外編で話題を一つ積み残して が現在,設計しているプロセッサの設計 求める性能やサイズに収まらないときが しまいました.Verilog-HDLによるスイ フローにもスイッチ・レベルのシミュレ ありました.その場合はどうするかとい ッチ・レベル・シミュレーションの話で ーションは出てきません. うと,トランジスタ・レベルで論理回路 す. そこで,今回は番外編パート2 をお送 りします. スイッチ・レベル・シミュレーション スイッチ・レベルのシミュレーション 昔(十数年前) ,筆者がこの世界に入っ を設計するのです.論理ゲートで設計す た頃は,チップはフルカスタムで作るの るよりトランジスタで設計するほうが自 が普通でした.一部では自動配置配線ツ 由度が高く,より小さくて,またより高 ールが試験的に使われていましたし, 速に動作する論理回路が作れました(図 HDLによる回路の記述も始められていま 1) .とくにデータパスのALUなどは設計 したが,論理合成ツールはまだ研究室で 者の腕の見せどころでした. 評価されている段階でした. Verilog-HDLはそんな時代に産声を上 とは一口に言うと,トランジスタをもっ 当時,ASIC の世界ではゲート・アレ げたので,ビヘイビア・レベルやゲート・ と単純なスイッチに見立てて,論理回路 イが主流でしたが,スタンダード・セル レベルのシミュレーションだけでなく,ト の動作を確認する手法です. が台頭する兆しも見えていました.しか ランジスタ・レベルのシミュレーション し,筆者は汎用LSIを設計していたので, もしっかりとサポートしなければなりま ASIC の世界の動きとはまったく無縁な せんでした. ●時代の流れ 連載本編(第1 回から第6 回まで)でプ 世界に住んでいました. 今は,ASIC だけでなく,汎用LSI も ロセッサを設計する流れ(設計フロー)に その頃の筆者にとってスタンダード・ スタンダード・セルで作る時代です.論 沿って,その各ステップでVerilog-HDL セルとは,あくまで論理ゲートのたんな 理合成ツールや自動配置配線ツールが進 という便利な道具がどのように使われる る「見本」でした.いわゆる雛形です.設 歩し,タイミングもセル・ベースで解析 のかという話をしてきました.そのとき, 計時に,セル内のトランジスタのサイズ するほうがはるかに便利なので,この手 最後にスイッチ・レベル・シミュレーシ を細かく変え,最適化を図る(チューニ 法が好まれます.トランジスタ・ベース ョンの話をしようかどうか迷いました. ングする)のはサイジングと言って回路設 の設計はすっかりすたれました. そして結局,やめました. 計の重要な仕事の一つでした. 老兵はただ去りゆくのみなのでしょう それと言うのも,スイッチ・レベル・ またレイアウト時には,マスク設計者 か?しかし,老兵の昔話に耳を傾けるの シミュレーションは最近ではあまり使わ の人と相談し,セルのレイアウトの形を もたまには良いものだと思います.知識 れなくなった手法だからです.実際筆者 崩して,いかに高密度にシリコン・ダイ のすそ野が広がります.今回は,そんな にトランジスタを詰め込むかといったこ 話です. ともよく検討しました.その当時のマス clk# in0 in1 out ク設計者にとっても,セルはたんなるレ in2 イアウトの「見本」だったのです. in031 ●トランジスタ・レベルとの違い トランジスタ・ベースで論理回路を設 計するのなら,トランジスタ・レベルの ●トランジスタ・ベース設計 〔図1〕 トランジスタ・べ一ス設計の例 80 ところが,それだけ自由度があっても, シミュレーションが必要…といきたいと ころですが,ちょっと待ってください. 15 連載 によるコンピュータ設計 強いバス・ ドライバ 弱いバス・ホールド・セル オーバライド データ コントロール バス 〔図 2〕 バス・ホールド・セル トランジスタの動作を正確に表現する シミュレータにはSpice があります.こ 〔表1〕 信号の強さ 強さ 種類 7 Supply Drive 6 Strong Drive 5 Pull Drive 4 Large Capacitor 3 Weak Drive 2 Medium Capacitor 1 Small Capacitor 0 High lmpedance れはアナログ的なシミュレータです.も 強いバス・ ドライバ データ 弱いプル・アップ オーバライド コントロール バス 〔図3〕 プル・アップ の−0.5乗」 (0.707)にほぼ近い割合で縮小 しています. もしトランジスタの強さを変えないと 仮定すると,W/L 比は一定に保たれるこ のすごく正確に電圧や電流や抵抗をシミ とになります.よってチャネル幅(W)の ュレーションしますが,ものすごく遅い す.Verilog-HDL シミュレータによる のが欠点です. RTLモデルとネットリストのミックス・ ほうもチャネル長(L)と同じ割合で縮小 レベル・シミュレーションはとても便利 されます.この効果を,面積比に換算す で強力でした. ると各世代ごとに面積がほぼ半分(2 −0.5 普通,トランジスタ・ベースで設計し た論理回路の場合,そのクリティカル・ パスの解析はSpiceでやります.しかし, その論理回路全体の動作の試験には, 2 は0.5)になる計算になります. 2.スイッチのモデリング ●信号の強さ Spiceは遅くてとても使えません. そこで考えられたのが,トランジスタ スイッチ・レベルのシミュレーション トランジスタをスイッチでモデリング をスイッチと見なしてシミュレーション ではまずトランジスタをスイッチとして するときに,この強さの違いをうまく表 を行う手法です.論理回路は連続値(つ モデリングする必要があります. せないと,トランジスタの強さに依存し まりアナログ)では表現されないので,ト ランジスタをアンプとして扱う必要はあ りません.基本的にはON/OFF の2 値 て動く回路を正確にシミュレーションで ●トランジスタの強さとは スイッチをモデリングするのに, きなくなります. たとえば,バスをホールドするセル(い (つまりディジタル)で表現されるので, ON/OFF で表すのは,一番簡単な方法 わゆるジャム・ラッチ)があります.弱い トランジスタをたんにスイッチとして扱 です.しかし,実際のトランジスタには トランジスタでバスをホールドしておい えばいいのです. チャネル幅(W)とチャネル長(L)があり, て,強いトランジスタでバスの値を書き W/L のサイズ比が,ON抵抗の違いにな 換えるわけです(図2) .オーバライドす ●Verilog-HDL の登場前後 ります.トランジスタはON 時に抵抗が るわけですが,論理的にではなく,回路 ゼロで,OFF時に抵抗が無限大の理想ス 的に,すなわちトランジスタの力と力の イッチではありません. 勝負でオーバライドされます. Verilog-HDL の普及以前は,スイッ チ・レベルの専用シミュレータが全盛で した.筆者はMOSSIM を使っていまし ON抵抗といっても,I D 対 VD のトラン た.トランジスタ・ベースで作った論理 ジスタ動作曲線を見てもわかるように, シミュレータごとに違 うのですが, 回路を回路図エディタに手作業で入力し, 実際はリニアな抵抗よりもっと複雑な曲 Verilog-HDLでは,信号の強さという概 できた回路図からネットリストを抽出し, 線(ダイオード特性)になります.しかし, 念を導入して,この問題に対処していま それをMOSSIM でシミュレーションし 見積もりをするときなどは,これを直線 す(表1) . て論理回路の動作を確認していました. で近似して,たんなる抵抗と見なします. RTLモデルの検証用には社内製のRTL このON抵抗を,別の言い方で 「トラン モデリングのやり方はいろいろあって, Verilog-HDLでは8種類の信号の強さ が定義されています.たとえば,Strong シミュレータがありました.しかし, ジスタの強さ」と表現します.ON抵抗が Drive(7)の“H”の信号とWeak Drive(3) MOSSIMを走らせる前に,まずこのRTL 小さいほど,トランジスタは強くなりま の “L” の信号がぶつかった場合は,Strong シミュレータでMOSSIM が使う入出力 す.つまり, 「W/L が大きい(チャネル幅 Drive の勝ちで値は“H”になります.先 ベクタを抽出しなければならず,とても が大きくてチャネル長が小さい)→ON抵 のバス・ホールド・セルはこれでちゃん 厄介でした. 抗が小さい→トランジスタは強い」という と表現されます. ところがVerilog-HDLが普及して,こ の面倒な状況は一変しました.Verilog- 関係になります. プロセス技術の進化の歴史は,言い換 ●キャパシタンスやプルアップ HDL シミュレータはRTL モデルでもト えればこのチャネル長(L)が短くなる歴 信号に強さを付けることのメリットは ランジスタを含んだネットリストでも平 史で, 「1.2 μm →0.8 μm →0.5 μm → トランジスタの強さだけではなく,それ 気でシミュレーションすることができま 0.35 μm →0.25 μm」と各世代ごとに「2 で容量(キャパシタンス)の大小やプルア 15 81