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

Semantik Penjadwalan Verilog

Desain Verilog dan testbench biasanya memiliki banyak baris kode yang terdiri dari always atau initial blok, penugasan berkelanjutan, dan pernyataan prosedural lainnya yang menjadi aktif pada waktu yang berbeda selama simulasi.

Setiap perubahan nilai sinyal dalam model Verilog dianggap sebagai peristiwa pembaruan . Dan proses seperti always dan assign blok yang sensitif terhadap peristiwa pembaruan ini dievaluasi dalam urutan arbitrer dan disebut peristiwa evaluasi . Karena peristiwa ini dapat terjadi pada waktu yang berbeda, peristiwa tersebut dikelola dengan lebih baik dan memastikan urutan eksekusi yang benar dengan menjadwalkannya ke dalam antrean peristiwa yang diatur oleh waktu simulasi.

  
  
module tb;
	reg a, b, c;
	wire d;
	
	// 'always' is a process that gets evaluated when either 'a' or 'b' is updated. 
	// When 'a' or 'b' changes in value it is called an 'update event'. When 'always'
	// block is triggered because of a change in 'a' or 'b' it is called an evaluation
	// event
	always @ (a or b) begin
		c = a & b;
	end
	
	// Here 'assign' is a process which is evaluated when either 'a' or 'b' or 'c'
	// gets updated
	assign d = a | b ^ c;
endmodule

  

Antrian Acara

Sebuah langkah simulasi dapat disegmentasikan menjadi empat wilayah yang berbeda. Antrian acara aktif hanyalah serangkaian proses yang perlu dijalankan pada saat ini yang dapat menghasilkan lebih banyak proses yang dijadwalkan ke dalam antrian acara aktif atau lainnya. Acara dapat ditambahkan ke wilayah mana pun, tetapi selalu dihapus dari aktif wilayah.

Ketika semua peristiwa dalam antrian aktif untuk langkah waktu saat ini telah dieksekusi, simulator memajukan waktu ke langkah waktu berikutnya dan mengeksekusi antrian aktifnya.

  
  
module tb;
	reg x, y, z
	
	initial begin
		#1 	x = 1;
			y = 1;
		#1 	z = 0;
	end
endmodule

  

Simulasi dimulai pada waktu 0, dan pernyataan pertama dijadwalkan untuk dieksekusi ketika waktu simulasi mencapai 1 unit waktu yang menetapkan x dan y ke 1. Ini adalah antrian aktif untuk waktu saat ini yaitu 1 unit waktu. Simulator kemudian menjadwalkan pernyataan berikutnya setelah 1 unit waktu lagi di mana z ditetapkan 0.

Apa yang membuat simulasi nondeterministik ?

Mungkin ada kondisi balapan selama simulasi yang pada akhirnya memberikan output berbeda untuk desain dan bangku tes yang sama. Salah satu alasan perilaku nondeterministik adalah karena aktif acara dapat dihapus dari antrian dan diproses dalam urutan apa pun.


Verilog

  1. Tutorial Verilog
  2. Rangkaian Verilog
  3. Tugas Verilog
  4. Pemblokiran &Non-Pemblokiran Verilog
  5. Fungsi Verilog
  6. Tugas Verilog
  7. Generator Jam Verilog
  8. Fungsi Matematika Verilog
  9. Format Waktu Verilog
  10. Lingkup Skala Waktu Verilog