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

Verilog ブロック ステートメント

ブロック ステートメントと呼ばれる、構文的に単一のステートメントと同等の一連のステートメントをグループ化する方法があります。 .ブロック ステートメントには、順次と並列の 2 種類があります。

順次

ステートメントは begin を使用してラップされます と end キーワードであり、指定された順序で順次実行されます。遅延値は、前のステートメントの実行時間に対して相対的に処理されます。ブロック内のすべてのステートメントが実行された後、制御は別の場所に渡されます。

  
  
module design0;
	bit [31:0] data;
  
	// "initial" block starts at time 0
	initial begin
      
		// After 10 time units, data becomes 0xfe 
		#10   data = 8'hfe;
		$display ("[Time=%0t] data=0x%0h", $time, data);
      
		// After 20 time units, data becomes 0x11
		#20   data = 8'h11;
		$display ("[Time=%0t] data=0x%0h", $time, data);
	end
endmodule

  

上記の例では、begin-end の最初のステートメント ブロックは 10 時間単位で実行され、2 番目のステートメントは相対的な性質により 30 時間単位で実行されます。前のステートメントの実行後、20 時間単位です。

シミュレーションログ
ncsim> run
[Time=10] data=0xfe
[Time=30] data=0x11
ncsim: *W,RNQUIE: Simulation is complete.

パラレル

パラレル ブロックはステートメントを同時に実行でき、遅延制御を使用して割り当ての時間順序を提供できます。ステートメントは fork 内にラップすることで並列に起動されます と join

  
  
	initial begin
		#10   data = 8'hfe;
		fork
		   #20 data = 8'h11;
		   #10 data = 8'h00;
		join
	end

  

上記の例では、fork-join ブロックは、10 時間単位でステートメントを実行した後に起動されます。このブロック内のステートメントは並列に実行され、開始される最初のステートメントは、データに 8'h00 の値が割り当てられるステートメントになります。これは、fork-join の開始後の遅延が 10 時間単位であるためです。さらに 10 時間単位後、最初のステートメントが起動され、データは値 8'h11 を取得します。

  
  
	initial begin
		#10 data = 8'hfe;
		fork
			#10 data = 8'h11;
			begin
				#20 data = 8'h00;
				#30 data = 8'haa;
			end
		join
	end

  

begin-end があります 上の例のブロックであり、begin-end ブロック内のすべてのステートメントは順次実行されますが、ブロック自体は他のステートメントと並行して起動されます。したがって、データは 20 時間単位で 8'h11、30 時間単位で 8'h00、60 時間単位で 8'haa になります。

ブロックの命名

: name_of_block を追加することで、順次ブロックと並列ブロックの両方に名前を付けることができます キーワード begin の後 および fork .そうすることで、ブロックは disable で参照できます。

  
  
	begin : name_seq
		[statements]
	end
	
	fork : name_fork
		[statements]
	join

  

Verilog

  1. データ準備の自動化により、洞察までの時間がどのように短縮されますか?
  2. Verilog チュートリアル
  3. Verilog 連結
  4. Verilog - ナットシェルで
  5. Verilog 割り当て
  6. Verilog ブロッキング &ノンブロッキング
  7. Verilog 制御ブロック
  8. Verilog 関数
  9. Verilog スケジューリング セマンティクス
  10. S&OP、データ、および計画システムを進歩させる時が来ました
  11. テレマティクス データを使用する最良の方法