Ana içeriğe geç

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
Yazar
Kerim Turak
Digital IC Design & Verification Engineer
Table of Contents
SystemVerilog Tasarım Serisi - This article is part of a series.
Part 31: This Article

🚀 SystemVerilog Assertion
#

SystemVerilog Assertions (SVA), donanım doğrulama sürecinde hataların erken tespiti ve tasarım davranışının formel olarak doğrulanması için kullanılan güçlü bir özelliktir. Assertion kavramı, bir devre veya sistemin belirli bir koşulu sağladığını ifade eder ve testbench veya tasarım içerisinde bu koşulların takibini yapmamızı sağlar.

SVA, hem simülasyon sırasında hata tespiti için dynamic assertion (simülasyon anında kontrol) hem de formal doğrulama (model checking) için static assertion (matematiksel kanıt) desteği sunar. Bu özellikleriyle SVA, testbench ve tasarım ortamlarını daha güvenilir ve bakımı kolay hale getirir.


🔎 SVA Nedir?
#

SystemVerilog Assertion, SystemVerilog diline entegre edilmiş bir özelliktir ve devre davranışlarını zaman ve olay bazında tanımlayabilmemize olanak tanır. ✅ Assertionlar, immediate ve concurrent olmak üzere ikiye ayrılır:

  • Immediate Assertion: Kombinasyonel kontroller ve prosedürel bloklar içinde kullanılır. Hemen değerlendirilir ve simülasyon akışını etkilemez.
  • Concurrent Assertion: Saat sinyali ile birlikte, zamana bağlı koşulları kontrol eder ve always veya property yapısı içinde kullanılır.

🛠️ Neden Kullanılır?
#

SVA kullanmanın başlıca avantajları şunlardır:

  • Hata Tespiti: Tasarım hatalarını erken aşamada tespit ederek debug süresini kısaltır.
  • Davranış Doğrulama: Spesifikasyonlara uygun davranışı garantiler.
  • Formal Doğrulama Desteği: Model checking ile hataların bulunmasını sağlar.
  • Debug Kolaylığı: Assertion failure mesajları ile sorunları hızlıca izole etmeye yardımcı olur.

📌 Temel Kullanım Alanları
#

  • Protokol kontrolleri (ör. PCIe, AMBA)
  • Sinyal geçiş kontrolü (ör. reset senkronizasyonu)
  • FIFO/Buffer kontrolü (ör. overflow/underflow)
  • Pipeline ve handshake kontrolü
  • FSM geçişlerinin doğrulanması

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

Related

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
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