Menu
Coddy logo textTech

Sıraya Göre Port Eşleme

Coddy'nin Verilog Journey'sinin Temel Bilgiler 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 ada göre port eşleme yöntemini öğ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; Verilog bunları tek tek eşleştirir.

Sözdizimi:

module_name instance_name (signal1, signal2, signal3);

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

Örnek

Modül tanımı:

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

Sıralı port eşlemesiyle örnekleme:

or_gate or1 (input_a, input_b, output_y);

Bu, şunları bağlar:

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

Sıra Önemlidir

Sıraya göre port eşlemesinde sıra kritiktir:

// 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);

Sırayı karıştırırsan bağlantılar yanlış portlara gider. Kod ilk bakışta doğru göründüğü için bunun hatasını ayıklamak zor olabilir.

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

Özellikİsme GöreSıraya Göre
Sözdizimi.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

Bağlantı Noktası Eşlemesini Sıraya Göre Ne Zaman Kullanmalı?

Bağlantı noktası eşlemesi şu durumlarda kabul edilebilir:

  • Modülün çok az bağlantı noktası varsa (2-3)
  • Bağlantı noktalarının sırası açıksa ve değişmesi olası değilse
  • Hızlı testbench'ler yazıyorsanız

Çoğu tasarım için isme göre port eşleme tercih edilir; çünkü daha anlaşılırdır ve hataya daha az açıktır.

challenge icon

Görev

Bağlantı noktalarını sıralama yoluyla eşleyerek sinyalleri doğru sırada listeleyip örneklemeyi tamamlayın.

Yapılacaklar:

Modül bağlantı noktaları (bu sırada):

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

Bağlanacak sinyaller:

  • enable_signal → en ile bağlayın
  • data_input → d ile bağlayın
  • data_output → q ile 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 mapping 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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi