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

Penundaan Gerbang Verilog

Elemen digital adalah entitas biner dan hanya dapat menampung salah satu dari dua nilai - 0 dan 1. Namun transisi dari 0 ke 1 dan 1 ke 0 memiliki penundaan transisi dan begitu juga setiap elemen gerbang untuk menyebarkan nilai dari input ke outputnya.

Misalnya, gerbang AND dua input harus mengalihkan output ke 1 jika kedua input menjadi 1 dan kembali ke 0 ketika salah satu inputnya menjadi 0. Penundaan gerbang dan pin ke pin ini dapat ditentukan di Verilog saat membuat instance logika primitif.

Penundaan Naik, Turun, dan Mati

Waktu yang dibutuhkan keluaran gerbang untuk berubah dari beberapa nilai ke 1 disebut naik menunda. Waktu yang dibutuhkan keluaran sebuah gerbang untuk berubah dari suatu nilai ke 0 disebut jatuh menunda. Waktu yang dibutuhkan keluaran gerbang untuk berubah dari beberapa nilai ke impedansi tinggi disebut mematikan tunda.

Penundaan ini sebenarnya berlaku untuk sinyal apa pun karena semuanya dapat naik atau turun kapan saja di sirkuit nyata dan tidak terbatas hanya pada output gerbang. Ada tiga cara untuk mewakili penundaan gerbang dan dua format penundaan dapat diterapkan pada kebanyakan primitif yang outputnya tidak bertransisi ke impedansi tinggi. Seperti format tiga penundaan tidak dapat diterapkan ke gerbang AND karena output tidak akan pergi ke Z untuk kombinasi input apa pun.

  
  
// Single delay specified - used for all three types of transition delays
or #(<delay>) o1 (out, a, b);

// Two delays specified - used for Rise and Fall transitions
or #(<rise>, <fall>) o1 (out, a, b);

// Three delays specified - used for Rise, Fall and Turn-off transitions
or #(<rise>, <fall>, <turn_off>) o1 (out, a, b);

  

Jika hanya satu penundaan yang ditentukan, ketiga jenis penundaan akan menggunakan nilai yang diberikan yang sama. Jika ada dua penundaan yang ditentukan, yang pertama mewakili naik dan yang kedua mewakili jatuh menunda. Jika ada tiga penundaan yang ditentukan, itu mewakili naik , jatuh dan matikan penundaan masing-masing.

Format Satu Penundaan

  
  
module des (	input 	a, b,
            	output out1, out2);

	// AND gate has 2 time unit gate delay
  and 		#(2) o1 (out1, a, b);
  
  // BUFIF0 gate has 3 time unit gate delay
  bufif0 	#(3) b1 (out2, a, b);
  
endmodule

  
  
  
module tb;
  reg a, b;
  wire out1, out2;
  
  des d0 (.out1(out1), .out2(out2), .a(a), .b(b));
  
  initial begin
    {a, b} <= 0;
    
    $monitor ("T=%0t a=%0b b=%0b and=%0b bufif0=%0b", $time, a, b, out1, out2);
    
    #10 a <= 1;
    #10 b <= 1;
    #10 a <= 0;
    #10 b <= 0;
  end
endmodule

  

Lihat bahwa output dari DAN gerbang berubah 2 unit waktu setelah salah satu inputnya berubah. Misalnya, b menjadi 1 sementara a sudah 1 pada T=20. Tetapi output menjadi 1 hanya pada T=22. Demikian pula, a kembali ke nol pada T=30 dan output mendapatkan nilai baru pada T=32.

Penundaan gerbang ditentukan sebagai 3 unit waktu untuk BUFIF0 dan karenanya ketika b berubah dari 0 ke 1 sementara a sudah pada 1, output membutuhkan 3 unit waktu untuk diperbarui ke Z dan akhirnya melakukannya pada T=23.

Log Simulasi
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=2 a=0 b=0 and=0 bufif0=x
T=3 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=13 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=23 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=32 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=43 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

Format Dua Penundaan

Mari kita terapkan testbench yang sama yang ditunjukkan di atas ke model Verilog berbeda yang ditunjukkan di bawah ini di mana naik dan jatuh penundaan disebutkan secara eksplisit.

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2, 3) o1 (out1, a, b);
  bufif0 #(4, 5) b1 (out2, a, b);
  
endmodule

  
Log Simulasi
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=3 a=0 b=0 and=0 bufif0=x
T=5 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=14 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=24 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=33 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=45 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

Format Tiga Penundaan

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2, 3) o1 (out1, a, b);
  bufif0 #(5, 6, 7) b1 (out2, a, b);
  
endmodule

  
Log Simulasi
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=3 a=0 b=0 and=0 bufif0=x
T=6 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=15 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=27 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=33 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=46 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

Penundaan Min/Ketik/Maks

Penundaan tidak sama di bagian yang berbeda dari chip yang dibuat juga tidak sama untuk suhu yang berbeda dan variasi lainnya. Jadi Verilog juga memberikan tingkat kontrol ekstra untuk setiap jenis penundaan yang disebutkan di atas. Setiap gerbang digital dan sel transistor memiliki penundaan minimum, tipikal, dan maksimum yang ditentukan berdasarkan simpul proses dan biasanya disediakan oleh perpustakaan dari fabrikasi pengecoran.

Untuk setiap jenis penundaan - naik, turun, dan mati - tiga nilai min , ketik dan maks dapat ditentukan dan berdiri untuk penundaan minimum, tipikal dan maksimum.

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2:3:4, 3:4:5) o1 (out1, a, b);
  bufif0 #(5:6:7, 6:7:8, 7:8:9) b1 (out2, a, b);
  
endmodule

  
Log Simulasi
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=4 a=0 b=0 and=0 bufif0=x
T=7 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=16 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=23 a=1 b=1 and=1 bufif0=1
T=28 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=34 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=47 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.


Verilog

  1. Tutorial Verilog
  2. Rangkaian Verilog
  3. Tugas Verilog
  4. Pemblokiran &Non-Pemblokiran Verilog
  5. Kontrol Penundaan Verilog
  6. Penundaan Penugasan Inter dan Intra Verilog
  7. Pemodelan Tingkat Gerbang
  8. Contoh Level Gerbang Verilog
  9. Generator Jam Verilog
  10. Fungsi Matematika Verilog