英語フランス語スペイン語

Ad


OnWorksファビコン

iverilog - クラウド上のオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで iverilog を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド iverilog です。

プログラム:

NAME


iverilog - Icarus Verilog コンパイラ

SYNOPSIS


イベリログ [-ESVv] [-Bpath] [-ccmdfile|-fcmdfile] [-Dmacro[=defn]] [-pflag=value] [-dname]
[-g1995|-g2001|-g2005|-g ] [-Iincludeir] [-mmodule] [-Mfile] [-Nfile]
[-ooutputfilename] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] [-ypath] ソースファイル

DESCRIPTION


イベリログ Verilog ソース コードを実行可能プログラムに変換するコンパイラです。
シミュレーション、またはさらなる処理のための他のネットリスト形式。 現在サポートされているのは、
ターゲットは vvp シミュレーション用、および FPGA 合成用。 他のターゲット タイプは次のように追加されます。
コードジェネレーターが実装されています。

OPTIONS


イベリログ 次のオプションを受け入れます。

-Bベース   イベリログ プログラムは外部プログラムと構成ファイルを使用して前処理します
Verilog ソースをコンパイルします。 通常、これらのツールを見つけるために使用されるパスは次のとおりです。
に組み込まれた イベリログ プログラム。 しかし -B スイッチによりユーザーは選択できるようになります
異なるプログラムのセット。 指定されたパスは場所を見つけるために使用されます ivlpp, ivl、コード
ジェネレーターと VPI モジュール。

-cfile -ffile
これらのフラグは、Verilog ソース ファイルのリストを含む入力ファイルを指定します。
これはに似ています command file 他の Verilog シミュレータと同様、
コマンドラインでファイル名を取得するのではなく、ファイル名を含むファイルを作成します。 見る
Command を参照してください。

-Dマクロ マクロを定義します マクロ 文字列「1」を定義として使用します。 通常この形式は、
Verilog ソースで ifdef 条件をトリガーするためにのみ使用されます。

-Dマクロ=定義
マクロを定義します マクロ as 定義.

-d コンパイラ デバッグ メッセージのクラスをアクティブ化します。 の -d スイッチは次のように使用できます
必要なメッセージをすべてアクティブにするために、必要に応じて頻繁に実行します。 サポートされている名前は次のとおりです。
スコープ、eval_tree、elate、および synth2; 他の名前は無視されます。

-E Verilog ソースを前処理しますが、コンパイルはしません。 出力ファイルは
Verilog 入力ですが、ファイル インクルードとマクロ参照は展開および削除されています。
これは、たとえば、他のユーザーが使用するために Verilog ソースを前処理する場合に便利です。
コンパイラ。

-g1995|-g2001|-g2001-noconfig|-g2005
Verilog 言語を選択します 世代 コンパイラでサポートします。 これにより選択されます
の間に IEEE1364-1995, IEEE1364-2001または IEEE1364-2005。 通常、Icarus Verilog
デフォルトは、既知の最新世代の言語です。 このフラグが最も役に立ちます
言語を特定の世代のツールでサポートされるセットに制限するため、
他のツールとの互換性。

-gverilog-ams|-gno-verilog-ams
Verilog-AMS のサポートを有効または無効 (デフォルト) にします。 Verilog-AMS はほとんどありません
特定の機能が現在サポートされています。

-g指定|-gno-指定
指定ブロックのサポートを有効または無効 (デフォルト) にします。 有効にした場合、ブロックを指定します
コードが練り込まれています。 無効にすると、指定されたブロックは解析されますが無視されます。 特定
ブロックは通常、RTL シミュレーションには必要ありませんが、実際には害を及ぼす可能性があります
シミュレーションのパフォーマンス。 ただし、指定ブロックを無効にすると精度が低下します
フルタイミングのシミュレーション。

-gstd-include|-gno-std-include
標準インストール インクルードの検索を有効 (デフォルト) または無効にします。
他のすべての明示的なインクルード ディレクトリの後にディレクトリを追加します。 この規格には以下が含まれます
ディレクトリは、Verilog の標準ヘッダー ファイルをインストールするのに便利な場所です。
プログラムには以下が含まれる場合があります。

