改訂版EDA用語辞典とは・著者一覧

 LSI設計の世界では,プロトタイピングは,主に二つの技術を指す。一つは,実チップの機能をFPGA(field programmable gate array)などの仮想の環境で実現する技術である。これで,アプリケーション・ソフトウェアやドライバ・ソフトウェアの早期開発を図る。もう一つのプロトタイピングは,Siチップのインプリメンテーションの可能性を設計工程の早い段階に見積もる技術である。以下では,後者を解説する。

従来は二つのツール

 従来,プロトタイピングでは,次の二つのEDAツールが主に使われていた。バック・エンド設計向けの「フロアプランナ」(floorplanner)とフロント・エンド設計向けの「デザイン・プランナ(design planner)」(RTLフロアプランナ,RTLデザイン・プランナとも言う)である。

 フロアプランナは,配置配線工程に近いステップで,配置配線工程を担当するエンジニア(バック・エンド設計者)が使うツールとして浸透している。このツールを使って,チップ上に論理機能を配置する場所を決める。具体的には,各論理機能を実現するブロックの寸法を求める。次に,タイミングを考慮しながら,チップ上にデッド・スペースが残らないようにブロックを配置(フロアプラン)する。

 一方デザイン・プランナは,論理設計者(RTL設計者やフロント・エンド設計者)が,設計初期のRTL(register transfer level)設計段階に使う。具体的には,(1)レイアウトを考慮したタイミング・面積・消費電力などの見積りや,(2)論理合成やレイアウトに使用するタイミングや面積制約の割り振り(デザイン・バジェット),(3)RTLの最適化を行う。

 ただし,このデザイン・プランナはあまり使われていなかった。そのユーザーである論理設計者の多くは,チップのインプリメンテーション設計(バック・エンド設計)時に考慮すべき,物理的な制約を熟知していないからである。このため,論理設計者がデザイン・プランナを用いて検討・最適化した結果と,フロアプランナを用いてバック・エンド設計者が最適化したチップのインプリメンテーション結果が,全く異なってしまっていた。

微細化で新たなツールが必要に

 ところが半導体製造プロセスが65nm,45nmと微細化するにつれて,プロセス・バラつきが大きくなり,論理設計者も,物理的な制約を知らずして,設計の最適化が難しくなってきた。例えば,タイミングの最適化である。従来は,ベスト/ワースト・コーナーのように,回路全体に一括してタイミング・マージンを与えればよかった。

 それが最近は,チップ上の位置によって与えるマージンを変える必要が出てきた。その原因の一つが,OCV(on chip variation)やLOCV(location based OCV)といわれているバラつきである。こうした要因を背景にして,論理設計者向けに新たなプロトタイピング用ツールが必要になってきた。

 そのツールを論理設計の段階で使って,必要十分な物理的要因(すなわち,チップ・インプリメンテーションで考慮すべき項目)を踏まえて,チップの大きさや消費電力,タイミングなどを同時に予測する。そしてその予測結果から,RTL記述の最適化や,設計制約であるSDC(Synopsys Design Constraint)の整合性確認・最適化,電源遮断論理の挿入,あるいは,CPF(Common Power Format)/UPF(Unified Power Format)の記述・確認などを実行する。これでレイアウト設計が進んだ段階で,設計の大幅な変更をしなくても良くなり,設計全体の効率化を図れる。

複数の機能を提供

 プロトタイピング・ツールの主な機能は以下の通りである。

(1)フロアプラン(概略配置)

 RTL設計の段階で,上位論理階層および下位論理階層のブロック配置,ブロック間の概略配線を行う。このうち,ブロック配置では,配置のほかにブロック形状やピン配置の最適化を実行する。フロアプランでは,仕様しか決まっていないブロックはブラック・ボックスとして配置できる。

 フロアプラン機能は,対話型と自動型がある。前者では,ユーザー自身がブロックを配置したり,形状を変更できる。後者の自動型では,ツールがすべて処理する。折衷タイプもある。すなわち,自動型の結果を対話的にユーザーが修正できる。なお自動型には2種類があり,一方はデッド・スペース最小化の観点でブロックを配置する。もう一方は,データ・フローを考慮して最適化する方法である。

