工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Verilog

Verilog 初期ブロック

Verilog ステートメントのセットは、通常、シミュレーションで順番に実行されます。これらのステートメントはプロシージャル内に配置されます ブロック。 手続き型には主に2つのタイプがあります Verilog のブロック - 初期 そして常に

構文

  
  
	initial 
		[single statement]

	initial begin
		[multiple statements]
	end

  

最初のブロックは何に使用されますか?

initial ブロックは合成できないため、デジタル要素を含むハードウェア回路図に変換できません。したがって、初期ブロックは、シミュレーションで使用する以外にはあまり役に立ちません。これらのブロックは、主に変数を初期化し、特定の値で設計ポートを駆動するために使用されます。

初期ブロックの開始と終了はいつですか?

initial ブロックは、時間 0 単位でのシミュレーションの開始時に開始されます。このブロックは、シミュレーション全体で 1 回だけ実行されます。 initial の実行 ブロック内のすべてのステートメントが実行されると、ブロックは終了します。

上記の画像には module があります これには、a と b という 2 つの内部信号があります。 initial ブロックにはステートメントが 1 つしかないため、ステートメントを begin 内に配置する必要はありません。 と end .このステートメントは、最初のブロックが時間 0 単位で開始されたときに、値 2'b10 を a に割り当てます。

遅延要素がある場合はどうなりますか?

以下に示すコードには、信号 b に何らかの値を割り当てる追加のステートメントがあります。ただし、これは前のステートメントの実行から 10 時間単位後にのみ発生します。これは、最初に a に指定された値が割り当てられ、次に 10 単位時間後に b に 0 が割り当てられることを意味します。

モジュールで許可される初期ブロックの数は?

initial の数に制限はありません モジュール内で定義できるブロック。

以下に示すコードには 3 があります initial ブロックはすべて同時に開始され、並行して実行されます。ただし、各初期ブロック内のステートメントと遅延に応じて、ブロックの終了にかかる時間は異なる場合があります。

この例では、最初のブロックには 20 単位の遅延があり、2 番目のブロックには合計 50 単位 (10 + 40) の遅延があり、最後のブロックには 60 単位の遅延があります。したがって、少なくとも 1 つの初期ブロックがまだ 60 時間単位まで実行されているため、シミュレーションが完了するまでに 60 時間単位かかります。

$finish 現在のシミュレーションを終了するようにシミュレータに指示する Verilog システム タスクです。

以下に示すように、最後のブロックに 30 時間単位の遅延がある場合、シミュレーションは 30 時間単位で終了し、他のすべての initial を殺します。 その時点でアクティブなブロック。

  
  
	initial begin
		#30 $finish;
	end

  

以下に示すフラッシュの例をチェックして、initial ブロックはシミュレーションで実行されます。

シミュレーション例のスライドショーはここをクリック!


Verilog

  1. Verilog チュートリアル
  2. Verilog 連結
  3. Verilog - ナットシェルで
  4. Verilog 割り当て
  5. Verilog ブロッキング &ノンブロッキング
  6. Verilog 関数
  7. Verilog タスク
  8. Verilog クロック ジェネレーター
  9. Verilog 数学関数
  10. Verilog タイムフォーマット
  11. Verilog タイムスケール スコープ