-grelative-include|-gno-relative-include
ローカル ファイル ディレクトリの先頭への追加を有効または無効 (デフォルト)
インクルードファイルの検索パス。 これにより、ファイルを相対的に含めることができます。
現在のファイルではなく、より一般的なファイルが作業ディレクトリにのみ存在するか、
指定されたインクルード ファイルの検索パスにあります。

-gxtypes|-gno-xtypes
拡張タイプのサポートを有効 (デフォルト) または無効にします。 拡張タイプの有効化
Icarus Verilog によってサポートされる新しいタイプを、拡張機能を超えたものとして使用できるようにします。
ベースライン Verilog。 コードをコンパイルする場合は、拡張型を無効にする必要がある場合があります。
これは、型システムの実装に使用されるいくつかの新しいキーワードと衝突します。

-ジオ範囲エラー|-gno-io-範囲エラー
標準では、ベクトル化されたポートにはそのポートの範囲が一致する必要があります。
宣言とその他のネット/レジスタ宣言。 ではそれが一般的でした
net/register 宣言と一部のツールの範囲のみを指定するには、過去を使用します。
まだこれを許可します。 デフォルトでは、不一致はエラーとして報告されます。 使用する
-gno-io-範囲エラー この場合、致命的なエラーではなく警告が生成されます
ベクトル化されたネット/レジスタとスカラー ポート宣言の。

-gstrict-ca-eval|-gno-strict-ca-eval
標準では、連続代入式への入力がある場合、
値を変更すると、式全体が再評価されます。 デフォルトでは、
変更された入力値に依存しない式は再評価されません。
式に、その関数のみに依存しない関数の呼び出しが含まれている場合、
入力値や副作用がある場合、結果の動作は異なるものになります。
標準で要求されているもの。 使用する -gstrict-ca-eval 標準を強制します
準拠した動作になります (パフォーマンスは多少低下します)。

-I含まれる
ディレクトリの追加 含まれる Verilog で検索されたディレクトリのリストには次のものが含まれます
ファイル。 ザ・ -I スイッチは、複数のディレクトリを指定するために何度も使用されます。
search では、ディレクトリはコマンド ラインに表示される順序で検索されます。

-Mpath パスで指定されたファイルに、
デザインのまとめ。 これには、include によってインクルードされたファイルが含まれます。
ライブラリサポートによって自動的にロードされるディレクティブとファイル。 出力
は XNUMX 行に XNUMX つのファイル名であり、先頭または末尾にスペースはありません。

-mモジュール
このモジュールを、シミュレーションによってロードされる VPI モジュールのリストに追加します。 多くの
モジュールを指定すると、すべてが指定された順序でロードされます。 の
システム モジュールは暗黙的に常に含まれます。 システム機能テーブルファイルの場合
( .sft) がモジュール用に存在し、自動的にロードされます。

-Npath これはコンパイラ自体をデバッグするために使用されます。 最終的なネットリスト形式をダンプします。
デザインを指定したファイルにコピーします。 それ以外の場合、動作には影響しません。
コンパイラ。 ダンプは、設計が精緻化され最適化された後に発生します。

-o ファイル名
出力をファイルに配置する ファイル名。 出力ファイル名が指定されていない場合は、 イベリログ
デフォルト名を使用します アウト.

-pフラグ=値
ターゲット固有のフラグに値を割り当てます。 の -p スイッチは何度でも使用できます
必要なフラグをすべて指定するために必要です。 使用されるフラグは、
選択されたターゲットについては、ターゲット固有のドキュメントで説明されています。 フラグ
使用されないものは無視されます。

-S 合成します。 通常、ターゲットが行動の説明を受け入れることができる場合、
コンパイラはプロセスを動作形式のままにします。 の -S スイッチが原因で
コンパイラは、ターゲットにとって必要でない場合でも合成を実行します。 もし
ターゲット タイプはネットリスト形式です。 -S スイッチは不要であり、効果はありません。

-s トップモジュール
エラボレートする最上位モジュールを指定します。 Icarus Verilog はデフォルトで
他のモジュールでインスタンス化されていないモジュールですが、場合によってはインスタンス化されないこともあります
十分であるか、インスタンス化するモジュールが多すぎます。 ユーザーが XNUMX つ以上を指定した場合
ルートモジュールと -s フラグを設定した場合、代わりにルート モジュールとして使用されます。