(2)各種特性の予測・見積もり

 タイミングや面積の予測・見積もりでは,二つの手法が使われてきた。一つは精度を犠牲にして,処理の高速化に重きを置いた方法で,簡便な論理合成(quick synthesis)を利用する。もう一つは,RTL記述の構文を解析して,汎用ライブラリにマッピングして見積もる方法である。

 最近,論理クラスタ(演算器やマルチプレクサなどの論理の集まり)の最適化と,クラスタ内の最適化との二段階で論理合成を行うことで,論理合成の精度を維持したまま,高速化を実現するツールが出現している。

 また,消費電力の見積もり機能を備えたツールも一般的になってきた。RTLの入力とフロアプランの結果から,各ブロックの消費電力とIRドロップ値を見積もる。

(3)デザイン・バジェット

 デザイン・バジェットでは,フロアプランの結果と,上位論理階層のブロックのタイミングや面積などの見積もり結果を参照して,下位論理階層のブロックにタイミングや面積の制約を割り振る。

 その際,レイアウトを考慮したカスタム・ワイヤ・ロード・モデルを生成する機能が従来のツールでは重要だった。最近は,論理合成ツール自体がフロアプラン(レイアウト・トポロジ)を認識し,ワイヤ・ロード・モデルなしで最適化を進める。このため,SDCの最適化がより重要になっている。

(4)RTL階層の最適化

 レイアウト設計にとって,最適な階層を構成する機能である。この機能が必要なのは,論理設計者がRTL設計時に,機能設計の都合で決めた論理分割・階層化が,必ずしもレイアウトに最適とは限らないからである。大規模設計では,設計者の作業分担に基づいて論理が分割される場合も多い。

 こうしたレイアウトにとって最適でない分割・階層化は設計全体に大きな影響を与える。その悪影響を抑えるには,レイアウトを考慮しながら論理階層を再構成し,最適なレイアウト階層を生成したり,データ・パス・ブロックを分離したりする。

 最近は,RTL設計より以前のアーキテクチャ設計(ブロック分割やバス構造,トップ階層の配線トポロジなどを決定する工程)の段階でも使える,階層最適化機能が登場してきた。

(5)クロス・プロービング

 市販のプロトタイピング・ツールの多くでは,上記の各種機能の結果と入力データ(RTL,SDCなど)との間でクロス・プロービング機能(それぞれの情報を動的にリンクして,まとめて表示できる機能)を提供している。この機能によって,論理設計者が期待の結果が得られなかった原因を解析することが容易になる。

開発期間短縮などの効果

 次に,上述したプロトタイピング・ツールを使うことで,LSIの設計がどのように改善するかを説明する。

(a)設計の繰り返し数が削減されて,開発期間が短縮

 性能予測や見積もりなしにタイミングや面積の問題点を解消するためには,論理合成やレイアウト設計を何度も繰り返して実行したり,場合によってはRTL設計にまで戻って修正する必要がある。これを防ぐには,RTL設計時の予測やRTLの最適化が重要である。これで無駄に設計を繰り返すことがなくなる。

(b)大規模LSIの分割設計が容易に

 LSIの回路規模が大きくなると,設計をブロックごとに進めたり,1つのブロックを複数の設計者が分担する場合が多くなる。そのため,ブロックや分割した各モジュールに対して,制約を設定する必要がある。単体では動作するが,まとめると動作しなくなるという事態を避けるためだ。

 プロトタイピング・ツールを使用し,チップ・インプリメンテーション上の制約を考慮しつつ,設計の早い段階で1チップの動作を予測し,設計を収束させることを狙う。

(c)IPコア・ベースの設計が容易に

 プロトタイピング・ツールでは,論理設計が終ったIPコア,論理設計が全くされていないIPコア,部分的に論理設計が済んでいるIPコアなど,設計段階の異なるIPコアを扱える。このため,IPコア・ベースの設計が容易に進められるという効果が期待できる。チップ・レベルでの大まかな構成を決めれば,プロトタイピング・ツールが高精度な見積もりを行いながら,各種のトレードオフを考慮して,最適なアーキテクチャを得られる。