SystemVerilog

SystemVerilog とは

SystemVerilog はハードウェア記述言語とハードウェア検証言語の両方を兼ねています。ASIC および FPGA/SoC のアルゴリズムやシステムのモデル化、設計、シミュレーション、検証、テスト、実装に使用します。SystemVerilog は Verilog 言語をベースに多くの拡張を追加したもので、2009 年には Verilog と同じ IEEE 標準の一部となりました。

SystemVerilog は、制約付きランダム検証、アサーション、機能カバレッジなどをサポートし、オブジェクト指向プログラミングにも対応しているため、長年 RTL テストベンチの開発に用いられています。

SystemVerilog を使用した設計の高速化

MATLAB® と Simulink® は、ハードウェアに実装するためのアルゴリズムの開発に幅広く使用されています。HDL Coder™ を用いて MATLAB コードや Simulink モデルから SystemVerilog HDL を自動生成すると、FPGA/SoC および ASIC 設計プロセスのほか、RTL テストベンチ コンポーネント生成の自動化プロセスを高速化できます。

ASIC および FPGA コード生成における SystemVerilog

HDL Coder は、MATLAB 関数および Simulink モデル、さらに Stateflow® チャートから、移植可能かつ論理合成可能な SystemVerilog コードを生成することにより、FPGA、SoC、ASIC の高位設計を実現します。生成された HDL コードは、FPGA プログラミング、ASIC プロトタイピング、および量産設計に使用できます。

HDL Coder は、AMD®、Intel®、Microchip ボードにおける、生成された SystemVerilog コードのプロトタイピングを自動化し、ASIC および FPGA ワークフロー用の IP コアを生成するワークフロー アドバイザーを備えています。合成前に、速度および面積の最適化、クリティカルパスの強調表示、リソース使用量の推定の生成を行うことができます。HDL Coder は、Simulink モデルと生成された SystemVerilog コードとの間のトレーサビリティを提供し、DO-254 やその他の標準に準拠した高信頼性アプリケーションのコード検証を行うことができます。

HDL Coder が、MATLAB 関数、Simulink モデル、Stateflow チャート、および Simscape モデルから、論理合成可能な VHDL、Verilog、または SystemVerilog を生成できることを示す図。

HDL Coder は、MATLAB コードまたは Simulink モデルから、論理合成可能な SystemVerilog を生成します。

SystemVerilog DPI を使用した ASIC および FPGA の検証

SystemVerilog Direct Programming Interface (DPI) は、SystemVerilog シミュレーターと C などの外部プログラミング言語の間のインターフェイスとして機能し、主要な HDL シミュレーターで既存の C コードを再利用できるようにします。HDL Verifier™を使用すると、ASIC および FPGA のプロジェクトチームは、スティミュラス、チェッカー、動作レベルのテスト対象設計 (DUT) ブロックなどの SystemVerilog DPI コンポーネントの形式で、MATLAB コードおよび Simulink モデルから検証コンポーネントを直接生成できます。

また、MATLAB または Simulink から生成された SystemVerilog DPI モデルは、既存の Universal Verification Methodology (UVM) 環境へ統合することもできます。

MATLAB または Simulink からスティミュラス、アルゴリズム、およびチェッカー用の SystemVerilog DPI ファイルを生成できることを示す図

HDL Verifier は、MATLAB コードまたは Simulink モデルから SystemVerilog DPI ファイルを生成します。

SystemVerilog DPI テストベンチの生成

  • コンポーネント テストベンチ: DPI コンポーネントとして使用するために Simulink サブシステムから C コンポーネントを生成する場合は、SystemVerilog テストベンチを生成できます。このテストベンチでは、Simulink モデルのデータベクトルに対して、生成された DPI コンポーネントを検証します。(SystemVerilog DPI コンポーネントの生成を参照。)
  • HDL コードテストベンチ: HDL Coder を使用して Simulink サブシステムから HDL コードを生成する場合は、一連のベクトルの形式で SystemVerilog テストベンチを生成できます。このテストベンチは、HDL 実装の出力を、シミュレーションの実行から取得した Simulink モデルの結果と比較します (SystemVerilog DPI テストベンチを使用した HDL 設計の検証を参照)。

参考: HDL Coder, HDL Verifier, FPGA、ASIC、および SoC 開発, ミックスドシグナル システム, 半導体, UVM 検証, ASIC 設計, ASIC 検証