-T最小|標準|最大
このスイッチを使用して、min:typ:max 式から min、typ、または max 時間を選択します。
通常、コンパイラはこれらの式の typ 値を単純に使用します。
(最初に見つかった XNUMX 件について警告を出力します) しかし、このスイッチは
コンパイラはどの値を使用するかを明示的に指定します。 これにより、次の警告が抑制されます。
コンパイラが選択を行っています。

-tターゲット
このスイッチを使用して、ターゲットの出力形式を指定します。 を参照してください。 ターゲット
有効な出力形式のリストについては、「」を参照してください。

-v 詳細メッセージをオンにします。 これにより、実行されるコマンドラインが出力されます。
さまざまなバージョン情報とともに実際のコンパイルを実行します。
コンポーネント、および製品全体のバージョン。 あなたが気づくでしょう
コマンドラインにキー一時ファイルへの参照が含まれていること
情報をコンパイラに適切に提供します。 そのファイルが削除されないようにするには、
プロセスの最後に、環境変数に独自のファイル名を指定します。
IBERILOG_ICONFIG.

-V コンパイラのバージョンを出力して終了します。

-Wclass さまざまなクラスの警告をオンにします。 を参照してください。 警告 TYPES 以下のセクション
さまざまな警告グループの説明。 複数の場合 -W スイッチが使用されており、
警告セットは、要求されたすべてのクラスの結合です。

-yリブディレクトリ
ディレクトリをライブラリ モジュールの検索パスに追加します。 コンパイラが
未定義のモジュールの場合、これらのディレクトリ内で正しい名前のファイルが検索されます。

-Yサフィックス
ファイルを検索するときに使用される、受け入れられるファイル名接尾辞のリストに接尾辞を追加します。
細胞用のライブラリです。 リストのデフォルトは単一のエントリです .v.

モジュール ライブラリ


Icarus Verilog コンパイラは、Verilog を含むディレクトリとしてモジュール ライブラリをサポートします。
ソースファイル。 エラボレーション中に、コンパイラは未定義のインスタンス化を認識します。
モジュールの種類。 ユーザーがライブラリ検索ディレクトリを指定すると、コンパイラはライブラリを検索します。
欠落しているモジュール タイプの名前を持つファイルのディレクトリ。 そのようなファイルが見つかった場合、
それを Verilog ソース ファイルとしてロードすると、モジュールの精緻化が再度試行されます。

ライブラリ モジュール ファイルには XNUMX つのモジュールのみを含める必要がありますが、これは必須ではありません。
ライブラリ モジュールは、ライブラリまたはメイン デザイン内の他のモジュールを参照する場合があります。

ターゲット


Icarus Verilog コンパイラは、さまざまな目的に応じてさまざまなターゲットをサポートしています。
-t スイッチを使用して、目的のターゲットを選択します。

ヌル null ターゲットの場合、コードは生成されません。 を確認するのに便利です。
Verilog ソースの構文。

vvp これがデフォルトです。 vvp ターゲットは、vvp ランタイムのコードを生成します。 出力
はデザインをシミュレートする完全なプログラムですが、 vvp


FPGA これは、主に EDIF によるさまざまな fpga デバイスをサポートする合成ターゲットです。
フォーマット出力。 Icarus Verilog fpga コード ジェネレーターは、完全なコードを生成できます。
デザインまたは EDIF マクロは、他のユーザーによってより大きなデザインにインポートできます。
ツール。 の FPGA ターゲットは合成を意味します -S フラグ。

vhdl このターゲットは、Verilog ネットリストの VHDL 変換を生成します。 出力は
Verilog 内のモジュールに対応する VHDL エンティティを含む XNUMX つのファイル
ソースコード。 Verilog 言語のサブセットのみがサポートされていることに注意してください。 見る
詳細については wiki を参照してください。

警告 TYPES


これらは、 -W スイッチ。 すべての警告
タイプ(以外) ) を接頭辞として付けることもできます NO- その警告をオフにするには。 これは
の後に最も役立つ -壁 孤立した警告タイプを抑制する引数。

