Operatörlerle Atama
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 38 / 90.
Sürekli atamayı (continuous assignment) anladığınızda, faydalı mantıklar oluşturmak için bunu operatörlerle birleştirebilirsiniz. assign ifadesi, bir kabloyu (wire) sürmek için herhangi bir operatörü kullanabilir.
Temel Sözdizimi
assign wire_name = expression;İfade şunları içerebilir:
- Aritmetik operatörler (
+,-,*,/) - Bit düzeyinde operatörler (
&,|,^,~) - Mantıksal operatörler (
&&,||,!)
- Karşılaştırma operatörleri (
>,<,==,!=) - Kaydırma operatörleri (
<<,>>) - Koşullu operatör (
? :)
Farklı Operatörlerle Örnekler
Bit Düzeyinde VE (Bitwise AND):
assign out = a & b;Toplama:
assign sum = a + b;Karşılaştırma:
assign is_greater = (a > b);Koşullu (çoklayıcı):
assign out = sel ? a : b;Kaydırma:
assign shifted = data << 2;Birleştirme:
assign bus = {high_byte, low_byte};Kod Örneği
module assign_operators (
input [3:0] a, b,
input sel,
output [3:0] and_out,
output [4:0] sum_out,
output is_equal,
output mux_out
);
assign and_out = a & b; // Bit düzeyinde VE (Bitwise AND)
assign sum_out = a + b; // Toplama
assign is_equal = (a == b); // Karşılaştırma
assign mux_out = sel ? a : b; // Koşullu (çoklayıcı)
endmoduleTek Bir Atamada Birden Fazla Operatör
Operatörleri tek bir ifadede birleştirebilirsiniz:
assign result = (a & b) | (c ^ d);
assign final = (a + b) > (c - d);
assign parity = ^data; // İndirgeme XOR (tek sayıda 1)Operatör Önceliği
Verilog standart operatör önceliğini takip eder. Amacınızı netleştirmek için parantez ( ) kullanın:
// Belirsiz
assign out = a & b | c;
// Net
assign out = (a & b) | c;Görev
Görevlere göre eksik assign ifadelerini ekleyin.
Yapılması gerekenler:
and_resultdeğişkeniniinput_a AND input_bdeğerine eşit yapın (bit düzeyinde)or_resultdeğişkeniniinput_a OR input_bdeğerine eşit yapın (bit düzeyinde)xor_resultdeğişkeniniinput_a XOR input_bdeğerine eşit yapın (bit düzeyinde)not_resultdeğişkeniniNOT input_adeğerine eşit yapın (bit düzeyinde)
Kopya kağıdı
assign ifadesi, kombinasyonel mantık için çeşitli operatörleri destekler:
assign wire_name = expression;Operatör türleri:
- Bit düzeyinde (Bitwise):
&,|,^,~ - Aritmetik:
+,-,*,/ - Mantıksal:
&&,||,! - Karşılaştırma:
>,<,==,!= - Kaydırma (Shift):
<<,>> - Koşullu:
? : - Birleştirme (Concatenation):
{ }
assign and_out = a & b; // Bitwise AND
assign sum_out = a + b; // Addition
assign is_equal = (a == b); // Comparison
assign mux_out = sel ? a : b; // Multiplexer
assign bus = {high, low}; // Concatenation
assign parity = ^data; // Reduction XORİşlem önceliğini netleştirmek için parantez kullanın:
assign out = (a & b) | c;Kendin dene
module assign_challenge (
input input_a,
input input_b,
output and_result,
output or_result,
output xor_result,
output not_result
);
// YAPILACAK: Aşağıdakiler için atama (assign) ifadelerini ekleyin:
// and_result = input_a & input_b
// or_result = input_a | input_b
// xor_result = input_a ^ input_b
// not_result = ~input_a
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ığı