博主的微信公众号:FPGA动力联盟
博主的个人微信:fpga_start
博客原文链接:关系操作符简介
关系操作是针对两个数值进行的,其两个操作数既可以是无符号数,也可以是有符号数,实际的FPGA应用时,我们用的到的关系操作符也就只有6种,如下表所示:
| 符号 | 名称 | 结果 | 备注 |
| > | 大于 | 比较2个操作数,前者大于后者,结果为真(1),否则为假(0) | 可综合 |
| < | 小于 | 比较2个操作数,前者小于后者,结果为真(1),否则为假(0) | 可综合 |
| >= | 大于或等于 | 比较2个操作数,前者大于或等于后者,结果为真(1),否则为假(0) | 可综合 |
| <= | 小于或等于 | 比较2个操作数,前者小于或等于后者,结果为真(1),否则为假(0) | 可综合 |
| == | 逻辑相等 | 比较2个操作数,如果各位均相等,结果为真(1),否则为假(0)。如果其中任意一个操作数含有x或z,则结果为x | 可综合 |
| != | 逻辑不等 | 比较2个操作数,如果各位不完全相等,结果为真(1),否则为假(0)。如果其中任意一个操作数含有x或z,则结果为x | 可综合 |
| === | case相等 | 2个操作数比较,如果各位(包括x和z)均相等,结果为真 | 不可综合 |
| !== | case不等 | 2个操作数比较,如果各位(包括x和z)不完全相等,结果为真 | 不可综合 |
注意,只有前6种关系操作符在FPGA内部是可综合的,“===”和“!==”不可综合!
另外,前面博客咱们也提过,部分关系运算操作可用逻辑操作来实现,如下表所示:
| 关系操作 | 逻辑操作 |
| a==b | !(|(a^b)) |
| a!=b | |(a^b) |
在需要比较运算的代码中,如果直接采用关系操作符,可以不用注释;但是如果用了逻辑操作来替代关系操作,还不给代码注释,就会被判决为人品有问题了,后果很严重噢!
参考文献:
1,verilog传奇——从电路出发的HDL代码设计
2,verilog编程艺术