これにより、暗黙的、ポートバインド、選択範囲、タイムスケール、および
感度、アレイ全体の警告カテゴリ。

暗黙
これにより、暗黙的な宣言の作成に対する警告が有効になります。 たとえば、
スカラー ワイヤ X が使用されていますが、Verilog ソースで宣言されていない場合、
初めて使用するときの警告。

ポートバインド
これにより、接続されていないモジュールのインスタンス化のポートに対する警告が有効になります。
しかし、おそらくそうあるべきです。 たとえば、ダングリング入力ポートは、
警告。

範囲選択
これにより、定数範囲外選択に対する警告が有効になります。 これには部分的または
完全に範囲外の選択、および 'bx または 'bz を含む選択
インデックス。

タイムスケール
これにより、timescale ディレクティブの一貫性のない使用に対する警告が有効になります。 検出します
一部のモジュールにタイムスケールがない場合、またはモジュールが別のモジュールからタイムスケールを継承している場合
ファイル。 おそらく両方とも、タイムスケールが一貫していないことと、シミュレーションのタイミングが一致していないことを意味します。
混乱を招き、コンパイル順序に依存する可能性があります。

インフループ これにより、実行時に無限ループが発生する可能性のある Always ステートメントに対する警告が有効になります。
(遅延がないかゼロのパスがあります)。 このクラスの警告は、 -壁
したがって、 NO- 変異体。 致命的なエラー メッセージは常に次のようになります。
無限大が確実に存在するとコンパイラが判断できる場合に出力されます。
ループ (すべてのパスに遅延がないか、ゼロです)。

Always ステートメントがランタイム無限ループを生成していると思われる場合は、これを使用してください
フラグを使用して、ロジックを検証する必要がある Always ステートメントを見つけます。 それは
コードでは次のような処理が行われるため、警告の多くは誤検知であることが予想されます。
すべての変数と信号の値は不定です。

感度全体ベクトル
これにより、「always @*」ステートメント内のパーツ選択時の警告が有効になります。
その結果、ベクトル全体が暗黙的な機密性リストに追加されます。
この動作は IEEE 標準で規定されていますが、次のような動作ではありません。
これは予期されており、ベクトルが大きい場合はパフォーマンスに影響を与える可能性があります。

感度 - アレイ全体
これにより、「always @*」ステートメント内で単語が選択されたときの警告が有効になります。
その結果、配列全体が暗黙的な機密性リストに追加されます。 それでも
この動作は IEEE 標準で規定されており、一般的なものではありません。
予想されるものであり、配列が大きい場合はパフォーマンスに影響を与える可能性があります。

SYSTEM FUNCTION ファイル


ソースファイル名が .sft サフィックスを付けると、システム関数テーブルとみなされます。
ファイル。 システム関数テーブル ファイルは、戻り値の型をコンパイラに記述するために使用されます。
システム機能用。 これが必要なのは、コンパイラがこの情報を必要とするためです。
これらのシステム関数を含む複雑な式ですが、sizetf を実行できません。
ランタイムがないため、機能します。

テーブルの形式は ASCII で、XNUMX 行に XNUMX つの関数が表示されます。 空行は無視され、
' で始まる行#' 文字はコメント行です。 コメント以外の各行が始まる
関数名、次に vpi タイプ (つまり、vpiSysFuncReal) を入力します。 以下の種類は、
サポート:

vpiSysFuncReal
この関数はリアルタイム値を返します。

vpiSysFuncInt
この関数は整数を返します。

vpiSysFuncSized
この関数は、指定された幅の符号付きまたは符号なしのベクトルを返します。
旗によると。

COMMAND ファイル


コマンド ファイルを使用すると、ユーザーはソース ファイル名と特定のコマンド ラインを配置できます。
長いコマンドラインではなくテキストファイルに切り替えます。 コマンド ファイルには C を含めることができます
または C++ スタイルのコメント、および # が行の先頭にある場合は # コメント。

file
単純なファイル名またはファイル パスが Verilog ソース ファイルの名前とみなされます。
パスは最初の非空白文字で始まります。 変数は
ファイル名に置き換えられます。

