Xilinx(ザイリンクス)は、4年にわたる開発と1年間のベータ版での検証を経て、Vivado Design Suiteの提供を、今夏のパブリックアクセスを目前にまずはアーリーアクセスプログラムの参加ユーザー向けに開始しました。Vivadoは、ICレベルでの設計ツールの枠を超えた、システムレベルの高い統合デザイン環境を提供し、ツール間でメモリ共有が可能な拡張モデルと共通のデバッグ環境をベースに構築されています。また、業界標準であるAMBA AXI4インターコネクトやIP-XACT IPパッケージメタデータ、Tool CommandLanguage(TcL)、Synopsys Design Constraints(SDC)などを基盤に構築されているため、ユーザーのデザインニーズを汲み取ったオープンな環境を提供します。Vivado Design Suiteは、あらゆるタイプのプログラマブルテクノロジのデザインに最適化されているだけでなく、1億ゲートASIC相当のデザインへのスケールアップも実現できるように構築されている。
最先端のEDAテクノロジと手法をベースに開発された新しいツールスイートが登場。デザインの生産性と性能の向上をもたらし、チップ数を抑えた高度なシステム開発を短期間で実現するVivado Design Suite |
ザイリンクスのコーポレートストラテジおよびマーケティング担当シニアバイスプレジデント、Steve Glaserは「この4年間でザイリンクスは、プログラマブルロジックおよびI/Oの枠を超え、ソフトウェアでのプログラマビリティを持つARMサブシステムから3D IC、アナログミックスドシグナルまで、プログラマビリティ性を大きく拡張したAll Programmableデバイスの開発、提供を行う企業へと革新しました。業界で数々の賞を受賞したZynq-7000エクステンシブルプロセッシングプラットフォームデバイスや3Dスタックドシリコンインターコネクト(SSI)テクノロジを採用したVirtex-7デバイスなど世界的に最先端のFPGA製品とともに新しいレベルのプログラマブルシステムインテグレーションを可能にしました。そして今、Vivadoによって、ユーザーが来る10年におけるこれらのAll Programmableデバイスを使ったデザインを行う際の生産性を飛躍的に向上させる最先端ツールスイートを提供します」と述べています。
ザイリンクスはAll Programmableデバイスを開発しましたが、ユーザーはこれらデバイスを使用することで、新しいレベルのプログラマブルシステムのインテグレーションが可能になり、BOMコストの削減や総システム消費電力の低減だけでなく、引いてはデザインの生産性向上が実現し、より早く製品の市場投入ができるようになります。ザイリンクスにとってこの実現に必要だったのは、インテグレーションおよびインプリメンテーションにおける尽きることのないボトルネックに対応できる、All Programmableデバイスと同様に革新的な設計ツールスイートを開発することだったとGlaserは指摘しています。
Glaserはインテグレーションに伴う問題として、(1)C言語およびRTL(Register-TransferLevel)レベルのアルゴリズムIPのインテグレーション、(2)DSPやエンベデッド、コネクティビティ、ロジックの混在、(3)ブロック単位およびシステム全体の検証、(4)デザインおよびIPの再利用、を挙げています。インプリメンテーションに関しては、(1)階層的なチッププランニングとパーティショニング、(2)マルチドメインおよびマルチダイの物理的な最適化、(3)複数変数「デザイン」対「タイミング」クロージャ、(4)設計後半のECO(Engineering Change Order)および変更による波及的な影響、などをボトルネックとしてあげています。新しいVivado Design Suiteは、これらボトルネックを解消し、ユーザーがAll Programmableデバイスを使用したシステムのインテグレーションにおいてその性能を最大限に活かせるよう強力なツールスイートを提供します。
ザイリンクスは、Vivado Design Suiteを開発するにあたり、業界標準規格を積極的に活用すると共に、最先端のEDAテクノロジと設計手法を採用しました。この結果、高度に自動化したプッシュボタンフローを求めるユーザーから、自身で細部にわたって調整を行いたいと考えるユーザーまで、あらゆる設計者が利用できるツールスイートが完成しました。しかも、これまでの使い慣れた直感的なルックアンドフィールはそのままで最先端のEDA環境を利用でき、ザイリンクスの最も大規模なデバイスでさえも、従来よりもはるかに短時間で効率的に設計することができます。
Vivado Design Suiteは、長い間主要なデザインツールとして提供されてきたISE Design Suiteの機能をはるかにしのぐ、システムレベルの完全なプログラマブル機能を備えた最新のツールセットです。7シリーズFPGAやそれ以前のザイリンクスFPGAデバイスを使用したユーザーデザインのスムーズな移行を支援するために、ザイリンクスは今後もISEの開発とサポートを無期限かつ継続的に提供する予定です。近い将来、7シリーズFPGA以降のザイリンクスデバイスをすべてサポートするVivado Design Suiteが主要なデザイン環境となるでしょう。
ザイリンクスのデザインメソドロジマーケティング担当シニアディレクター、Tom Feistは、Vivado Design SuiteのISEからの優位性は実際に使用してみればすぐに体感できると話しています。
「Vivado Design Suiteは競合ツールに比べランタイムが4倍に向上しているほか、SystemVerilog、SDC、C/C++/SystemC、ARM社のAMBA AXIバージョン4インターコネクト、インタラクティブなTcLスクリプトなどの業界標準規格を採用しており、ユーザーの生産性が大きく向上します。その他の特長として、Vivadoでは数多くのレポートやデザインビューを提供しており包括的なクロスプローブが実行できたり、最先端のグラフィックスを利用して容易にIPの統合ができたりします。特に見逃せないのは、C++からHDLへの高位合成をFPGAベンダーの市販ツールとして初めて完全サポートした点です」(Feist)。
次世代プログラマブルデザインに向けたツール
ザイリンクスがISE Design Suiteを発表したのは1997年のことでした。このツールスイートには、1995年4月にザイリンクスが買収したNeoCAD社の当時としては極めて画期的なタイミングドリブンの配置配線エンジンが使用されていました。その後の15年間、FPGAで実行可能な機能が次第に複雑化していくのに合わせ、ザイリンクスはISE Design Suiteに多言語対応の合成/シミュレーション、IPの統合、そして編集機能やテスト機能など、さまざまな新技術を追加し、デザインツールとしての機能を全面的に改良してきました。ザイリンクスは、新しいVivado Design Suiteの開発にあたり、ISEで培った経験を最大限に活かし、ISEの主要な技術を引き継ぎつつも最新のEDAアルゴリズム、ツール、手法を積極的に取り入れたとFeistは述べています。
「Vivado Design Suiteは今日のデザインの生産性を大幅に高めると同時に、20nm以降のシリコンで課題となる容量とデザインの複雑性にも容易に対応できる拡張性を備えています。EDAテクノロジはこの15年間で飛躍的な進歩を遂げてきました。Vivado Design Suiteはまったくゼロから開発されているため、最新のEDAテクノロジや標準規格への対応も万全で、当面のデザインに対応可能な優れた拡張性を備えたツールに仕上がっています」(Feist)。
確定的なデザインクロージャ
一般に、FPGAベンダーが提供する統合設計ツールは、物理インプリメンテーションフロー(合成、フロアプランニング、配置、配線、電力/タイミング解析、最適化、ECO)が中心となって構成されています。Vivado Design Suiteでは最先端のインプリメンテーションフローが構築されているため、短期間でデザインクロージャを達成できます。
スケーラブルなデータ構造アーキテクチャ
ザイリンクスは、設計の反復を削減して全体的な設計期間を短縮し、総合的な生産性を高めるために、実メモリ上でスケーラブルなデータ構造を共有するインプリメンテーションフローを構築しました。このフレームワークは、現在最先端のASICデザイン環境でも一般的に採用されているものです。「実メモリ上でスケーラブルなデータ構造を共有することで、合成、シミュレーション、フロアプランニング、配置配線などデザインフローの各段階においてインメモリのデータ構造で動作させることができます。このため、各設計プロセスでデバッグと解析が行え、ユーザーはタイミング、消費電力、リソース使用率、配線密集などのデザインの評価に不可欠な値をかなり早い段階で測定できます。これらの予測値は、インプリメンテーションの工程が進むにつれて精度が増していきます」(Feist)。
単一のデータ構造を共有することによる特に大きな利点として、新しい多次元解析型配置配線エンジンを、Vivado Design SuiteのRTL合成エンジンや新しい多言語シミュレーションエンジン、IP Integrator、Pin Editor、Floor Planner、Device Editorなどの各ツールと密接に連携できるようになったことが挙げられます。Vivado Design Suiteの包括的なクロスプローブ機能を利用することで、回路図やタイミングレポート、ロジックセルの問題に対してさまざまなビューに切り替えてHDLコードにまでさかのぼって追跡とクロスプローブが行えます。
「各設計プロセスで解析ができるようになっただけでなく、それらすべてのプロセスが相互につながっています。合成後のフローでも、各プロセスでタイミング、消費電力、ノイズ、リソース使用率を解析することができます。タイミングや消費電力の目標を達成できていないことが早い段階で明らかになれば、配置配線後に設計の反復を何度も繰り返すことなくより短い時間で設計の見直しが可能で、問題解決に向けて早めに手を打つことができます」(Feist)。
スケーラブルなデータ構造によって緊密な連携が実現したことにより、なるべく多くの作業を自動で実行したいと考えるユーザーに対しては、より効果的なプッシュボタンフローを提供できるようになったとFeistは述べています。同時に、あらゆる設計プロセスでデザインをきめ細かく制御するユーザーへは、高度な解析機能やコマンドも用意されていると付け加えています。
階層型のチッププランニングと高速合成
Vivado Design Suiteにはデザインを複数に分割する機能を提供しており、大規模なプロジェクトを複数のチームで分割して合成およびインプリメンテーション、検証を分割統治法で行うことができるとFeistは説明しています。新しいデザイン保持機能によりタイミング結果の再現性が維持され、デザインのパーシャルリコンフィギュレーションも可能です。
Vivado Design Suiteには、数百万ロジックセルに対応したまったく新しい合成エンジンも搭載されています。この合成エンジンで特に注目されるのが、SystemVerilogサポートの強化です。「Vivadoの合成エンジンはSystemVerilog言語の合成可能サブセットへの対応がほかのどの市販ツールよりも充実しています」(Feist)。このエンジンはISE Design Suiteに含まれるXST(Xilinx Synthesis Technology)の3倍高速で、デザインの面積とサイズの大まかな見積もりを短時間で得られる「クイック」オプションもサポートしています。このため、RTLまたはゲートレベル回路図でのデバッグに必要な時間が1/15に短縮されます。また、多くのASIC設計者がプログラマブルプラットフォームへ移行するなか、ザイリンクスはVivadoフロー全体でSynopsys Design Constraintsを採用しています。この業界標準規格を採用することで新たなレベルでの自動化が可能になり、制約の生成、クロックドメイン間のチェック、フォーマル検証、あるいはSynopsys社が提供するPrimeTimeなどのツールを利用したスタティックタイミング解析(STA)など、業界最先端のEDAツールを使用してさまざまなタスクを実行できます。
多次元解析に対応した配置エンジン
これまでFPGAベンダーが提供してきた旧世代のデザインツールスイートには、シミュレーテッドアニーリング(SA)アルゴリズムを使用した1次元のタイミングドリブン配置配線エンジンが使用されてきたとFeistは説明しています。これらのエンジンは、ツールがロジックセルを配置する場所をランダムに決定します。このような配線エンジンでは、ユーザーがタイミングを入力すると、可能な限りタイミング要件が満たされるようSAアルゴリズムが擬似的に機能を配置します。「以前はデザインの規模がかなり小さく、ロジックセルが遅延の最大要因であったため、こうした方法でも十分通用していました。現在ではデザインの複雑化とシリコンプロセスの微細化により、インターコネクトと配線密度がはるかに大きな遅延の要因となっています」(Feist)。
SAアルゴリズムに基づく配置配線エンジンは100万ゲート未満のFPGAであれば問題ありませんが、「それ以上の大規模なデザインになると対応できなくなります。100万ゲートを超えると配線密度の問題が大きくなるだけでなく、結果予測性も著しく低下します」(Feist)。
ザイリンクスは、数百万ゲート時代の到来を見据え、多次元解析に対応した最新の配置エンジンをVivado Design Suite用に開発しました。これは、数百万ドルクラスのASICの配置配線ツールに採用されているエンジンに匹敵するものです。このエンジンは、デザインを解析してタイミング、配線密度、配線の長さの3つの要素が最小となる解を見つけます。「Vivado Design Suiteのアルゴリズムは、SAで使用される局所探索法ではなく、デザイン全体を考慮してタイミング、配線密度、配線の長さが同時に理想値となるような大域的最適化を実行します。この結果、1,000万ゲートのデザインでも短時間で確定的に配置配線が行え、一貫して優れた設計結果が得られます(図1参照)。3つの要素について同時に解を求めることができるため、フロー全体で設計の反復も削減されます」(Feist)。
ザイリンクスは、このエンジンの優位性を立証するため、Zynq-7000 EPPエミュレーションプラットフォーム用の非常に大規模で複雑なRTLデザインを用意し、ISE Design SuiteとVivado Design Suiteの両方のプッシュボタンモードでテストを実施しました。ターゲットのデバイスは、どちらのツールも、ザイリンクスの最大規模FPGAデバイスである、SSIを利用したVirtex-7 2000T FPGAを指定しました。実験の結果、120万ロジックセルの配置にかかった時間はVivado Design Suiteの配置配線エンジンで5時間、ISE Design Suiteバージョン13.4で13時間でした(図2)。Vivado Design Suiteのインプリメンテーションについては、密集度(図2の写真で灰色と黄色の部分)がはるかに少なく、全体的な配線長も短いため面積も抑えられています。また、メモリのコンパイル効率に優れているため、デザインで必要なメモリをインプリメントするのに必要な容量がISE Design Suiteの16GBに対し、Vivado Design Suiteでは9GBでした。
「Vivado Design Suiteはすべての制約を満たしつつデバイスの3/4の面積でデザイン全体をインプリメントできました。つまり、ユーザーは(残りの1/4のスペースに)さらに多くのロジックファンクションやオンチップメモリを追加するか、あるいはより小型のデバイスへ移行するかを選択できます」(Feist)。
消費電力の最適化と解析
消費電力の削減は、今日のFPGAデザインにおいて最も重要な課題の1つです。そこで、Vivado Design Suiteでは高度な消費電力最適化手法を利用してユーザーデザインの消費電力をさらに削減できるようにしています。「Vivado Design Suiteは現在最先端のASICツールスイートで採用されているものと同等の高度なクロックゲーティング手法を使用しており、デザインのロジックを解析してクロックゲーティングを適用することで、不必要なスイッチング動作を取り除くことができます。この新しいテクノロジで特に着目しているのが、スイッチング動作のα係数です。ダイナミック消費電力については最大30%の削減が可能です。これはISE Design Suiteで昨年採用したものと同じテクノロジですが、今後はVivadoで継続的に改良されていくことになるでしょう」(Feist)。 さらに、実メモリ上でスケーラブルなデータ構造を共有可能なVivado Design Suiteは、デザインフローの各段階において消費電力を予測できるため、アップフロント解析を実行してデザインの初期段階で問題のある部位を修正できるとFeistは説明しています。
ECOの簡略化
インクリメンタルフローでは、小規模な変更であればデザインを部分的に再度インプリメントするだけで簡単に処理できるため、変更後の設計の反復が短時間で完了するという利点があります。しかも段階的な変更ごとのパフォーマンスをインクリメンタル方式で維持することができるため、設計の反復を何度も繰り返す必要がありません。Vivado Design Suiteでは、定番のISE FPGA Editorを拡張したVivado Device Editorを提供していますが、これを使用することでこれを実現します。配置配線済みデザインでVivado Device Editorを使用すると、インスタンスの移動、ネット配線の変更、スコープでデバッグするための主要出力へのレジスタ追加、DCM(Digital Clock Manager)やLUT(Lookup Table)のパラメーター変更といったECO(Engineering Change Order)が設計段階の終盤に発生しても、合成やインプリメンテーションをやり直す必要がありません。これほどの柔軟性を備えたFPGAデザイン環境はほかにないとFeistは述べています。
フローの押し付けではなく、自動化を目指す
ザイリンクスのツール開発チームは、Vivado Design Suiteの開発にあたり、ツールがフローを押し付けるのではなく、フローの自動化を図ることを目指しました。「C、C++、SystemC、VHDL、Verilog、SystemVerilog、MATLAB、Simulinkなど、ユーザーがどのような形から設計を開始しても、またザイリンクスのIPを使用しているかサードパーティ提供のIPを使用しているかにかかわらず、自動化されたフローによってユーザーの生産性が向上します。さらに、スキルレベルや好みがユーザーによって異なることも考慮に入れました。プッシュボタンフローを好むユーザーもいれば、設計段階ごとに独自で解析を行いたいとするユーザーもいます。また、GUIは初心者向けと考えてあらゆる処理をコマンドラインまたはTcLを使用したバッチモードで実行しようとするユーザーもいます。このツールスイートは、あらゆるユーザーニーズに応えられる柔軟性の高い機能を各種提供しています」(Feist)。
IP Packager、IP Integrator、Extensible IP Catalog
ザイリンクスのツール開発チームは、IPの作成や統合、アーカイブをサポートする専用のIP機能を追加することを最重要目標としてVivado Design Suiteの開発にあたりました。こうして用意されたのが、IP Packager、IP Integrator、Extensible IP Catalogと呼ばれる3つのIP機能です。
「現在では、IPをまったく含まないICはほとんど存在しません。業界標準規格を採用し、IPの作成、統合、アーカイブ/保守管理をサポートする専用のツールを提供することで、エコシステムのIPベンダーやユーザーが短期間でIPを作成し、デザインの生産性を向上できるようサポートしています。既に20社以上のベンダーからこの新しいツールスイートに対応したIPが提供されています」(Feist)。
IP Packagerを利用することで、ザイリンクス製品のユーザーやIP開発者、エコシステムパートナーは、あらゆる設計段階(RTL、ネットリスト、配置済みネットリスト、配置配線済みネットリスト)でデザインの一部または全体を再利用可能なIPコアに変換できます。このツールで作成したIPはIP-XACT形式で記述されており、将来のデザインに容易に組み込むことができます。IP Packagerは、各IPのデータをXMLファイルで定義します。そして、このツールで作成したIPは、IP Integratorを使用してデザイン全体に組み込むことができるとFeistは解説しています。
「IP Integratorでは、IPをピンレベルでなくインターコネクトレベルでデザインに統合できます。IPをデザインにドラッグアンドドロップすると、IP Integratorはまずそれぞれのインタフェースに互換性があるかどうかをチェックします。互換性チェックが完了したら、コア間を1本の線で結ぶだけですべてのピンを接続した詳細なRTLが自動的に作成されます」(Feist)。
IP Integratorを使用し、たとえば4、5個のブロックをデザインにマージした場合、「(そのプロセスの)出力を再びIP Packagerに戻すことができます。すると、その結果はほかのユーザーが再利用できるIPになります。しかもこのIPに変換できるのはRTLだけではなく、配置済みネットリスト、または配置配線済みIPネットリストブロックも可能で、統合や検証にかかる時間がさらに短縮されます」(Feist)。
3番目のツール、Extensible IP Catalogは、ユーザーが自身で作成したIPや、ザイリンクスまたはサードパーティベンダーによってライセンス付与されたIPから独自の標準レポジトリを構築するためのツールです。このカタログはIP-XACT規格の要件を満たすように開発されており、設計チームだけにとどまらず企業内全体でIPの管理が容易にできるようになり、組織全体でIPを共有することができます。Feistによると、Vivado Extensible IP CatalogにはザイリンクスのSystem GeneratorとIP Integratorが含まれているため、ユーザーはカタログに登録したIPにアクセスしてそれをデザインプロジェクトに容易に組み込むことができるといいます。
Vivadoプロダクトマーケティング担当ディレクターのラミネローン(Ramine Roane)は、「これまでは、サードパーティのIPベンダーがIPをzipファイルに圧縮し付属品として提供していましたが、これらの新しいツールを使用すればVivado Design Suiteと互換性のある統一フォーマットで提供され、すぐにIPを利用できます」と述べています。
ESLの普及に弾みをつけるVivado HLS
今回リリースされたVivado Design Suiteに搭載された数多くの新技術で最も将来を見据えたものは、2010年のAutoESL社買収によってザイリンクスが実現したVivado HLS(高位合成)です。ザイリンクスは市販のESL(Electronic System-Level)デザインツールを広範に評価し、結果業界最高のツールを手に入れるにいたりました。この買収を決定する上でザイリンクスが参考にしたのが、調査会社BDTI社によるレポートでした(詳細は、XcellJournal71・72合併号「DSP中心のFPGAデザインへの高位合成フローの使用をBDTIが評価」を参照)。
「VivadoHLSはC、C++、SystemCを包括的にカバーしており、浮動小数点に加えて任意精度の浮動小数点(演算)も行います。つまり、一般的なハードウェア環境ではなくアルゴリズム開発環境でもこのツールが使用できることを意味します。このレベルで開発したアルゴリズムは、RTLレベルよりも相当短い時間で検証が行えるという利点があります。これは単にシミュレーション時間が短縮できるというだけでなく、アルゴリズムの実現可能性を十分に検討した上で、スループットやレイテンシ、消費電力のトレードオフをアーキテクチャレベルで行えるということにもつながります」(Feist)。
VivadoHLSはさまざまな機能を幅広い用途で提供していますが、ここでは、ユーザーがIPを開発してそれをデザインに組み込む際に利用できる一般的なフローを紹介します。
まず、ユーザーがC、C++、SystemCを使用してデザインを記述し、希望する動作を記述したCテストベンチを作成します。次に、GNU Compiler Collection/G++またはVisualC++シミュレータを用いてデザインのシステム動作を検証します。ビヘイビアーデザインの機能検証が完了し、付随するテストベンチを修正したら、Vivado HLSで合成を実行してVerilogまたはVHDLのRTLデザインを生成します。RTLの生成後、デザインのVerilogまたはVHDLシミュレーションを実行するか、Vivado HLS上でCラッパーテクノロジを使用してSystemCバージョンを作成するかを選択します。次に、SystemCアーキテクチャレベルのシミュレーションを実行し、先に作成したCテストベンチを基準にしてデザインのアーキテクチャ上の動作と機能をさらに検証します。
デザインが確定したら、Vivado Design Suiteの物理インプリメンテーションフローを使用してデザインをデバイスにプログラムし、ハードウェアで動作させます。あるいはIP Packagerを使用してデザインを再利用可能なIPに変換し、IP Integratorを用いてこのIPをデザインに組み込むか、またはSystem Generatorで動作させます。
このフローはVivado HLSの1つの使用例に過ぎません。Xcell Journal79号(英語版)では、アジレント・テクノロジーのNathan Jachimiec氏とザイリンクスのFernando Martinez VallinaがVivado HLSテクノロジ(ISE Design Suiteフローでの名称はAutoESLテクノロジ)を使用してアジレント社のUDPパケットエンジンを開発した経緯を紹介した記事を掲載しています。
Vivadoシミュレータ
ザイリンクスは、Vivado HLSに加え、VerilogとVHDLをサポートした新しい混在言語シミュレータをVivado Design Suite向けに開発しました。ユーザーはマウスを1回クリックするだけでビヘイビアーシミュレーションを開始し、その結果をVivadoで提供している波形ビューアで確認できるとFeistは解説しています。パフォーマンスが最適化された新しいシミュレーションカーネルの採用により、シミュレーションはビヘイビアーレベルで高速に実行でき、動作速度はISimの最大3倍に達します。ゲートレベルでのシミュレーションについても、ハードウェア協調シミュレーションを使用して最大100倍の高速化を実現しています。
2012年の供給体制
ISE Design Suiteではデザインのタイプに応じて4種類のエディション(Logic、Embedded、DSP、System)が用意されていましたが、Vivado Design Suiteは2種類のエディションで提供されます。基本となるDesign Editionには、合成からビットストリーム生成までのフローに加え、新しいIPツールが含まれます。一方、System EditionにはDesign Editionのすべてのツールのほかに、System Generatorと新しいVivado HLSが含まれます。
Vivado Design Suiteバージョン2012.1は現在、アーリーアクセスプログラムの一環として提供されています。第2四半期中頃にはバージョン2012.2が一般ユーザー向けに提供開始される予定で、WebPACKも年内での提供を予定しています。現在ISE Design SuiteEditionを使用してサポートを受けているユーザーは、ISEに加えてVivado Design Suiteの各エディションを追加でライセンス費用を支払うことなく使用できます。
28nm世代よりも前のデバイスをターゲットとする設計者向けには、ISE Design Suiteを継続して開発およびサポートしていく予定です。Vivado Design Suiteの詳細については、japan.xilinx.com/design-toolsを参照してください。
著者紹介
Mike Santarini
Publisher, Xcell Journal Xilinx, Inc