Menu
Coddy logo textTech

Sıraya Göre Port Eşleme

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 35 / 90.

Önceki derste, her bir bağlantıyı .port(signal) kullanarak açıkça etiketlediğiniz isme göre port eşleme konusunu öğrendiniz. Şimdi alternatif yöntemi ele alacağız: sıraya göre port eşleme.

Sinyalleri, modül tanımında göründükleri ordera (sıraya) göre bir modülün portlarına bağlar. Sinyalleri parantez içinde listelemeniz yeterlidir; Verilog bunları teker teker eşleştirir.

Sözdizimi:

module_name instance_name (signal1, signal2, signal3);

İlk sinyal ilk porta, ikincisi ikinci porta bağlanır ve bu şekilde devam eder.

Örnek

Module tanımı:

module or_gate (
  input in1,      // İlk port
  input in2,      // İkinci port
  output result   // Üçüncü port
);
  assign result = in1 | in2;
endmodule

Sıraya göre port eşlemesi ile örnekleme (instantiation):

or_gate or1 (input_a, input_b, output_y);

Bu bağlantıları yapar:

  • Birinci signal input_a → birinci port in1
  • İkinci signal input_b → ikinci port in2
  • Üçüncü signal output_y → üçüncü port result

Order Matters

Sıra ile port haritalamada (port mapping by order), sıralama kritik önem taşır:

// Doğru sıra
or_gate or1 (input_a, input_b, output_y);

// Yanlış sıra - sinyaller yanlış portlara bağlanmış!
or_gate or1 (input_b, input_a, output_y);
or_gate or1 (output_y, input_a, input_b);

Eğer order karıştırılırsa, bağlantılar wrong ports kısmına gider. Kod ilk bakışta correct göründüğü için hata ayıklamak zor olabilir.

İsme Göre ve Sıraya Göre Port Eşleme (Port Mapping)

Özellikİsme Göre (By Name)Sıraya Göre (By Order)
Sözdizimi (Syntax).port(signal)signal1, signal2
Sıra önemli mi?HayırEvet
Kendi kendini belgeliyor mu?EvetHayır
Hata riskiDüşükYüksek
Şunun için önerilir:Çoğu tasarımYalnızca basit durumlar

Port Mapping By Order Ne Zaman Kullanılır?

Port mapping by order şu durumlarda kabul edilebilir:

  • Modül çok az sayıda porta (2-3) sahip olduğunda
  • Port sırası açık ve değişme olasılığı düşük olduğunda
  • Hızlı testbench'ler yazarken

Çoğu tasarım için, ismine göre port haritalama (port mapping) tercih edilir çünkü daha net ve hataya daha az meyillidir.

challenge icon

Görev

Sıraya göre port eşlemesini kullanarak sinyalleri doğru sırada listeleyip örneklendirmeyi (instantiation) tamamlayın.

Yapılacaklar:

Modül portları (bu sırayla):

  1. input en (etkinleştirme)
  2. input [7:0] d (veri girişi)
  3. output [7:0] q (veri çıkışı)

Bağlanacak sinyaller:

  • enable_signalen portuna bağlayın
  • data_inputd portuna bağlayın
  • data_outputq portuna bağlayın

Kendin dene

module register (
  input en,
  input [7:0] d,
  output [7:0] q
);
  assign q = en ? d : q;
endmodule

module top (
  input enable_signal,
  input [7:0] data_input,
  output [7:0] data_output
);
  
  // TODO: register'ı reg1 adıyla ORDER eşlemesi kullanarak örnekle
  // Sinyalleri doğru sırada listele: enable_signal, data_input, data_output
  // .port(signal) sözdizimini kullanma

endmodule
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler