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 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 sıraya göre bir modülün portlarına bağlar. Sinyalleri parantez içinde listelemeniz yeterlidir ve Verilog bunları tek tek 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

Modül tanımı:

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

Sıralı port eşleme ile örnekleme:

or_gate or1 (input_a, input_b, output_y);

Bu şunları bağlar:

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

Sıralama Önemlidir

Sıraya göre port eşlemede, dizilim kritiktir:

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

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

Eğer sırayı karıştırırsanız, bağlantılar yanlış portlara gider. Kod ilk bakışta doğru göründüğü için bu durumun hata ayıklaması zor olabilir.

İsme Göre Port Eşleme vs Sıraya Göre

Özellikİsme GöreSıraya Göre
Sözdizimi.port(signal)signal1, signal2
Sıralama önemli mi?HayırEvet
Kendi kendini belgeleyen?EvetHayır
Hata riskiDüşükYüksek
Şunlar için önerilirÇoğu tasarımYalnızca basit durumlar

Sıraya Göre Port Eşleme Ne Zaman Kullanılır?

Sıraya göre port eşleme şu durumlarda kabul edilebilir:

  • Modülün çok az portu olduğunda (2-3)
  • Port sırası belirgin olduğunda ve değişmesi muhtemel olmadığında
  • Hızlı testbench'ler yazarken

Çoğu tasarım için, isme göre port eşleme tercih edilir çünkü daha net ve hataya daha az meyillidir.

challenge icon

Görev

Sıralı port eşlemesi kullanarak sinyalleri doğru sırayla listeleyerek örneklemeyi tamamlayın.

Ne yapmalı:

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

Kopya kağıdı

Sıraya göre port eşleme, sinyalleri modülün port tanımlama sırasıyla eşleşen konumlarına göre bağlar:

module_name instance_name (signal1, signal2, signal3);

Bir or_gate modülü ile örnek (portlar: in1, in2, result):

or_gate or1 (input_a, input_b, output_y);

Sıralama kritiktir — sinyallerin yerini değiştirmek, hata ayıklaması zor olan yanlış bağlantılara neden olur.

Özellikİsme GöreSıraya Göre
Sözdizimi.port(signal)signal1, signal2
Sıralama önemli mi?HayırEvet
Hata riskiDüşükYüksek
Önerilen kullanımÇoğu tasarım içinSadece basit/az sayıda port için

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: SIRALI (ORDER) eşleme kullanarak reg1 adıyla register modülünü örnekleyin
  // Sinyalleri doğru sırayla listeleyin: enable_signal, data_input, data_output
  // .port(signal) sözdizimini kullanmayın

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