Giriş ve Çıkış Portları
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 31 / 90.
Input ve output portları, bir modülün dış dünyayla iletişim kurmasını sağlayan bağlantılardır. Bir çip üzerindeki pinler gibidirler. Portlar, bir modül ile tasarımın geri kalanı arasındaki arayüzdür.
Her modulede şunlar vardır:
- 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-bit giriş vektörü
input a, b; // Bir satırda birden fazla girişGirdiler için kurallar:
- Modül içinde bir değer atanamaz
regolarak bildirilemez- Her zaman (varsayılan olarak)
wire
Çı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Çıktı 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 input ve output portlarını yazmanın belirli yoludur. Verilog'a her port hakkında üç şey söyler:
- Yön: input, output veya inout mu?
- Boyut: kaç bit genişliğinde?
- Ad: ne olarak adlandırılıyor?
module example (
input [7:0] data_in, // Giriş vektörü
input clk, // Tek giriş
input enable, // Tek 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)
- Hangi bağlantı türlerine izin verildiği
Yanlış yön kullanmak derleme hatalarına neden olur.
Kod Örneği
module port_demo (
input [3:0] a, // Sadece okunabilir
input [3:0] b, // Sadece okunabilir
output reg [3:0] sum, // Yazılabilir (reg)
output [3:0] diff // Yazılabilir (wire)
);
always @(*) begin
sum = a + b; // output reg'e yazılıyor
end
assign diff = a - b; // output wire'a yazılıyor
endmoduleGörev
Port bildirimlerini tamamlayın
Yapılacaklar:
-
data_inadlı 8 bitlik bir giriş ekleyin clkadlı tek bitlik bir giriş ekleyinresultadlı 4 bitlik bir çıkış ekleyin (reg kullanın: always bloğunda atanacaktır)validadlı tek bitlik bir çıkış ekleyin (wire kullanın: assign ile atanacaktır)
Kendin dene
module port_challenge (
// Görev 1: data_in adında 8-bit bir giriş ekle
// Görev 2: clk adında tek bitlik bir giriş ekle
// Görev 3: result adında 4-bit bir çıkış ekle (reg kullan)
// Görev 4: valid adında tek bitlik bir çıkış ekle (wire kullan)
);
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