-c コマンドファイル -f コマンドファイル
A -c or -f トークンは、コマンドの場合とまったく同じように、コマンド ファイルに接頭辞を付けます。
ライン。 cmdfile は同じ行または次の非コメント行に置くことができます。

-y リブディレクトリ
A -y トークンは、コマンド ファイル内のライブラリ ディレクトリに、それとまったく同じように接頭辞を付けます。
コマンドラインで。 へのパラメータ -y フラグは同じ行にあるか、
次の非コメント行。

の変数 リブディレクトリ が置き換えられます。

+ incdir +含まれる
  + incdir + コマンド ファイル内のトークンにより、インクルード ファイルを検索するためのディレクトリが提供されます
それとほぼ同じように -I フラグはコマンドラインで機能します。 違いは
その複数 +含まれるディレクトリ ディレクトリは、単一のディレクトリに対する有効なパラメータです。 + incdir +
トークンを複数持つこともできますが、 + incdir + ライン。

の変数 含まれる が置き換えられます。

+ libext +EXT
  +libext コマンド ファイル内のトークンを検索するときに試行する XNUMX つのファイル拡張子
ライブラリファイル。 これと併用すると便利です -y 試行するサフィックスをリストするためのフラグ
次のライブラリ ディレクトリに移動する前に、各ディレクトリに移動します。

+libdir+DIR
これは、ライブラリ ディレクトリを指定する別の方法です。 -y フラグを参照してください。

+libdir-nocase+DIR
これは次のようなものです +libdir ステートメントですが、宣言されたディレクトリ内のファイル名
ここでは大文字と小文字が区別されません。 ルックアップで欠落しているモジュール名が一致する必要はありません。
ファイル名の文字が正しい限り、大文字と小文字は区別されます。 たとえば、「foo」は一致します
「Foo.v」ですが、「bar.v」ではありません。

+定義+NAME=
  +定義+ トークンは -D コマンドラインのオプション。 値
トークンの一部はオプションです。

+タイムスケール+
  +タイムスケール+ トークンは、シミュレーションのデフォルトのタイムスケールを設定するために使用されます。
これは、「timescale ディレクティブの前」または「timescale ディレクティブの後の時間単位と精度」です。
`resetall ディレクティブ。 デフォルトは 1 秒/1 秒です。

+toupper-ファイル名
このトークンにより、コマンド ファイル内のこれ以降のファイル名が次のように変換されます。
大文字。 これは、ディレクトリが DOS を通過する状況に役立ちます。
その過程でファイル名が書き換えられてしまいます。

+下位ファイル名
これはに似ています +toupper-ファイル名 上で説明したハック。

+整数幅+
これにより、プログラマは整数変数の幅を選択できます。
Verilog ソース。 デフォルトは 32 で、値は任意の整数値にすることができます。

変数 IN COMMAND ファイル


場合によっては、iverilog はコマンド ファイル内の変数をサポートします。 これらは次の文字列です。
フォーム "$(変数名)" または "${変数名}"、 どこ 変数名 環境変数の名前です
読むこと。 文字列全体がその変数の内容に置き換えられます。 変数は
ファイルやディレクトリなど、それらを明示的にサポートするコンテキストでのみ置換されます。
文字列。

変数値は、プリプロセッサからではなく、オペレーティング システム環境から取得されます。
ファイルまたはコマンドラインの別の場所で定義します。

事前定義済み マクロス


次のマクロはコンパイラによって事前定義されています。

__イカルス__ = 1
これは、Icarus Verilog でコンパイルするときに常に定義されます。

__VAMS_ENABLE__ = 1
これは、Verilog-AMS が有効な場合に定義されます。


これらの例は、現在のバージョンに hello.v という Verilog ソース ファイルがあることを前提としています。
ディレクトリにジョブを開始します。

hello.v を a.out という実行可能ファイルにコンパイルするには、次のようにします。

イベリログ hello.v

hello.v を hello という実行可能ファイルにコンパイルするには、次のようにします。

iverilog -o こんにちは hello.v

vvp ランタイムを使用して明示的にコンパイルして実行するには:

iverilog -ohello.vvp -tvvp hello.v

onworks.net サービスを使用してオンラインで iverilog を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad