Mantıksal Operatörler
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 24 / 90.
Mantıksal operatörler tüm değerler üzerinde çalışır ve tek bir sonuç döndürür: 1 (doğru) veya 0 (yanlış). Bit düzeyinde çalışan bitsel operatörlerin aksine, mantıksal operatörler değerin tamamını doğru (sıfır olmayan) veya yanlış (sıfır) olarak ele alır.
| Tür | Örnek | Sonuç |
|---|---|---|
| Bit düzeyinde AND | 4'b1010 & 4'b1100 | 4'b1000 (birden çok bit) |
| Mantıksal AND | (4'b1010 && 4'b1100) | 1 (tek bit) |
Kullanılabilir Mantıksal Operatörler
| Operatör | Anlamı | Açıklama |
|---|---|---|
&& | Mantıksal AND | Her iki işlenen de doğruysa (sıfır değilse) doğru |
|| | Mantıksal OR | En az bir işlenen doğruysa doğru |
! | Mantıksal NOT | İşlenen yanlışsa (sıfırsa) doğru |
Nasıl Çalışırlar
Mantıksal AND (<strong>&&</strong>):
(5 && 3) // 1 (ikisi de sıfır değil)
(5 && 0) // 0 (ikincisi sıfır)
(0 && 0) // 0 (ikisi de sıfır)Mantıksal VEYA (<strong>||</strong>):
(5 || 3) // 1 (en az bir sıfır olmayan)
(5 || 0) // 1 (ilk sıfır olmayan)
(0 || 0) // 0 (ikisi de sıfır)Mantıksal NOT (<strong>!</strong>):
!5 // 0 (sıfır olmayan false olur)
!0 // 1 (sıfır true olur)Kod Örneği
module logical_demo;
reg [3:0] 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 işleçler if ifadelerinde ve koşullarda kullanılır:
if (a && b) // a ve b'nin her ikisi de 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ılacaklar:
value1VEvalue2değerlerinin her ikisinin de doğru olup olmadığını kontrol edin ve sonucuand_outiçinde saklayınvalue1VEYAvalue2değerlerinden birinin doğru olup olmadığını kontrol edin ve sonucuor_outiçinde saklayınvalue1değerinin yanlış olup olmadığını kontrol edin ve sonucunot_outiçinde saklayın
Kendin 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.
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