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

 トランザクション・レベル・モデリング(transaction level modeling:TLM)とは,ハードウェア設計やシステム設計における,ブロック間のデータ転送のモデリング手法をいう。TLMでは,個別の制御信号の動きを厳密にモデリングするのではなく,リードやライトといった基本的な転送単位に着目して,RTL(register transfer level)より高い抽象度でモデリングする。このとき,それぞれの転送処理の単位を「トランザクション」と呼ぶ。具体的には,アドレスとデータ,リード/ライト命令,データ長,バースト長などの情報を一括して送る。これで高速な論理シミュレーションが可能になる。

 TLMはプラットフォーム・ベース設計の中核技術で,ハード・ソフト協調設計や,ハードウェアの性能評価/検証,ソフトウェア開発用のバーチャル・プロトタイピングなどに適用される。

 TLMの定義では通信のデータや時間を抽象化するが,実際に使われる際にはデータの抽象化も同時に実施するのが一般的である。三つの抽象化を行うことで,TLMの効果をより発揮できるようになる。

ハード・ソフト協調検証を高速化

 従来のRTLやゲート・レベルの論理シミュレーション環境では,ブロック間でデータを転送する際,要求信号や受付信号,データ転送長など,多数の信号を制御する必要がある。例えば,送信側は,まず要求信号を"1"にし,受信側の受付信号が"1"になるまで待つ。その後,データ長を表現する信号を設定して,受信側の処理終了信号が"1"になるごとに転送する。

 このように実際の動作を厳密にモデリングすると,一回の転送ごとに多数の処理が必要になり,論理シミュレーション速度の低下を招く。一方ハード・ソフト協調設計環境では,ソフトウェアのモデルからメモリー等のハードウェア側のモデルに対して膨大な量の読み書き要求が発生する。このとき,ハードウェア側を抽象度の低いRTLでモデリングすると,RTLシミュレーションの速度が足を引っ張り,全体の速度が低下する。

 これに対してTLMでは,抽象化したデータやアドレスなどの情報を一括して転送することから,RTLに比べて10~1000倍以上の高速なシミュレーションが可能になる。最近になってSystemCやSystemVerilogでTLMに向けた言語体系が整備されたことで,それに対応したEDAツールが市場に投入された。

 バスを持つ大規模なSoC(system on a chip)の設計から,TLMやそのツールが適用されるようになった。なお,TLMの概念そのものの歴史は意外に古く,特にコンピュータ・メーカーやプロセサ・メーカーはそれぞれ独自のTLM環境を構築・利用していることが多い。

用途によって時間精度を使い分ける

 上述したように,TLMでは,データ,アドレスなどの情報をある程度まとめて転送する。とくにバースト転送の場合などには,なるべく数多くのデータを一度にまとめて転送した方が,シミュレーションが高速になる。半面,時間精度が下がる場合もある。時間精度が要求される場合には個別に転送するか,あるいは一括して転送しておいて,別途タイミングを調整するという手法を採る。

 TLMの時間精度に関しては,概ね次のようなレベルがある。すなわち,精度の粗い順から,「時間の概念を最小限に抑えたレベル」,「概略的な時間レベル」,「バス・サイクル・レベル」,「RTLと等価なクロック・レベル」である。

 ソフトウェア開発用のバーチャル・プロトタイピングに適用する場合には,時間の概念を最小限に抑えたレベル,設計初期段階におけるハードウェアの性能評価の場合には概略的な時間レベル,ハードウェアの検証の場合にはバス・サイクル・レベルといった具合に使い分けが必要になる。

ソフトウェアも使い分ける

 ハードウェアをTLM化する場合,ソフトウェアのモデリングの抽象度を検討する必要がある。設計の初期段階では,ソフトウェアの疑似モデルを作成し,ハードウェアのTLMと接続する。中期から後期では,実際のファームウエアを用いる。

 ソフトウェアにしろ,ハードウェアにしろ詳細設計の前段階に擬似モデルを開発することが一般的である。この疑似モデルは,詳細設計の際のリファレンス・モデルになるだけではなく,テストベンチの作成など,検証環境の構築にも応用できる。このため,双方の設計者に数多くのメリットがあり,設計期間全体の短縮につながる。

TLMの標準化が進む

 SystemC言語は,TLMに必要な,「複数モデル間における通信機能」や,「インターフェースと実装の分離」などをサポートする。これらの基本機能を用いて,各EDAベンダーやIPプロバイダはそれぞれのプロトコルに応じた独自のトランザクション・レベル(TL)のAPI(application programming interface)を開発してきた。また,バスの標準化団体の一つである「OCP-IP(Open Core Protocol International Partnership Association, Inc.)」は,OCPに準拠したSystemCのTLのAPIを時間,データの抽象度ごとに整備していった。

 しかし,各社が独自のAPIを使用してIP(intellectual property)コアのモデル開発を進めてしまうと,モデル間の相互運用性(インターオペラビリティ)が損なわれてしまう。そのため,SystemC標準化団体の「OSCI(Open SystemC Initiative)」は,TLの標準API(現在はTLM 2.0)を提案し,各社がそれに対応したモデルやEDAツールを開発している。

 また,SystemVerilogでは,「mailbox」などの機能を用いて,TLに対応したモデリングを実現するための言語体系が提案されている。なおSystem VerilogのTLMは,主にハードウェアの検証を目的にする。