邏輯與(&&)
邏輯與是一個雙目運算符,當(dāng)符號兩邊為1時輸出1,符號兩邊為0時輸出0。
真值表:
&& |
0文章來源:http://www.zghlxwxcb.cn/news/detail-802922.html |
1文章來源地址http://www.zghlxwxcb.cn/news/detail-802922.html |
x |
z |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
x |
x |
x |
0 |
x |
x |
x |
z |
0 |
x |
x |
x |
兩個4bit的數(shù)字相與;A=4'b0x1z;B=4'b01xx;C=4'b00xz;求A&&B;A&&C;是什么值?當(dāng)邏輯與&&操作符兩邊的數(shù)字均含有“1”,則輸出1。
那么怎么判斷A、B、C為是否含有“1”呢。當(dāng)A為0的時候,A等于4'b0,即每位都為0,即只需A的4位矢量之間做一下“邏輯或”運算,A[3] || A[2] || A[1] || A[0],也可寫成(|A);當(dāng)4位矢量中只需有一位為1,那么A就含有“1”。即哪怕A中具有不定態(tài)x或者高阻態(tài)z,A = 4'b0x1z在邏輯與的判斷下會判定為“1”。
故 A && B = 4'b0x1z && 4'b01xx = 1
C = 4'b00xz,其中沒有bit位為1,所以在邏輯與的眼中,C為“0”,進而有:
A && C = 4'b0x1z && 4'b00xz = 0
按位與(&)
按位與有兩種使用方式,一種是雙目操作,即一個操作符對應(yīng)兩個操作數(shù)A&B;另一種是單目操作,即一個操作符對應(yīng)一個操作數(shù)&A。
雙目操作
一個4bit的數(shù)和一個4bit的數(shù)按位與的結(jié)果還是一個4bit數(shù),例如A[3:0] & B[3:0] = { A[3] && B[3] , A[2] && B[2], A[1] && B[1], A[0] && B[0] }
假設(shè)A = 4'b10xz;B = 4'b0011;C = 4'bz011;
A & B = 4'b00xx;A & C =4'bx0xx;
單目操作
一個4bit的數(shù)對自己進行按位與,輸出的結(jié)果為1bit的數(shù)。
假設(shè)A = 4'b10xz;B = 4'b0011;
& A = A[3] && A[2] && A[1] && A[0] = 0
& B = 0
因為4bit數(shù)A和B中間都有0,所以A、B按位與結(jié)果都為0。
若C = 4'b11xz;則 & C = x
邏輯或(||)
邏輯或是一個雙目運算符,當(dāng)符號兩邊有1時輸出1,符號兩邊全0時輸出0。
|| |
0 |
1 |
x |
z |
0 |
0 |
1 |
x |
x |
1 |
1 |
1 |
1 |
1 |
x |
x |
1 |
x |
x |
z |
x |
1 |
x |
x |
兩個4bit的數(shù)字相與;A=4'b0x1z;B=4'b01xx;C=4'b00xz;求A&&B;A&&C;是什么值?當(dāng)邏輯與&&操作符兩邊的有數(shù)字含有“1”,則輸出1。
當(dāng)4位矢量中只需有一位為1,那么A就含有“1”。即哪怕A中具有不定態(tài)x或者高阻態(tài)z,A = 4'b0x1z在邏輯與的判斷下會判定為“1”。
所以A || B = 1;A || C = 1
按位或(|)
同按位與一樣,按位或也有兩種使用方式,一種是雙目操作,即一個操作符對應(yīng)兩個操作數(shù)A|B;另一種是單目操作,即一個操作符對應(yīng)一個操作數(shù)|A。
雙目操作
一個4bit的數(shù)和一個4bit的數(shù)按位或的結(jié)果還是一個4bit數(shù),例如A[3:0] & B[3:0] = { A[3] || B[3] , A[2] || B[2], A[1] || B[1], A[0] || B[0] }
假設(shè)A = 4'b10xz;B = 4'b0011;C = 4'bz011;
A | B = 4'b10xz | 4'b0011 = 4'b1011;
A | C = 4'b10xz | 4'bz011 = 4'b1011;
單目操作
一個4bit的數(shù)對自己進行按位或,輸出的結(jié)果為1bit的數(shù)。
假設(shè)A = 4'b10xz;B = 4'b0011;
| A = A[3] || A[2] || A[1] || A[0] = 1
| B = 1
因為4bit數(shù)A和B中間都有1,所以A、B按位或結(jié)果都為1。
若C = 4'b00xz;則 | C = x
相等運算符(==)
參與比較的兩個操作數(shù)必須逐位相等,其相等比較的結(jié)果才為 1, 如果某些位是不定態(tài)或高阻值,其相等比較得到的結(jié)果是不定值。
相等運算符的比較,只要等式的兩端有x或者高阻態(tài)z出現(xiàn),那么結(jié)果就是一定是x,譬如:
(4'b1010 == 4'b101x)= x
(4'b101z == 4'b1010)= x
(4'b10x1 == 4'b10x1)= x
(4'b1011 == 4'b1011)= 1
(4'b1010 == 4'b1011)= 0
全等運算符(===)
全等比較是對這些不定態(tài)或高阻值的位也進行比較,兩個操作數(shù)必須完全一致,其結(jié)果才是 1,否則結(jié)果是 0。
(4'b1010 === 4'b101x)= 0
(4'b101z === 4'b1010)= 0
(4'b101z === 4'b101z)= 1
(4'b101x === 4'b101x)= 1
相等運算符和全等運算符的真值表
== |
0 |
1 |
x |
z |
=== |
0 |
1 |
x |
z |
0 |
1 |
0 |
x |
x |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
x |
x |
1 |
0 |
1 |
0 |
0 |
x |
x |
x |
x |
x |
x |
0 |
0 |
1 |
0 |
z |
x |
x |
x |
x |
z |
0 |
0 |
0 |
1 |
到了這里,關(guān)于Verilog 邏輯與(&&)、按位與(&)、邏輯或(||)、按位或(|)、等于(==)、全等(===)的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!