Ana içeriğe geç

Verilog Sentezi: RTL'den Kapı Seviyesi Netlist'e

· loading · loading · ·
Kerim Turak
Donanım Tasarımı Verilog Sentez RTL Tasarımı Kapı Seviyesi Netlist FPGA Tasarım ASIC Tasarım
Donanım Tasarımı
Yazar
Kerim Turak
Digital IC Design & Verification Engineer
Table of Contents
Verilog HDL Serisi - This article is part of a series.
Part 18: This Article

🏗️ Sentez (Synthesis) Nedir?
#

Sentez, RTL seviyesindeki Verilog kodunun, fiziksel donanıma (FPGA veya ASIC) eşlenecek bir kapı seviyesi netliste dönüştürülmesi sürecidir.

🔧 Sentez sırasında olanlar:
#

  • always ve assign blokları kapılara ve flip-floplara dönüştürülür
  • Parametreler ve lojik ifadeler çözülür
  • Alan, hız ve güç açısından optimizasyon uygulanır

⚠️ Sentezlenebilir Kodda Kaçınılması Gereken Yapılar
#

YapıSorun Nedir?Yerine Ne Kullanılmalı?
initial bloğuSentez desteklemezReset mantığı
#delaySadece simülasyon içindirSaatle çalışan always bloğu
$display, $monitorSentezlenemezSadece testbench içinde kullan
for, while (değişken sınır)Sonlu olmayabilirSabit aralıklı generate
Dinamik bellekDonanımda desteklenmezSabit boyutlu diziler kullanın

🎨 RTL Kodlama Tarzının Senteze Etkisi
#

✅ Doğru Uygulamalar:
#

  • Ardışıl mantık için always @(posedge clk) + <= (non-blocking) kullanın
  • Kombinasyonel mantık için always @(*) + = (blocking) kullanın
  • Tüm çıkışlara atama yapın — aksi takdirde latch oluşabilir
  • Duyarlılık listelerini tam tutun veya (*) kullanın

❌ Kötü Uygulamalar:
#

  • Aynı blokta = ve <= karıştırmak
  • Kısmi atamalar → latch oluşturabilir
  • Simülasyon yapılarını sentez kodunda kullanmak

❗ Örnek: İstenmeyen Latch Türetimi
#

always @(*) begin
  if (en)
    y = a;  // eğer en false ise latch oluşur
end

✅ Doğru sürüm:

always @(*) begin
  if (en)
    y = a;
  else
    y = 0;
end

🔁 Özet Tablosu
#

KonuDavranışsal SimKapı Seviyesi SimSentez
Simülasyon hızıHızlıYavaşUygulanmaz
RTL yapılarıKullanılırYassılaştırılırSentezlenebilir
Zaman modellemeYaklaşıkGerçekçiBelirlenmiş
Kullanım amacıİşlevsel testSon doğrulamaNetlist üretimi
Gecikme desteğiVar (#)Var (SDF)Yok

Verilog HDL Serisi - This article is part of a series.
Part 18: This Article

Related

Verilog Atamaları: Prosedürel ve Sürekli Atama Farkları
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Atamaları Sürekli Atama Prosedürel Atama RTL Tasarımı Donanım Tanımlama Dili
Donanım Tasarımı
Verilog Kontrol Akışı: if, case, Döngüler ve RTL Kuralları
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Kontrol Akışı Verilog If-Else Verilog Case Verilog Döngüler RTL Tasarımı
Donanım Tasarımı
Donanım Tasarımında Soyutlama Seviyeleri
·208 kelime·1 dk· loading · loading
Kerim Turak
Donanım Tasarımı Donanım Soyutlama RTL Tasarımı Kapı Seviyesi Transistör Seviyesi Dijital Tasarım
Donanım Tasarımı
Verilog Ad Alanları: Kapsam ve Modülerliği Anlamak
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Ad Alanı Verilog Kapsam Modülerlik RTL Tasarımı Donanım Tanımlama Dili
Donanım Tasarımı
Verilog Blocking vs. Non-Blocking Atamalar
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Atamaları Blocking Atama NonBlocking Atama RTL Tasarımı Sıralı Mantık
Donanım Tasarımı
Verilog Parametreleri: Modülleri Yeniden Kullanılabilir ve Yapılandırılabilir Kılmak
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Parametreleri Yeniden Kullanılabilir Tasarım Yapılandırılabilir Modüller RTL Tasarımı Donanım Tanımlama Dili
Donanım Tasarımı