Ana içeriğe geç

SystemVerilog Giriş

· loading · loading · ·
Donanım Tasarımı Doğrulama SystemVerilog Verilog RTL Tasarımı UVM Donanım Doğrulama IEEE 1800
Donanım Tasarımı Doğrulama
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents
SystemVerilog Tasarım Serisi - This article is part of a series.
Part 1: This Article

🧠 SystemVerilog’a Giriş: Neden Gerekliydi?
#

Verilog Nedir, Nereden Geldi?
#

  • Verilog, 1983–84 yıllarında Gateway Design Automation tarafından dijital sistemleri modellemek için geliştirilen bir Donanım Tanımlama Dili (HDL)‘dir.
  • 1995 yılında, IEEE standardı olarak kabul edildi: IEEE 1364-1995.
  • Büyük bir güncelleme 2001 yılında (Verilog-2001) yapıldı ve 2005’te rafine edildi.
  • Verilog’un Temel Sınırlamaları:
    • Zayıf tür denetimi (örneğin reg ile wire karışıklığı)
    • Nesne yönelimli programlama (OOP) desteği yok
    • Kısıtlanmış rastgeleleştirme yoktur, rastgele uyarıcı üretimi için sınırlı destek vardır.
    • Doğrulama özellikleri eksik (assertion, coverage, vb.)

Doğrulama Mühendislerinin Yaşadığı Zorluklar
#

SystemVerilog öncesinde mühendisler parçalı ve tutarsız çözümler kullanıyordu:

  1. Verilog Testbench’leri:
    • Temel, hata yapmaya açık ve ölçeklenemez (initial bloklarla manuel kontroller)
  2. Ticari Doğrulama Dilleri (HVL’ler):
    • Vera (Synopsys), e (Verisity), OpenVera (Synopsys) gibi diller ek araçlar ve bilgi gerektiriyordu.
  3. Ad-hoc Entegrasyonlar:
    • C/C++, Tcl/Python scriptleri ve simülatöre özgü API’ler ile yapılan karmaşık çözümler

Sonuçlar:
✔ Uzun debug süreçleri
✔ Zor bakım
✔ Ekipler arası tutarsız metodolojiler
✔ Doğrulama tasarımın darboğazı haline geldi


SystemVerilog’un Doğuşu 🛠️
#

SystemVerilog, tasarım ve doğrulama için birleşik bir dil olarak geliştirildi:

  1. Verilog-2001 – RTL tasarımı için temel yapılar
  2. OpenVera – Doğrulama için randomizasyon ve kısıt mekanizmaları
  3. Superlog – Nesne yönelimli programlama, interface ve package desteği

Zaman Çizgisi:

  • 2002 – İlk sürüm (SystemVerilog 3.0) Accellera tarafından yayınlandı
  • 2005 – IEEE tarafından standartlaştırıldı: IEEE 1800-2005
  • 2009 – Verilog ile birleştirilerek IEEE 1800-2009 standardı oluştu

SystemVerilog Neden Devrimseldi?
#

  1. RTL Tasarımda Yenilikler:

    • logic türü, reg ve wire karmaşasını ortadan kaldırır
    • interface ve modport yapıları modüller arası bağlantıyı sadeleştirir
    • always_comb, always_ff, always_latch blokları daha belirgin davranış sağlar
  2. Doğrulamada Atılımlar:

    • SystemVerilog Assertions (SVA) ile formal kontrol mümkün
    • OOP: Sınıflar, kalıtım, çok biçimlilik (polymorphism)
    • Randomize testler için rand, constraint gibi yapılar
    • UVM (Universal Verification Methodology) için temel altyapı
  3. Tasarım & Doğrulama Bütünleşmesi:

    • Hem RTL tasarım hem gelişmiş testbench’ler için tek bir dil
    • Kontekst değiştirme ihtiyacı azalır, verimlilik artar

Ek Açıklamalar
#

  • Superlog’un Katkısı: Nesne yönelimli yapı ve interface gibi özellikler büyük ölçüde buradan gelmiştir.
  • Vera vs. e vs. SystemVerilog: e dili güçlüydü ancak UVM ile birlikte SystemVerilog sektörde baskın hale geldi.
  • VHDL Karşılaştırması: VHDL yalnızca tasarıma odaklanırken, SystemVerilog hem tasarım hem doğrulamayı kapsar.

🕰️ Verilog’un Gelişimi
#

---
config:
  theme: forest
---
timeline
    title Verilog'un Tarihsel Gelişimi
    1983 : Verilog geliştirilmeye başlandı (Gateway)
    1984 : Ticari sürüm yayımlandı (Verilog-XL)
    1989 : Cadence, Gateway'i satın aldı
    1995 : IEEE 1364-1995 standardı kabul edildi
    2001 : Verilog-2001 yayımlandı (major update)
    2005 : Verilog-2005 – küçük düzeltmeler ve sadeleştirme

🚀 SystemVerilog’un Doğuşu ve Evrimi
#

---
config:
  theme: forest
---
timeline
    title SystemVerilog'un Gelişimi
    2002 : SystemVerilog 3.0 – Accellera tarafından tanıtıldı
    2003 : SystemVerilog 3.1 – class, constraint, interface yapıları eklendi
    2005 : IEEE 1800-2005 – ilk resmi SV standardı
    2009 : IEEE 1800-2009 – Verilog ile birleşti
    2012 : IEEE 1800-2012 – assertion ve coverage iyileştirmeleri
    2017 : IEEE 1800-2017 – modern UVM uyumluluğu
    2023 : IEEE 1800-2023 – en güncel sürüm, UVM-IEEE ile daha uyumlu

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

Related

SystemVerilog Clocking Block – Testbench Zamanlama Kontrolü
· loading · loading
Doğrulama Donanım Tasarımı SystemVerilog Clocking Block RTL Tasarımı Testbench UVM Zamanlama
Doğrulama Donanım Tasarımı
SystemVerilog Logic Veri Türü
· loading · loading
Donanım Tasarımı Doğrulama SystemVerilog Logic RTL Tasarımı Verilog Sentezleme Net vs Değişken
Donanım Tasarımı Doğrulama
SystemVerilog Veri Türleri
· loading · loading
Donanım Tasarımı Doğrulama SystemVerilog Verilog RTL Tasarımı Veri Tipleri Sentezleme Simülasyon
Donanım Tasarımı Doğrulama
SystemVerilog Döngüler ve Kontrol Akışı – for, while, foreach, repeat, break
· loading · loading
Donanım Tasarımı Doğrulama SystemVerilog Döngüler Kontrol Akışı Testbench RTL Tasarımı Break/Continue
Donanım Tasarımı Doğrulama
SystemVerilog Enum Veri Tipi
· loading · loading
Donanım Tasarımı Doğrulama SystemVerilog Enum Durum Makinesi RTL Tasarımı Testbench Hata Ayıklama
Donanım Tasarımı Doğrulama
SystemVerilog Interface – modport ve Clocking Block ile Modüler Bağlantı
· loading · loading
Donanım Tasarımı Doğrulama SystemVerilog Interface Modport Testbench RTL Tasarımı Bağlantı
Donanım Tasarımı Doğrulama

comments powered by Disqus