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;
endmoduleSıraya göre port eşlemesi ile örnekleme (instantiation):
or_gate or1 (input_a, input_b, output_y);Bu bağlantıları yapar:
- Birinci
signalinput_a→ birinciportin1 - İkinci
signalinput_b→ ikinciportin2 - Üçüncü
signaloutput_y→ üçüncüportresult
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ır | Evet |
| Kendi kendini belgeliyor mu? | Evet | Hayır |
| Hata riski | Düşük | Yüksek |
| Şunun için önerilir: | Çoğu tasarım | Yalnı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.
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):
input en(etkinleştirme)input [7:0] d(veri girişi)output [7:0] q(veri çıkışı)
Bağlanacak sinyaller:
enable_signal→enportuna bağlayındata_input→dportuna bağlayındata_output→qportuna 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
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı