Verilog 逻辑与(&&)、按位与(&)、逻辑或(||)、按位或(|)、等于(==)、全等(===)的区别

这篇具有很好参考价值的文章主要介绍了Verilog 逻辑与(&&)、按位与(&)、逻辑或(||)、按位或(|)、等于(==)、全等(===)的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

逻辑与(&&)

逻辑与是一个双目运算符,当符号两边为1时输出1,符号两边为0时输出0。

真值表:

&&

0

1文章来源地址https://www.toymoban.com/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的数字相与;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

到了这里,关于Verilog 逻辑与(&&)、按位与(&)、逻辑或(||)、按位或(|)、等于(==)、全等(===)的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Verilog HDL按位逻辑运算符及逻辑运算符

    单目按位与运算符 ,运算符后为需要进行逻辑运算的信号,表示对信号进行每位之间相与的操作。例如: reg [3:0] A,C ; assign C = A ; 上面代码等价于 C = A[3] A[2] A[1] A[0] ; 如果A = 4’b0110,C的结果为0 单目按位或运算符 | ,运算符后为需要进行逻辑运算的信号,表示对信号进行每位

    2024年02月16日
    浏览(33)
  • 【教3妹学编程-算法题】检查按位或是否存在尾随零

    3妹 :呜呜,烦死了, 脸上长了一个痘 2哥 : 不要在意这些细节嘛,不用管它,过两天自然不就好了。 3妹 :切,你不懂,影响这两天的心情哇。 2哥 : 我看你是不急着找工作了啊, 工作那么辛苦,哪还有时间想这些啊。 3妹 :说到找工作,我又要去刷题了。 2哥 :我给你出

    2024年01月20日
    浏览(45)
  • OUC数字逻辑Verilog实验二 用Verilog实现4位计数器(时序逻辑)

    clk为模拟的脉冲,reset为重置信号,如果reset为0,则把init的值作为初始值赋值给out,enable为使能端,如果enable为1,则在上升沿根据mode的值,如果mode为1,为加计数,mode为0,为减计数。 仿真图像中, 第1个脉冲,reset为0,为out赋值输入的初始值0010。 第2~6个脉冲,enable为1,

    2024年01月17日
    浏览(45)
  • Verilog学习笔记(3):Verilog数字逻辑电路设计方法

    例:用Verilog设计模256(8bits)计数器 (a)可综合程序描述方式 (b)常见的错误描述方式 同时Verilog的电路描述方式具有多样性,这也决定了对于电路设计的多样性。 例:用Verilog设计数字多路选择器 (a)采用真值表形式的代码 (b)采用逻辑表达式形式的代码 (c)采用结

    2023年04月08日
    浏览(116)
  • FPGA课程设计——数字电子时钟VERILOG(基于正点原子新起点开发板,支持8位或6位共阳极数码管显示时分秒毫秒,可校时,可设闹钟,闹钟开关,led指示)

    2019   级    电子科学与技术   专业FPGA课程设计 报   告 2022  年 5 月 20 日 多功能数字电子钟的设计 摘要 电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,使用EDA技术设计的结果既可以用FPGA / CPLD来实施验证,也可以直接做成专用集成电路(ASIC)。

    2024年02月03日
    浏览(43)
  • (数字逻辑笔记)用Verilog实现一个简单ALU(组合逻辑)

    实验描述: 输入 :两个4位二进制数,代表两个操作数A,B;一个3位控制信号operation,代表ALU要进行的运算。本实验中,ALU可以实现8种运算: 输出 :4位结果,1位进位 operation | F 000 | A + B 001 | A - B 010 | B + 1 011 | B - 1 100 | NOT A 101 | A XOR B 110 | A AND B 111 | A OR B 实现代码: TestBen

    2024年02月04日
    浏览(50)
  • (数字逻辑笔记)用Verilog实现4位计数器。(时序逻辑)

    实验描述: 输入: Clock:如果计数器enable信号为1,那么在时钟上升沿,count加1 Enable:如果enable为1,那么在时钟上升沿,count加1;如果enable为0,count保持不变 Reset:重置信号,如果reset为0,count重置为0 输出: Count[3:0]:4位计数信号,范围:4‘b0000 – 4’b1111 实现代码: Tes

    2024年02月11日
    浏览(42)
  • Verilog学习记录(一):时序逻辑代码设计和仿真

    本次学习的内容来自B站:Verilog零基础入门  其他相关引用以贴上原链接 时序逻辑电路 一、计数器 1.原理及代码实现 2.Modelsim仿真 二、四级伪随机码发生器 1.原理及代码实现 2.Moselsim仿真 总结  时序逻辑电路是数字逻辑电路的重要组成部分,时序逻辑电路又称,主要由 存储电路

    2024年02月03日
    浏览(51)
  • 【Verilog刷题篇】硬件工程师从0到入门3|组合逻辑复习+时序逻辑入门

    硬件工程师近年来也开始慢慢吃香,校招进大厂年薪总包不下30-40w的人数一大把!而且大厂人数并没有饱和! - 本期是【Verilog刷题篇】硬件工程师从0到入门3|组合逻辑复习+时序逻辑入门,有不懂的地方可以评论进行讨论! 推荐给大家一款刷题、面试的神器 ,我也是用这一款

    2024年02月03日
    浏览(37)
  • 从零学verilog系列(4)组合逻辑电路设计方法

      目录 1.组合电路设计方法 1.1真值表方式(本质是最小项表达式) 1.2逻辑表达式方式 1.3结构描述方式 1.4抽象描述方式(从电路功能出发) 2组合电路设计项目 2.1数字加法器 半加器(1位加法器) 全加器 串行进位加法器(行波进位加法器) 超前进位加法器 2.2数据比较器 2.3数据选

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包