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

 EDA(electronic design Automation)とは,電子機器(システム)やLSI(チップ)の設計および検証を自動化したり,支援する技術をいう。この技術を具現化したのがEDAツールである。さらに複数のEDAツールを統合して,一連の設計作業を扱えるようにしたのがEDAシステムである。EDAの標準は,EDAツール間や設計者の間における設計情報やデータのやりとりを促進したり,EDAツールの統合を容易にするなどのために,策定されている。

 電子機器やLSIの典型的な設計フローを図1に示す。フローは,システム・レベル設計からスタートする。ここでシステム全体の機能(function)と制約(constraint)からなる仕様(specification)が決められる。次に,この仕様の妥当性を解析(validation)する。解析は,機能面,性能面,およびテスト容易性の観点で行われる。


(画像のクリックで拡大)

 仕様の解析が完了すると,具体的な設計に移る。主に性能面の解析を行いながら,設計は進む。まず,システム全体をハードウェア部とソフトウェア部へ分割して,ハードウェア部の実装設計(implementation design)を行う。ハードウェア部の実装設計では,各設計工程で機能検証と最適化を実施し,最後に製造工程で使うデータを出力する。

 このEDA用語辞典では,EDA関連の標準を二つに分けて説明している。すなわち,(1)設計言語(design language)の標準と,(2)フォーマット(format)とモデリング(modeling)の標準である。以下では,(1)の設計言語の標準,について説明する。(2)は,「フォーマット・モデリングの標準化」の項目として紹介する。

IEEEやIECで標準化

 ここでは,IEEEやIEC(International Electrotechnical Commission:国際電気標準会会議)ですでに標準化された設計言語と,現在検討中の候補を中心に、それらの成り立ちと特徴について説明する(図2)。設計言語は大きく二つに分類できる。すなわち,「Verilog HDL」に代表されるRTL(register transfer level)のハードウェア記述言語(hardware description language:HDL)と「SystemC」に代表されるシステム・レベル記述言語である。


(画像のクリックで拡大)

 どちらの設計言語も,設計対象の機能を記述できることに加えて,記述結果を直接シミュレーションすることで機能検証が可能になっている。多くの設計言語はシミュレーション言語としてスタートし,その後,自動合成可能なサブセットが定義されている。さらに,高度な検証方法論に基づいてテストベンチ記述やアサーション記述,プロパティ記述に対応できるように拡張される。

 この進展の過程をRTLのHDLで見てみる。「VHDL」とVerilog HDLは共にシミュレーション言語として出発し,その後,それぞれに合成サブセットが定義されている。さらにVerilog HDLには,高度な検証機能が追加されて,「SystemVerilog」に進化した。

 また,システム・レベル記述言語では,SystemCはシステム・レベル(ESL:electronic system levelと呼ぶのが一般的)のシミュレーション言語として出発した。現在,自動合成可能なサブセットの標準化とトランザクション・レベルでの検証モデルの標準化が検討されている。

 設計言語のIEEE標準化が集中した時期は,おおむね1995年,2000年,2005年と,5年ごとに訪れていた。これは新しい設計手法が普及する周期の5年とも一致する。2010年には,ESLの合成と検証に関する規格が標準化されることを期待したい。

VHDLは米国防省が開発

 次に,三つのRTL HDLを紹介する。

(i)VHDL(VHSIC hardware description language)

 VHDLは米国防省が開発した。VHSIC(Very High Speed Integrated Circuit)という技術開発プロジェクトの中で,ハードウェアの記述方法を共通化する必要があり,VHDLは生まれた。1980年から検討が始まり,1988年にIEEE std. 1076として標準化された。

 その後1993年と2002年の2回,改訂されている。また,VHDLは1997年にIEC標準にもなっている。IEEEの2002年改訂版が,IECの最新の標準規格(IEC std 61691-1-1)である。

 VHDLには,複数の従属規格がある。以下にこれらを示す。
(a)RTL Synthesis:論理合成可能なRTL記述のサブセット。
(b)VHDL-AMS:アナログとミックスト・シグナル向け拡張仕様。
(c)VITAL:ASIC(application specific integrated circuit)向けのモデリング仕様。
(d)MVL:標準信号値の定義。
(e)Math Package:算術演算用パッケージ。
(f)Synthesis Package:合成用パッケージ。

(ii)Verilog HDL

 Verilog HDLは,米Gateway Design Automation Corp.が,同社の論理シミュレータ用に開発した。1980年代中ごろに登場し,その後OVI(Open Verilog International)と呼ぶ業界団体(現在のAccellera)で標準化の検討が進んだ。そして,1995年にIEEE Std. 1364として標準化された。

 2001年に改訂されていて,これが2004年にIEC標準(IEC std. 61691-4)となっている。VHDLと同様に,Verilog HDLにも従属規格がある。合成可能なサブセットは標準化されている。アナログとミックスト・シグナル向け拡張仕様の「Verilog-AMS」は,現在Accelleraが標準化作業を進めている。

(iii)SystemVerilog

 SystemVerilogは,Verilog HDLの拡張版(スーパーセット)で,ハードウェア検証記述言語が統合されている。2001年に米Co-Design Automation, Inc.が,自社の論理シミュレータ用の言語「Superlog」をAccelleraに寄贈したことがきっかけとなって生まれた。2002年には米Synopsys, Inc.が検証機能向け言語「OpenVera」をAccelleraに寄贈して,標準化の動きが加速した。そして2005年にIEEE std. 1800として標準化された。

SystemCはSynopsysらが開発

 次に,三つのシステム・レベル記述言語を紹介する。

(I)SystemC

 SystemCは,Synopsysらが開発した。1999年に発足した非営利団体のOSCI(Open SystemC Initiative)で標準化の検討が進み,2005年にIEEE std. 1666として標準化された。SystemCは,プログラム言語のC++のクラス・ライブラリで,それ自体で言語として独立した文法は持っていない。システムやハードウェアの仕様も純然たるソフトウェアとして記述し,C++という一つの環境下で設計検証とハードウェアへの実装ができることがメリットとなっている。

(II)Rosetta

 Rosettaは,EDA Industry Councilで策定の検討がスタートした。その作業をAccelleraが引き継いだ。現在は,大学などで研究用のシステム・レベル仕様言語として使われている。また,IEEEに標準化のためのワーキング・グループが発足した。

(III)Esterel

 Esterelは,パリ国立高等鉱業学校(Ecole des Mines de Paris)を中心に1980年代初めに開発が始まった。複雑なリアルタイム・システム向けの同期型プログラム言語であり,制御系の設計に適した言語である。開発は仏Esterel Technologies S.A.で継続されている。Esterel v7をIEEE標準にするためのワーキング・グループが作業を進めている。