IDEとは、統合開発環境(Integrated Development Environment)の略称です。プログラマーにとって、開発環境とは、コードの記述や管理に使用するツールやインターフェースを指します。「統合」という言葉は、高品質なソフトウェアの作成を支援するための追加機能やツールが組み込まれていることを意味します。これらの機能を1つのプラットフォームに統合することで、IDEは開発プロセスの効率化と生産性の向上に貢献します。
IDEに共通する機能には、次のようなものがあります:
HDL(ハードウェア記述言語)は、半導体設計やモデルを記述・検証するために使用されます。この目的で一般的に使用される言語には、SystemVerilog やVHDLがあります。SystemVerilog は、設計指向のVerilog言語を起源としていますが、時間の経過とともに多くの検証技術が追加されました。現在のSystemVerilog には、以下の機能が含まれています:
HDLの記述における課題の一つは、この言語のあらゆる分野に精通している必要があるという点です。さらに、SystemVerilog コンポーネントで使用されるVHDL言語には、独自の構文があります。
SystemVerilog また、VHDLはコンパイル型言語として知られています。つまり、これらはリアルタイムで解釈され、即座に実行される動的言語ではありません。言語のコンパイルが必要なため、これらの言語を用いた設計では、IDEによって完全に検証できるよう、設計を効率的に生成するための高度なエンジンが必要となります。
1. プロジェクトの可視性の向上
コードにどれだけの違反の可能性が存在するかを把握することは、コードを改善するための第一歩です。例えば、 シノプシス Euclide IDEは、グラフィカルユーザーインターフェース(GUI)上で、また必要に応じてバッチテキスト形式でも、コーディング上の問題をさまざまな重大度別に分類した問題レポートを生成します。これにより、チームはコード品質向上の取り組みを測定するための明確な指標を得ることができます。
2. コード補完の予測精度の向上
コード違反の「バーンダウン」(減少状況)を時系列で追跡することで、経営陣はコード違反の解消に向けた進捗状況を把握することができます。コードの問題が時間の経過とともに満足のいくペースで減少していない場合、チームはコードの改善に向けた取り組みを強化する必要があるかもしれないという認識を持つことができます。
3. コードの統一性の向上
どのチームも、コードの書式やコーディングスタイルのルールについて合意することを望んでいますが、それらのルールを自動化、分類、および強制するためのツールがなければ、コードベースの統一は困難です。コードの統一性が欠如していると、ドキュメントの作成や再利用、さらにはコードの可読性さえも損なわれる可能性があります。
4. 本番コードへの移行までの時間の短縮
コーディングにおけるベストプラクティスを確保するためのシステムは、コード入力時に適用されるのが最も効果的です。そうすることで、ユーザーはコードを記述したその瞬間に改善を加えることができます。シミュレーション、形式検証、さらには合成といった開発の downstream ツールがコードの問題を検出するのを待つことは、開発者にとって非効率的であり、修正のための反復作業に余計な時間を要することになります。IDE を利用すれば、ファイルを保存しなくても、コードの記述中にそのコードを監査することができます!
5. より高品質なコード
コーディングの問題は、最も単純な形では、その言語の構文違反です。テストベンチやRTLにおけるコーディングミスは、早期に発見すればするほど、修正が容易かつ迅速になります。そうでない場合、構文違反を修正するには、まず設計をコンパイルしてコードの問題を特定する必要があります。シノプシス VCS®のようなシミュレータや、シノプシス VC Formal のようなフォーマル検証エンジンは、大まかな構文違反のほとんどを検出できます。しかし、これらのツールはコードの構文上の問題を発見するために最適化されていないため、IDEに比べて時間がかかり、検出できる問題の数が少なく、より多くのリソースを必要とする場合があります。
IDE を使用すれば、構文上の問題をより効率的に診断できるだけでなく、この種の問題を効率的に修正するための文脈も提供されます。さらに高度なチェック機能として、コードをより包括的に評価するために、IDE には数百もの使用法チェック機能が用意されています。
シノプシス Euclide IDEは、SystemVerilog プログラマーが高品質なコードを生成できるよう支援すると同時に、コード作成を加速させる生産性向上機能も提供します。このIDEには、SystemVerilog やVHDLの初心者から経験者までを支援するために、お客様と共同で開発された数百もの命名済みリンットルールが搭載されています。Euclide IDEはチームへの導入が容易であり、すべてのチームメンバーに製品に対する統一されたビューを提供することで、各メンバーが高品質な成果物を生み出せるようにします。
Euclide このIDEはSystemVerilog およびVHDLに対応しており、さまざまな方法で利用できます。例えば、バッチモードで実行し、継続的インテグレーションのチェックとして活用することで、すべてのチェックインが高品質であり、リンターエラーがないことを確認できます。Euclide また、このIDEはコード入力ツールとしても利用でき、コードのアイデアを試すための対話型IDEを提供します。このソリューションは、クラスメンバーを追跡するためのコードナビゲーションを支援するほか、ソースコードからHTML形式のAPIドキュメントを生成することも可能です。
Euclide IDEは、オプションでシノプシス のVerdi®デバッグおよび検証管理プラットフォームと連携し、ファイルや階層構造を同期させることができます。ユーザーはVerdi プラットフォームで階層構造を選択すると、Euclide IDEが自動的に対応するファイルを表示します。また、Euclide IDEは シノプシス VCS と統合されており、コマンドライン引数を1つ変更するだけでEuclide を起動できます。これらすべての統合機能により、ユーザーの生産性向上に貢献します。