Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Verilog

Blok Kontrol Verilog

Perilaku perangkat keras tidak dapat diimplementasikan tanpa pernyataan bersyarat dan cara lain untuk mengontrol aliran logika. Verilog memiliki serangkaian blok aliran kontrol dan mekanisme untuk mencapai hal yang sama.

jika-lain-jika

pernyataan bersyarat . ini digunakan untuk membuat keputusan tentang apakah pernyataan tertentu harus dieksekusi atau tidak. Ini sangat mirip dengan if-else-if pernyataan dalam C. Jika ekspresi bernilai benar, maka pernyataan pertama akan dieksekusi. Jika ekspresi bernilai false dan jika else bagian ada, else bagian yang akan dieksekusi.

Sintaks
  
  
	// if statement without else part
	if (expression) 
		[statement]
	
	// if statment with an else part
	if (expression) 
		[statement]
	else 
		[statement]
	
	// if else for multiple statements should be
	// enclosed within "begin" and "end"
	if (expression) begin
		[multiple statements]
	end else begin
		[multiple statements]
	end
	
	// if-else-if statement
	if (expression)
		[statement]
	else if (expression)
		[statement]
	else 
		[statement]

  

else bagian dari if-else adalah opsional dan dapat menyebabkan kebingungan jika else dihilangkan dalam urutan if bersarang. Untuk menghindari kebingungan ini, lebih mudah untuk selalu mengaitkan yang lain dengan yang sebelumnya jika itu tidak memiliki yang lain. Cara lain adalah dengan menyertakan pernyataan dalam begin-end memblokir. else terakhir part menangani kasus yang tidak ada di atas atau default di mana tidak ada kondisi lain yang terpenuhi.

Klik di sini untuk membaca lebih lanjut tentang if-else-if

Loop menyediakan cara untuk mengeksekusi satu atau beberapa pernyataan dalam satu blok beberapa kali atau lebih. Ada empat jenis pernyataan perulangan di Verilog.

loop selamanya

Ini akan terus mengeksekusi pernyataan di dalam blok.

  
  
	forever 
		[statement]

	forever begin
		[multiple statements]
	end

  

Contoh

  
  
module my_design;
	initial begin
		forever begin
			$display ("This will be printed forever, simulation can hang ...");
		end
	end
endmodule

  
Log Simulasi
ncsim> run
This will be printed forever, simulation can hang ...
This will be printed forever, simulation can hang ...
...
...
This will be printed forever, simulation can hang ...
This will be printed forever, simulation can hang ...
This will be printed forever, simulation can hang ...
This will be printed forever, simulation can hang ...
Result reached the maximum of 5000 lines. Killing process.

ulangi loop

Ini akan mengeksekusi pernyataan beberapa kali. Jika ekspresi bernilai X atau Z, maka ekspresi tersebut akan diperlakukan sebagai nol dan tidak akan dieksekusi sama sekali.

  
  
	repeat ([num_of_times]) begin
		[statements]
	end
	
	repeat ([num_of_times]) @ ([some_event]) begin
		[statements]
	end

  

Contoh

  
  
module my_design;
	initial begin
		repeat(4) begin
			$display("This is a new iteration ...");
		end
	end
endmodule

  
Log Simulasi
ncsim> run
This is a new iteration ...
This is a new iteration ...
This is a new iteration ...
This is a new iteration ...
ncsim: *W,RNQUIE: Simulation is complete.

perulangan while

Ini akan mengeksekusi pernyataan selama ekspresi benar dan akan keluar setelah kondisi menjadi salah. Jika kondisi salah dari awal, pernyataan tidak akan dieksekusi sama sekali.

  
  
	while (expression) begin
		[statements]
	end

  

Contoh

  
  
module my_design;
  	integer i = 5;
  
	initial begin
      while (i > 0) begin
        $display ("Iteration#%0d", i);
        i = i - 1;
      end
	end
endmodule

  
Log Simulasi
ncsim> run
Iteration#5
Iteration#4
Iteration#3
Iteration#2
Iteration#1
ncsim: *W,RNQUIE: Simulation is complete.

untuk loop

  
  
	for ( initial_assignment; condition; increment_variable) begin
		[statements]
	end

  

Ini akan mengontrol pernyataan menggunakan proses tiga langkah:

Contoh

  
  
module my_design;
  	integer i = 5;
  
	initial begin
      for (i = 0; i < 5; i = i + 1) begin
        $display ("Loop #%0d", i);
      end
    end
endmodule

  
Log Simulasi
ncsim> run
Loop #0
Loop #1
Loop #2
Loop #3
Loop #4
ncsim: *W,RNQUIE: Simulation is complete.

Klik di sini untuk membaca lebih lanjut tentang for loop.


Verilog

  1. C# Ekspresi, Pernyataan, dan Blok (Dengan Contoh)
  2. Ekspresi, Pernyataan, dan Blok Java
  3. Tutorial Verilog
  4. Rangkaian Verilog
  5. Tugas Verilog
  6. Pemblokiran &Non-Pemblokiran Verilog
  7. Blok Kontrol Verilog
  8. Fungsi Verilog
  9. Tugas Verilog
  10. Kontrol Penundaan Verilog