Verilog:逻辑与、按位与、逻辑或、按位或、等于、全等的区别
前提摘要
-
个人说明:
- 限于时间紧迫以及作者水平有限,本文错误、疏漏之处恐不在少数,恳请读者批评指正。意见请留言或者发送邮件至:“Email:noahpanzzz@gmail.com”。
- 本博客的工程文件均存放在:GitHub:https://github.com/panziping。
- 本博客的地址:CSDN:https://blog.csdn.net/ZipingPan。
-
参考:
- 《数字电子技术基础》-阎石
- 《Verilog 数字系统设计教程》夏宇闻
- 《Verilog HDL 高级数字设计》Michael D.Ciletti
-
日期:
正文
逻辑运算
- && (逻辑与);
- || (逻辑或);
- !(逻辑非)。
逻辑运算真值表:
a | b | !a | !b | a&&b | a||b |
---|---|---|---|---|---|
真 | 真 | 假 | 假 | 真 | 真 |
真 | 假 | 假 | 真 | 假 | 真 |
假 | 真 | 真 | 假 | 假 | 真 |
假 | 假 | 真 | 真 | 假 | 假 |
位运算符
- ~ (取反);
- & (按位与)(AND);
- | (按位或)(OR);
- ^ (按位异或)(XOR);
- ^~ (按位同或)(XNOR)。
按位与、按位或、按位异或、按位同或有两种使用方式,一种是双目操作,即一个操作符对应两个操作数A&B;另一种是单目操作,即一个操作符对应一个操作数&A。
位运算真值表:
取反运算符的运算规则:
~ | result |
---|---|
1 | 0 |
0 | 1 |
x | x |
按位与运算规则:
& | 0 | 1 | x |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1 | x |
x | 0 | x | x |
按位或运算规则:
| | 0 | 1 | x |
---|---|---|---|
0 | 0 | 1 | x |
1 | 1 | 1 | 1 |
x | x | 1 | x |
按位异或运算规则:
^ | 0 | 1 | x |
---|---|---|---|
0 | 0 | 1 | x |
1 | 1 | 0 | x |
x | x | x | x |
按位同或运算规则:
^~ | 0 | 1 | x |
---|---|---|---|
0 | 1 | 0 | x |
1 | 0 | 1 | x |
x | x | x | x |
不同长度的数据进行位运算:两个长度不同的数据进行位运算时,系统会自动地将两者按右端对齐,位数少的操作数会在相应的高位用0填满,以使两个操作数按位进行操作。
等式运算符
- == (等于);
- !=(不等于);
- ===(等于);
- !==(不等于)。
等式运算符的真值表:
=== | 0 | 1 | x | z |
---|---|---|---|---|
0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 |
x | 0 | 0 | 1 | 0 |
z | 0 | 0 | 0 | 1 |
== | 0 | 1 | x | z |
---|---|---|---|---|
0 | 1 | 0 | x | x |
1 | 0 | 1 | x | x |
x | x | x | x | x |
z | x | x | x | x |
总结
本文均为原创,欢迎转载,请注明文章出处:CSDN:https://blog.csdn.net/ZipingPan/编程语言。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
非原创博客会在文末标注出处,由于时效原因,可能并不是原创作者地址(已经无法溯源)。