サーチ…
例のコンパイルと実行
ソースファイルと仮定hello_world.v
とのトップレベルのモジュールhello_world
。このコードは、さまざまなシミュレータを使用して実行できます。ほとんどのシミュレータはコンパイルされたシミュレータです。コンパイルと実行には複数のステップが必要です。一般的に
- 最初のステップは、Verilogデザインをコンパイルすることです。
- 第2のステップは、設計を精緻化して最適化することです。
- 3番目のステップは、シミュレーションを実行することです。
ステップの詳細はシミュレータによって異なる場合がありますが、全体的な考え方は変わりません。
Cadence Simulatorを使用した3つのステップのプロセス
ncvlog hello_world.v
ncelab hello_world
ncsim hello_world
- 最初のステップncvlogはファイルhello_world.vをコンパイルすることです
- 2番目のステップであるncelabは、トップレベルのモジュールhello_worldを使用してコードを精緻化することです。
- 3番目のステップncsimは、トップレベルのモジュールhello_worldを使用してシミュレーションを実行することです。
- シミュレータは、コンパイルされ最適化されたすべてのコードをワークライブラリに生成します。 [INCA_libs - デフォルトライブラリ名]
Cadence Simulatorを使用してシングルステップ。
コマンドラインは、内部的に必要な3つのステップを呼び出します。これは、古い解釈済みシミュレータ実行スタイル(単一のコマンドライン)を模倣するためです。
irun hello_world.v
or
ncverilog hello_world.v
こんにちは世界
プログラムはHello World!を出力します。標準出力に出力します。
module HELLO_WORLD(); // module doesn't have input or outputs
initial begin
$display("Hello World");
$finish; // stop the simulator
end
endmodule
ModuleはVerilogの基本ビルディングブロックです。これは要素の集合を表し、モジュールとエンドモジュールのキーワードの間に囲まれています。ここでhello_worldは一番上の(そして唯一の)モジュールです。
初期ブロックはシミュレーションの開始時に実行されます。開始および終了は、初期ブロックの境界をマークするために使用される。 $display
はメッセージを標準出力に出力します。メッセージに「\ n」行を挿入して終了します。
このコードは合成することはできません。つまり、チップに入れることはできません。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow