Technology Reports 2006

RTL再利用の加速

設計再利用に関する課題

IPの再利用は、Time-to-Marketを大幅に改善し、いくつかのパラメータを簡単に変更するだけで特定のニーズにコードを対応させることができる手法として登場しました。しかし実際には、将来の再利用のための特別なコードを記述する時間は設計エンジニアにはないというのが現実です。その結果、設計チームは既存のRTLコードの再利用、あるいはリサイクルに依存しています。

調査によれば、新規ASIC/FPGA設計の80%は、以前の設計のコードを再利用しています。社内でのRTL再利用がこのように高い割合で行われているにもかかわらず、十分なコード品質を保証し、必要な文書化を行うための時間を開発チームが費やすことはほとんどなく、RTLの再利用はファイルの寄せ集めと2、3人の中心的なエンジニアの記憶にたよっているのが現状です。その結果、コードの完成度と現在のアプリケーションへの適用可能性を理解し、既存のコードを応用するか、新しく書き直すかを決定するためだけのコード解析に貴重な開発期間が費やされているのです。今必要とされているのは、再利用の候補となっているRTLを評価し、理解するためのプロセスを高速化し、自動化するための手法です。

HDL Designerの登場

メンター・グラフィックスのHDL Designerは複雑なASICおよびFPGA設計に取り組む開発チームの生産性を強化する、包括的なVerilog/VHDL設計環境です。HDL Designerは開発チームの「再利用すべきか否か」という重要な決断を支援するために開発されました。コードを再利用するという決断を行った場合には、HDL Designerは問題箇所を素早く発見し、またコードの理解と、特定アプリケーションへの適用を支援する環境となります。

再利用すべきか否か

 再利用の対象となるRTLコードを評価し、理解するプロセスを自動化する手法は、「設計整合性の解析」、「コード品質の評価」、「設計の視覚化」という3つの主要な工程から構成されます。このプロセスが完了した後、最後の工程である「知識と文書の共有」により、再利用の解析から得られた結果をこのコードを設計に再利用したい次の設計者に渡します。この3段階による手法を社内の設計プロセスに取り入れることにより、より確実なRTL再利用と生産性の向上が期待できます。

設計整合性の解析

既存のコードが再利用可能かどうかを評価するように提示されたエンジニアは、ただいくつかのファイルを受け取るだけの場合があります。ドキュメンテーションが存在しない、標準に従ったコード記述でない、階層構造が不明、場合によってはファイルが足りないということもあります。構文エラーがないか、不足ライブラリや不足ファイルがないかを調べるためだけに、設計をコンパイルしてシミュレータにかけてみるという面倒で時間のかかる作業を行う代わりに、HDL  Designerは、数分間で自動的に設計階層を把握し、構文エラーをハイライト表示し、不足しているあるいは孤立している部分を提示します。この情報を元に、エンジニアはコードの完成度を素早く理解すると同時に、整合性の観点からどこに欠陥があるのかを理解することができます。

コード品質の評価

対象コードの品質に対して主観的な評価に頼るのではなく、HDL Designerは選択されたデザインルール・セットに基づいてコードを解析します。HDL Designerには標準で、RMM(Reuse Methodology Manual rev. 3.0)ならびにXilinx、Alteraのデザインルール・セットが含まれています。さらに、HDL Designerはカスタムのルール・セットもサポートしており、社内のRTLコーディング基準に合わせて簡単に変更することが可能です。

図1.標準化されているルールに基づく客観的なスコアリング図1.標準化されているルールに基づく客観的なスコアリング

 図2.RTLの視覚化による設計構成および設計意図の把握 図2.RTLの視覚化による設計構成および設計意図の把握

図3.知識と文書の共有化支援図3.知識と文書の共有化支援

設計の視覚化

既存のコードを新しい設計に適用すると決定した後は、まずコードを解析してその構造と動作を理解しなければなりません。

理解のためには視覚化が重要です。HDL Designerは設計のトポロジやユーザーの選択に応じて、さまざまな視覚化を行うことができます。たとえば、階層をブロック図として、ステートマシンをバブルチャートとして、手続き型コードをフローチャートとして表示したり、設計全体を IBD(Interface Based Design)のスプレッドシート形式として表示することが可能です。これらのビューはコードを変更するたびにダイナミックに更新され、設計のドキュメンテーション・パッケージの一部として簡単にエクスポートすることができます。(図2)

知識と文書の共有

HDL Designerはその直感的なユーザー・インタフェースやバッチ・スクリプトなどによってあらゆる設計フローのサポートが可能であり、設計チームは実用的な設計再利用戦略を適用し、プロジェクトのスケジュールや予算に及ぼすマイナスの影響を回避することができます。

RTL再利用の加速

HDL Designerはその直感的なユーザー・インタフェースやバッチ・スクリプトなどによってあらゆる設計フローのサポートが可能であり、設計チームは実用的な設計再利用戦略を適用し、プロジェクトのスケジュールや予算に及ぼすマイナスの影響を回避することができます。

HDLアウェアな設計ユーティリティの開発

HDL Designerには様々なAPIが用意されており、TCL環境からAPIならびに機能に対応付けされたコマンドをコールし、これらを組み合わせることで、バッチ処理が可能な新たなユーティリティとして、HDL設計のさまざまな工程でプロセスの自動化、作業の簡略化、容易化を行うことができます。今回の「再利用を加速する」手法も、バッチ化することができます。その他、HDLファイル群を読み込み、すべてをスプレッドシード形式化しエクセル形式に出力することも、あるいは毎日決められた時間にプロジェクトの設計データをすべてHTMLにグラフィカル出力させることも可能です。