Ana içeriğe geç

Immediate Assertion

· loading · loading · ·
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Assertion Verification Immediate Assertion Deferred Immediate Assertion Doğrulama
Eğitim SystemVerilog Doğrulama
Yazar
Kerim Turak
Digital IC Design & Verification Engineer
Table of Contents
SystemVerilog Tasarım Serisi - This article is part of a series.
Part 33: This Article

🚦 Immediate Assertion Nedir?
#

Immediate assertions, procedural bloklar (initial, always, always_ff, always_comb, vb.) içinde kullanılan, hemen değerlendirilen assertionlardır. Kombinasyonel kontroller için kullanılır ve anlık hataları yakalar.

Örnek:

always_ff @(posedge clk) begin
  assert (data_valid) else $error("Data not valid!");
end

Bu yapı, her clock kenarında data_valid kontrolünü yapar ve fail durumunda hata mesajı verir.


⏳ Deferred Immediate Assertion Nedir?
#

Deferred Immediate assertionlar da procedural bloklarda kullanılır; ancak kontrolü bir sonraki delta cycle’a erteler. Yani kontrol hemen yapılmaz, blok tamamlandıktan sonra yapılır. Bu, özellikle non-blocking assignment ile yazılan kodlarda veri uyumluluğunu sağlamak için kullanılır.

Örnek:

always_ff @(posedge clk) begin
  x <= y; // non-blocking assignment
  assert final(x == y); // deferred immediate assertion
  // assert #0 (x == y); // deferred immediate assertion
end

Burada final keyword’ü deferred immediate assertion’ı işaret eder ve assertion, blok tamamlandıktan sonra (delta cycle) evaluate edilir.

Immediate vs. Deferred Immediate
#

ÖzellikImmediateDeferred Immediate
Çalışma zamanıBlok içi (hemen)Blok sonunda (delta cycle)
Kod uyumluluğuBlocking assignmentNon-blocking assignment
Kullanım amacıHızlı kontrolData consistency kontrolü

SystemVerilog Tasarım Serisi - This article is part of a series.
Part 33: This Article

Related

SystemVerilog Assertion (SVA) Nedir ve Neden Kullanılır?
· loading · loading
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Assertion Doğrulama Formal Verification Concurrent Assertion Immediate Assertion SVA
Eğitim SystemVerilog Doğrulama
SystemVerilog'da Boolean İfadeler ve Assertion Kullanımı
· loading · loading
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Assertion Verification Doğrulama
Eğitim SystemVerilog Doğrulama
SystemVerilog Assertionlar: Delay, Repetition ve Status
· loading · loading
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Assertion Verification Repetition Delay Overlap Go-to Repetition Assertion Status
Eğitim SystemVerilog Doğrulama
SystemVerilog Assertions: Same Cycle ve Next Cycle İmplication
· loading · loading
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Assertion Verification Same Cycle Implication Next Cycle Implication Assertion Overlapping Fonksiyonlar
Eğitim SystemVerilog Doğrulama
SystemVerilog Sequence, Sequence Implication ve Kullanımı
· loading · loading
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Assertion Verification Sequence Sequence Implication Overlapping Non-Overlapping Conditional Property Never Property $Rose $Fell Disable Iff
Eğitim SystemVerilog Doğrulama
SystemVerilog'da Concurrent Assertions Kullanımı
· loading · loading
Kerim Turak
Eğitim SystemVerilog Doğrulama SystemVerilog Concurrent Assertions Property Default Clocking Doğrulama
Eğitim SystemVerilog Doğrulama