Menu
Coddy logo textTech

Port Mapping By Order

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 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 order temelinde modülün bağlantı noktalarına bağlar. Sinyalleri parantez içinde listelemeniz yeterlidir; Verilog bunları birer birer 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ıraya göre port eşlemesiyle örneklendirme:

or_gate or1 (input_a, input_b, output_y);

Bu, şunları bağlar:

  • First signal input_a → first port in1
  • Second signal input_b → second port in2
  • Third signal output_y → third port result

Sıra Önemlidir

port eşlemesi sıraya göre yapıldığında 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 Port Eşleme ve Sıraya Göre Eşleme

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

Portları Sıraya Göre Eşlemeyi Ne Zaman Kullanmalı?

Portları sıraya göre eşlemek şu durumlarda kabul edilebilir:

  • Modülün çok az sayıda portu (2-3) varsa
  • Port sırası açıksa ve değişme olasılığı düşükse
  • Hızlı testbench'ler yazıyorsanız

Çoğu tasarım için ada 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_signalen ile bağlayın
  • data_inputd ile bağlayın
  • data_outputq 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.

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

Kendi başına pratik yap: Online Verilog derleyicisi