Verilog 逻辑与(&&)、按位与(&)、逻辑或( |
您所在的位置:网站首页 › 二进制逻辑或运算计算器 › Verilog 逻辑与(&&)、按位与(&)、逻辑或( |
逻辑与(&&)
逻辑与是一个双目运算符,当符号两边为1时输出1,符号两边为0时输出0。 真值表: && 0 1 x z 0 0 0 0 0 1 0 1 x x x 0 x x x z 0 x x x 两个4bit的数字相与;A=4'b0x1z;B=4'b01xx;C=4'b00xz;求A&&B;A&&C;是什么值?当逻辑与&&操作符两边的数字均含有“1”,则输出1。 那么怎么判断A、B、C为是否含有“1”呢。当A为0的时候,A等于4'b0,即每位都为0,即只需A的4位矢量之间做一下“逻辑或”运算,A[3] || A[2] || A[1] || A[0],也可写成(|A);当4位矢量中只需有一位为1,那么A就含有“1”。即哪怕A中具有不定态x或者高阻态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 按位与(&)按位与有两种使用方式,一种是双目操作,即一个操作符对应两个操作数A&B;另一种是单目操作,即一个操作符对应一个操作数&A。 双目操作一个4bit的数和一个4bit的数按位与的结果还是一个4bit数,例如A[3:0] & B[3:0] = { A[3] && B[3] , A[2] && B[2], A[1] && B[1], A[0] && B[0] } 假设A = 4'b10xz;B = 4'b0011;C = 4'bz011; A & B = 4'b00xx;A & C =4'bx0xx; 单目操作一个4bit的数对自己进行按位与,输出的结果为1bit的数。 假设A = 4'b10xz;B = 4'b0011; & A = A[3] && A[2] && A[1] && A[0] = 0 & B = 0 因为4bit数A和B中间都有0,所以A、B按位与结果都为0。 若C = 4'b11xz;则 & C = x 逻辑或(||)逻辑或是一个双目运算符,当符号两边有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的数字相与;A=4'b0x1z;B=4'b01xx;C=4'b00xz;求A&&B;A&&C;是什么值?当逻辑与&&操作符两边的有数字含有“1”,则输出1。 当4位矢量中只需有一位为1,那么A就含有“1”。即哪怕A中具有不定态x或者高阻态z,A = 4'b0x1z在逻辑与的判断下会判定为“1”。 所以A || B = 1;A || C = 1 按位或(|)同按位与一样,按位或也有两种使用方式,一种是双目操作,即一个操作符对应两个操作数A|B;另一种是单目操作,即一个操作符对应一个操作数|A。 双目操作一个4bit的数和一个4bit的数按位或的结果还是一个4bit数,例如A[3:0] & B[3:0] = { A[3] || B[3] , A[2] || B[2], A[1] || B[1], A[0] || B[0] } 假设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的数对自己进行按位或,输出的结果为1bit的数。 假设A = 4'b10xz;B = 4'b0011; | A = A[3] || A[2] || A[1] || A[0] = 1 | B = 1 因为4bit数A和B中间都有1,所以A、B按位或结果都为1。 若C = 4'b00xz;则 | C = x 相等运算符(==)参与比较的两个操作数必须逐位相等,其相等比较的结果才为 1, 如果某些位是不定态或高阻值,其相等比较得到的结果是不定值。 相等运算符的比较,只要等式的两端有x或者高阻态z出现,那么结果就是一定是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 全等运算符(===)全等比较是对这些不定态或高阻值的位也进行比较,两个操作数必须完全一致,其结果才是 1,否则结果是 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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |