Birleştirme Operatörü
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 27 / 90.
Bitiştime (concatenation) operatörü { } birden fazla sinyali, sabiti veya ifadeyi tek bir daha büyük vektör halinde birleştirir. Daha geniş değerler oluşturmak için bitleri birbirine bağlamanız gerektiğinde kullanılır.
Hangi Değerler Birleştirme (Concatenation) ile Çalışır
Şunları birleştirebilirsiniz:
- Wire'lar ve reg'ler — herhangi bir sinyal
- Sabitler —
4'b1010veya8'hFFgibi sayılar
- İfadeler (Expressions) —
a + bgibi işlemlerin sonuçları - Yinelemeler (Replications) — bir değeri birden çok kez tekrarlama
Birleştirilen tüm değerlerin sabit, bilinen genişlikleri olmalıdır.
Temel Sözdizimi: {value1, value2, value3, ...} Sonuç genişliği, tüm bireysel genişliklerin toplamıdır.
Örnekler
İki 4-bitlik değeri 8 bit olarak birleştirin (Combine):
reg [3:0] high, low;
reg [7:0] word;
word = {high, low}; // high üst 4 bit olur, low alt 4 bit olurSabitlerle birleştirme:
data = {4'b1010, 4'b0000}; // 8'b10100000İkiden fazlasını birleştirin:
full = {a, b, c, d}; // Tüm genişlikler toplanırReplication
Bir değeri {n{value}} kullanarak birden fazla kez tekrarlayabilirsiniz:
repeated = {4{4'b1010}}; // 16'b1010101010101010 (repeat 4 times)Bu durum, işaret genişletme (sign extension) için kullanışlıdır:
signed_8bit = {{4{sign_bit}}, value_4bit};Kod Örneği
module concatenation_demo;
reg [3:0] upper, lower;
reg [7:0] combined;
reg [11:0] repeated;
initial begin
upper = 4'b1010;
lower = 4'b1100;
combined = {upper, lower}; // 10101100
repeated = {3{4'b1010}}; // 101010101010
$display("{upper, lower} = %b", combined);
$display("{3{4'b1010}} = %b", repeated);
$finish;
end
endmoduleÇıktı:
{upper, lower} = 10101100
{3{4'b1010}} = 101010101010Önemli Notlar
- Sıralama önemlidir:
{a, b},{b, a}ifadesinden farklıdır - Tüm parçalar sabit genişliklere sahip olmalıdır (boyutlandırılmamış sayılar olmamalıdır)
- Birleştirme işlemi atamaların hem sol hem de sağ tarafında kullanılabilir
Görev
Her bir görev için doğru birleştirme (concatenation) ifadelerini yazın.
Ne yapılmalı:
avebdeğişkenlerini 8-bit'lik bir sonuçta birleştiripcombine1içinde saklayınc,dveedeğişkenlerini 12-bit'lik bir sonuçta birleştiripcombine2içinde saklayınfilegdeğişkeninintwokopyasını 12-bit'lik bir sonuçta birleştiripcombine3içinde saklayın
Kendin dene
module concatenation_challenge;
reg [3:0] a, b;
reg [3:0] c, d, e;
reg [3:0] f, g;
reg [7:0] combine1;
reg [11:0] combine2, combine3;
initial begin
a = 4'b1010;
b = 4'b0101;
c = 4'b1111;
d = 4'b0000;
e = 4'b1100;
f = 4'b1001;
g = 4'b0110;
combine1 = ______; // Combine a and b into an 8-bit result
combine2 = ______; // Combine c, d, and e into a 12-bit result
combine3 = ______; // Combine f and two copies of g into a 12-bit result
$display("{a, b} = %b", combine1);
$display("{c, d, e} = %b", combine2);
$display("{f, g, g} = %b", combine3);
$finish;
end
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ığı