Mantıksal Operatörler
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 24 / 90.
Mantıksal operatörler tam değerler üzerinde çalışır ve tek bir sonuç döndürür: 1 (doğru) veya 0 (yanlış). Bit düzeyinde (bitwise) operatörlerin bit bit çalışmasının aksine, mantıksal operatörler tüm değeri ya doğru (sıfır olmayan) ya da yanlış (sıfır) olarak ele alır.
| Tür | Örnek | Sonuç |
|---|---|---|
| Bit Düzeyinde VE | 4'b1010 & 4'b1100 | 4'b1000 (birden fazla bit) |
| Mantıksal VE | (4'b1010 && 4'b1100) | 1 (tek bit) |
Mevcut Mantıksal Operatörler
| Operatör | Anlamı | Açıklama |
|---|---|---|
&& | Mantıksal VE | Her iki işlenen de doğruysa (sıfır değilse) Doğru |
|| | Mantıksal VEYA | En az bir işlenen doğruysa Doğru |
! | Mantıksal DEĞİL | İşlenen yanlışsa (sıfırsa) Doğru |
Nasıl Çalışırlar
Mantıksal VE (<strong>&&</strong>):
(5 && 3) // 1 (her ikisi de sıfır değil)
(5 && 0) // 0 (ikincisi sıfır)
(0 && 0) // 0 (her ikisi de sıfır)Mantıksal VEYA (<strong>||</strong>):
(5 || 3) // 1 (en az biri sıfır değil)
(5 || 0) // 1 (ilki sıfır değil)
(0 || 0) // 0 (her ikisi de sıfır)Mantıksal DEĞİL (<strong>!</strong>):
!5 // 0 (sıfır olmayan yanlış olur)
!0 // 1 (sıfır doğru olur)Kod Örneği
module logical_demo;
reg a, b;
reg and_res, or_res, not_res;
initial begin
a = 5;
b = 0;
and_res = (a && b); // 5 && 0 = 0
or_res = (a || b); // 5 || 0 = 1
not_res = !a; // !5 = 0
$display("5 && 0 = %d", and_res);
$display("5 || 0 = %d", or_res);
$display("!5 = %d", not_res);
$finish;
end
endmoduleÇıktı:
5 && 0 = 0
5 || 0 = 1
!5 = 0Yaygın Kullanım
Mantıksal operatörler if ifadelerinde ve koşullarda kullanılır:
if (a && b) // Hem a hem de b sıfır değilse Doğru
$display("Both true");
if (a || b) // En az biri sıfır değilse Doğru
$display("At least one true");
if (!reset) // reset 0 olduğunda Doğru
$display("Reset is inactive");Görev
Her görev için doğru mantıksal ifadeleri yazın.
Yapılması gerekenler:
value1VEvalue2değerlerinin her ikisinin de doğru olup olmadığını kontrol edin ve sonucuand_outdeğişkeninde saklayınvalue1VEYAvalue2değerlerinden en az birinin doğru olup olmadığını kontrol edin ve sonucuor_outdeğişkeninde saklayınvalue1değerinin yanlış olup olmadığını kontrol edin ve sonucunot_outdeğişkeninde saklayın
Kopya kağıdı
Mantıksal operatörler, tüm değerleri doğru (sıfır olmayan) veya yanlış (sıfır) olarak ele alır ve tek bitlik bir sonuç döndürür.
| Operatör | Anlamı | Sonuç |
|---|---|---|
&& | Mantıksal VE | Her iki işlenen de sıfır değilse 1 |
|| | Mantıksal VEYA | En az bir işlenen sıfır değilse 1 |
! | Mantıksal DEĞİL | İşlenen sıfırsa 1 |
(5 && 3) // 1
(5 && 0) // 0
(5 || 0) // 1
(0 || 0) // 0
!5 // 0
!0 // 1Bitsel operatörlerle karşılaştırıldığında, mantıksal operatörler tüm değeri daraltır:
4'b1010 & 4'b1100 // 4'b1000 (bitsel, çoklu bit)
4'b1010 && 4'b1100 // 1 (mantıksal, tek bit)Genellikle koşullarda kullanılır:
if (a && b) // her ikisi de sıfır değilse doğru
if (a || b) // en az biri sıfır değilse doğru
if (!reset) // reset 0 olduğunda doğruKendin dene
module logical_challenge;
reg [3:0] value1, value2;
reg and_out, or_out, not_out;
initial begin
value1 = 4'd12;
value2 = 4'd5;
and_out = ______; // value1 && value2
or_out = ______; // value1 || value2
not_out = ______; // !value1
$display("%d && %d = %d", value1, value2, and_out);
$display("%d || %d = %d", value1, value2, or_out);
$display("!%d = %d", value1, not_out);
$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ığı