Ana içeriğe geç
  1. Eğitimler/
  2. Verilog/

Verilog Tasarım Metodolojileri ve Modelleme Stilleri

·438 kelime·3 dk· loading · loading · ·
Kerim Turak
Donanım Tasarımı Verilog Tasarım Metodolojisi RTL Modelleme Donanım Tasarımı Dijital Tasarım Akışı
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 2: This Article

🎨 Verilog Tasarım Metodolojileri
#

1. Bottom-Up Tasarım (Aşağıdan Yukarıya)
#

Nasıl çalışır? Temel mantık kapıları (AND, OR) veya küçük modüllerle başlanır, bunlar birleştirilerek karmaşık sistemler oluşturulur. Avantajları:

  • Her bileşen bağımsız olarak test edilebilir
  • Küçük ekipler veya modüler projeler için uygundur Örnek: Önce bir full adder modülü tasarlanır, ardından bunlardan oluşan 8-bit ripple carry adder inşa edilir.

2. Top-Down Tasarım (Yukarıdan Aşağıya)
#

Nasıl çalışır? Önce sistemin genel mimarisi tanımlanır, sonra bu yapı alt modüllere bölünerek detaylandırılır. Avantajları:

  • Mimari seviyede erken doğrulama yapılabilir
  • Karmaşık sistemler daha yönetilebilir hale gelir Örnek: Bir işlemci tasarımında önce instruction set belirlenir, ardından ALU, register file gibi bileşenlere inilerek detaylandırılır.

3. Mixed Design (Karma Yöntem)
#

Nasıl kullanılır? Endüstride en çok tercih edilen yöntemdir.

  • Üst seviye yapılar top-down yaklaşımla planlanır
  • Alt seviyede kritik modüller (örneğin PLL, bellek kontrolcü) bottom-up olarak geliştirilir.
graph TD
  A[Top-Level Spec] --> B[Submodule 1]
  A --> C[Submodule 2]
  B --> D[Gate-Level Implementation]
  C --> E[Third-Party IP]

📝 Verilog Modelleme Stilleri
#

1. Behavioral (Davranışsal Modelleme)
#

  • Ne zaman kullanılır? Algoritmik davranışların tanımlanmasında.
  • always @(*) kombinasyonel mantık, always @(posedge clk) sıralı mantık için kullanılır. Örnek:
module max_selector (
    input  [7:0] a,
    input  [7:0] b,
    output [7:0] y
);

    reg [7:0] y_reg;
    assign y = y_reg;

    always @(*) begin
        y_reg = (a > b) ? a : b;
    end

endmodule

2. Dataflow (Veri Akışı Modelleme)
#

  • Tipik kullanım alanları: Aritmetik birimler, mux’lar, veri yolları.
  • assign ifadeleri sürekli çalışır, sadece wire tipine atanabilir. Örnek:
module mux2to1 (
    input        sel,
    input  [7:0] in1,
    input  [7:0] in2,
    output [7:0] out
);

    assign out = (sel) ? in1 : in2;

endmodule

3. Structural (Yapısal Modelleme)
#

  • Gerçek devre şemalarına benzer şekilde modüller arası bağlantılar tanımlanır.
  • Port bağlantıları isimle (.port_name(signal)) ya da sırayla yapılabilir. Örnek:
module and_gate (
    input  a,
    input  b,
    output y
);

    assign y = a & b;

endmodule

module top_module (
    input  in1,
    input  in2,
    output out
);

    and_gate U1 (
        .a(in1),
        .b(in2),
        .y(out)
    );

endmodule

4. Gate-Level (Kapı Seviyesi Modelleme)
#

  • Modern tasarımlarda sentez araçları tarafından otomatik oluşturulur.
  • Ancak bazı durumlarda elle yazılması gerekebilir (örneğin ASIC standard hücre eşlemesi, FPGA primitif kullanımı). Örnek:
module and_gate_delayed (
    input  in1,
    input  in2,
    output out
);

    and #(2) G1 (out, in1, in2); // 2ns gecikmeli AND kapısı

endmodule

🚀 Tasarım Akışı – Genel Bakış
#

flowchart TD
  A[System Specification] --> B[Behavioral RTL Design]
  B --> C[RTL Simulation & Functional Verification]
  C --> D[Synthesis]
  D --> E[Gate-Level Netlist]
  E --> F[Place & Route]
  F --> G[Bitstream / GDSII Generation]
  G --> H[Timing / Power / DRC / LVS Verification]
  H -->|If Failed| B

Bu diyagram, bir Verilog tasarımının simülasyondan fiziksel cihaza kadar olan yolculuğunu özetler.


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

Related

Verilog'a Giriş: Dijital Tasarım Temelleri
·699 kelime·4 dk· loading · loading
Kerim Turak
Donanım Tasarımı Verilog FPGA ASIC RTL Tasarımı Donanım Tanımlama Dili
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 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 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 Derleyici Direktifleri ve Makrolar: Koşullu Derleme ve Kod Tekrarı
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Direktifleri Verilog Makrolar Koşullu Derleme Kod Tekrarı Donanım Tanımlama Dili
Donanım Tasarımı