Ana içeriğe geç

Derleyici Yönergeleri ve Makrolar

· loading · loading · · ·
HDL Verilog HDL
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents
Verilog HDL Serisi - This article is part of a series.
Part 19: This Article

🧭 Verilog Derleyici Direktifleri & Makrolar
#

Verilog’daki derleyici direktifleri ters kesme karakteriyle başlar ` ve sentez donanımını değil, derleyiciyi/simülatörü yönlendirir. Koşullu derleme, makro tanımlama, dosya dahil etme ve simülasyon kontrolü için önemlidir.


📌 Yaygın Derleyici Direktifleri
#

Direktif Açıklama Örnek
`define Sabit veya makro tanımlar `define WIDTH 8
`ifdef / `ifndef Koşullu derleme `ifdef DEBUG ...
`include Başka bir dosyayı dahil eder `include "defs.v"
`timescale Zaman birimi ve çözünürlük ayarı `timescale 1ns / 1ps
`undef Makro tanımını siler `undef WIDTH
`else / `elsif ifdef ile birlikte alternatif yol sağlar
`default_nettype Otomatik wire tanımlarını kontrol eder `default_nettype none
`resetall Tüm direktifleri varsayılana döndürür

🧠 Makro Örneği
#

`define ile sabitler veya yeniden kullanılabilir kod parçaları tanımlanabilir:

`define WIDTH 8

module adder (
  input  [`WIDTH-1:0] a, b,
  output [`WIDTH-1:0] y
);
  assign y = a + b;
endmodule

Makrolar derlemeden önce ön işlemci tarafından yerleştirilir — C dilindeki #define gibidir.


🔀 Koşullu Derleme
#

Hata ayıklama veya platforma özel özellikleri etkinleştirmek için kullanılır:

`define DEBUG

module test;
  initial begin
    `ifdef DEBUG
      $display("Debug modu aktif");
    `endif
  end
endmodule

🔄 Dosya Dahil Etme
#

Kodu birden fazla dosyaya bölmek için:

`include "parameters.vh"

En iyi uygulama: Dahil edilen dosyalar için .vh veya .svh uzantılarını kullanın.


🚫 Otomatik Net Tanımlamaları Devre Dışı Bırakma
#

Varsayılan olarak, tanımsız sinyaller wire kabul edilir. Bu sessiz hatalara neden olabilir. Şöyle engellenir:

`default_nettype none

✅ En İyi Uygulamalar
#

  • Her dosyanın en üstüne `default_nettype none ekleyin
  • Makro kodlarını daima ifdef / endif blokları içinde kullanın
  • Çok karmaşık makrolardan kaçının — hata ayıklaması zordur
  • include direktifini yalnızca sabitler, parametreler veya küçük yardımcı kodlar için kullanın

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

Related

Modül Tanımı, Kullanımı ve Yapılar
·473 kelime·3 dk· loading · loading
HDL Verilog Verilog HDL Modül Yapısı Assign Always Blokları
Blocking ve Non-Blocking Atamalar
· loading · loading
HDL Verilog HDL
Gecikme Kontrolleri
· loading · loading
HDL Verilog HDL
Görev (Task) ve Fonksiyon (Function)
· loading · loading
HDL Verilog HDL
Hiyerarşik Referans
· loading · loading
HDL Verilog HDL
Komut Satırı Girdisi
· loading · loading
HDL Verilog HDL