VerilogとSystemVerilogの違いは何ですか

目次:

Anonim

NS 主な違い VerilogとSystemVerilogの間は Verilogはハードウェア記述言語であり、SystemVerilogはVerilogに基づくハードウェア記述およびハードウェア検証言語です。

ハードウェア記述言語(HDL)は、電子回路の構造と動作を記述するために使用されるコンピューター言語です。ハードウェア検証言語は、ハードウェア記述言語で記述された電子回路を検証するために使用されるプログラミング言語です。 VerilogはHDLであり、SystemVerilogはHDLおよびHVLです。全体として、SystemVerilogはVerilogのスーパーセットです。

HDL、OOP、Verilog、SystemVerilog

Verilogとは

Verilogはハードウェア記述言語です。また、アナログ回路とミックスドシグナル回路の検証や遺伝子回路の設計にも役立ちます。 2009年、VerilogはSystemVerilog標準と統合されました。したがって、Verilogは現在SystemVerilogの一部です。

Verilogの主なデータ型はWireとRegです。ワイヤは、ゲートまたはモジュールを接続する回路内の物理的なワイヤを示します。 Regは、ある手続き型割り当てから次の割り当てへの値を保持します。

その他のよく使うキーワードは以下のとおりです。

入力–タスクまたはモジュールの入力ポートを宣言します。

出力–タスクまたはモジュールの出力ポートを宣言します。

Inout –タスクまたはモジュールの双方向ポートを宣言します。

Verilogは、さまざまなレベルの抽象化をサポートしています。動作レベルは、並行アルゴリズムを記述します。レジスタ転送レベル(RTL)は、操作とレジスタ間のデータ転送によって回路の特性を説明します。さらに、ゲートレベルは論理リンクとそのタイミングプロパティを定義します。

SystemVerilogとは

SystemVerilogは、追加機能を備えたVerilogに基づくハードウェア記述およびハードウェア検証言語です。これは、電子システムのモデル化、設計、シミュレーション、テスト、および実装に役立ちます。さらに、SystemVerilogは主に半導体および電子設計業界で使用されています。

SystemVerilogで指定されている2つのデータ型は、静的と自動です。プログラマーは、プログラムの実行開始時に静的変数を作成します。また、この値は、プログラムの存続期間全体を通じて同じままです。また、この値は、実行中に新しい値が割り当てられると変更される可能性があります。さらに、自動変数は、プログラムの実行が変数のスコープに到達した瞬間に作成されます。

SystemVerilogは、3つの新しい手続き型ブロックで構成されています。これらは、ハードウェアのモデル化に役立ちます。 always_combは、組み合わせロジックのモデル化に役立ちます。 always_ffはフリップフロップ用ですが、always_latchはラッチ用です。 HDLコンパイラまたは検証プログラムは、必要なタイプの動作のみが発生することを保証します。さらに、SystemVerilogには、接続されたモジュール間のポート名宣言の冗長性を減らすのに役立つインターフェイスが含まれています。

SystemVerilogのもう1つの重要な用途は、オブジェクト指向プログラミングをサポートしていることです。これらのクラスは、単一の継承モデルをサポートします。ただし、プログラマーはインターフェースを使用して複数の継承を実装できます。彼は、C ++と同様のポリモーフィズムなどの概念を実装することもできます。ローカルキーワードと保護されたキーワードは、カプセル化などの概念を実現するのに役立ちます。デフォルトでは、クラスプロパティはパブリックです。さらに、SystemVerilogは自動ガベージコレクターを提供します。

VerilogとSystemVerilogの違い

意味

Verilogは、電子システムのモデル化に役立つハードウェア記述言語(HDL)です。対照的に、SystemVerilogはハードウェア記述であり、電子システムのモデル化、設計、シミュレーション、テスト、および実装に使用されるハードウェア検証言語でもあります。したがって、これがVerilogとSystemVerilogの主な違いです。

パラダイム

また、VerilogとSystemVerilogのもう1つの重要な違いは、Verilogが構造化パラダイムをサポートしているのに対し、SystemVerilogは構造化およびオブジェクト指向パラダイムをサポートしていることです。

IEEE

VerilogはIEEE1364として標準化されており、SystemVerilogはIEEE1800として標準化されています。

ファイル拡張子

に影響を受けた

さらに、VerilogとSystemVerilogのもう1つの違いは、前者はCとFortranの影響を受け、後者はVerilog、VHDL、C ++の影響を受けることです。

データ型

VerilogはWireおよびRegデータ型をサポートし、SystemVerilogは列挙型、構造体、共用体、クラス、文字列などのさまざまなデータ型をサポートします。したがって、これはVerilogとSystemVerilogの違いでもあります。

手続き型ブロック

さらに、Verilogには組み合わせロジックとシーケンシャルロジックを実装するための単一のalwaysブロックがあり、SystemVerilogにはalways_comb、always_ff、always_latchの手続き型ブロックがあります。

工事

Verilogはモジュールの階層に基づいていますが、SystemVerilogはクラスに基づいています。

テストベンチ

さらに、Verilogはモジュールレベルのテストベンチを使用し、SystemVerilogはクラスベースのテストベンチを使用します。

結論

VerilogとSystemVerilogの主な違いは、Verilogがハードウェア記述言語であるのに対し、SystemVerilogはVerilogに基づくハードウェア記述およびハードウェア検証言語であるということです。簡単に言うと、SystemVerilogは、追加機能を備えたVerilogの拡張バージョンです。

参照:

1.「Verilog」ウィキペディア、ウィキメディア財団、2019年4月3日、こちらから入手可能2.「SystemVerilog」ウィキペディア、ウィキメディア財団、2019年5月10日、こちらから入手可能3.タラ、ディーパッククマールはじめに、1970年2月1日、こちらから入手できます。

画像提供:

1.ReAl製のスクリーンショットによる「GTKWaveウィンドウ」。 – Commons Wikimediaを介した無料ソフトウェア(パブリックドメイン)のスクリーンショット

VerilogとSystemVerilogの違いは何ですか