Giriş ve Çıkış Portları
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 31 / 90.
Giriş ve çıkış bağlantı noktaları, bir modülün dış dünyayla iletişim kurmasını sağlayan bağlantılardır. Bir yonganın pinleri gibidirler. Bağlantı noktaları, bir modül ile tasarımın geri kalanı arasındaki arayüzdür.
Her modülde şunlar bulunur:
- Giriş bağlantı noktaları: modülün içine gelen sinyaller
- Çıkış bağlantı noktaları: modülün dışına giden sinyaller
Giriş Portları
Giriş portları dışarıdan veri alır. Modülün içinde değiştirilemezler: yalnızca okunabilirler.
input clk; // Tek bitlik giriş
input [7:0] data; // 8 bitlik giriş vektörü
input a, b; // Tek satırda birden fazla girişGirişler için kurallar:
- Modül içinde bir değer atanamaz
regolarak bildirilemez- Her zaman
wireolur (varsayılan olarak)
Çıkış Portları
Çıkış portları verileri dışarıya gönderir. Bunlar assign veya always blokları tarafından sürülebilir.
output out; // Tek bitlik çıkış
output [3:0] result; // 4 bitlik çıkış
output reg busy; // Çıkış reg olabilir
output wire ready; // Çıkış wire olabilirÇıkış kuralları:
wire(assignile) veyareg(alwaysile) olabilir- Modülün içindeki bir şey tarafından sürülmelidir
Port Bildirimi Sözdizimi
Port bildirimi sözdizimi, bir modülde giriş ve çıkış portlarını yazmanın belirli biçimidir. Verilog'a her port hakkında üç şey söyler:
- Yön: giriş mi, çıkış mı yoksa giriş/çıkış mı?
- Boyut: kaç bit genişliğinde?
- Ad: adı nedir?
module example (
input [7:0] data_in, // Giriş vektörü
input clk, // Tekil giriş
input enable, // Tekil giriş
output reg [7:0] out, // Çıkış reg
output busy // Çıkış wire
);Port Yönü Neden Önemlidir
Yön, Verilog'a şunları bildirir:
- Modülün okuyabileceği sinyaller (girişler)
- Modülün yazabileceği sinyaller (çıkışlar)
- İzin verilen bağlantı türleri
Yanlış yön kullanmak derleme hatalarına neden olur.
Kod Örneği
module port_demo (
input [3:0] a, // Yalnızca okunabilir
input [3:0] b, // Yalnızca okunabilir
output reg [3:0] sum, // Yazılabilir (reg)
output [3:0] diff // Yazılabilir (wire)
);
always @(*) begin
sum = a + b; // Çıkış reg'ine yazılıyor
end
assign diff = a - b; // Çıkış wire'ına yazılıyor
endmoduleGörev
Port Bildirimlerini Tamamla
Yapılacaklar:
- 8 bitlik
data_inadlı bir giriş ekle - Tek bitlik
clkadlı bir giriş ekle - 4 bitlik
resultadlı bir çıkış ekle (regkullan:alwaysbloğunda atanacak) - Tek bitlik
validadlı bir çıkış ekle (wirekullan:assignile atanacak)
Kendin dene
module port_challenge (
// Görev 1: data_in adlı 8 bitlik bir giriş ekleyin
// Görev 2: clk adlı tek bitlik bir giriş ekleyin
// Görev 3: result adlı 4 bitlik bir çıkış ekleyin (reg kullanın)
// Görev 4: valid adlı tek bitlik bir çıkış ekleyin (wire kullanın)
);
reg [3:0] counter;
always @(posedge clk) begin
counter <= counter + 1;
result <= counter;
end
assign valid = (counter > 8);
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi