0
点赞
收藏
分享

微信扫一扫

7,verilog关系操作的逻辑运算实现方式


微信公众号:FPGA动力联盟​​

上篇谈到了verilog的逻辑运算,本篇举几个很有意思的例子:通过逻辑运算来实现关系操作。这种操作比直接用关系运算符(>,<,==,!=等)要快速、并且节约电路成本,例子如下表所示:


操作数



表达式与结果



注释



a=4’b0000

b=4’b0101



|a  = 1’b0

|b = 1’b1



利用缩减或操作可以判断一个数是否为全0



a=4’b1100

b=4’b1111



&a = 1’b0

&b  = 1’b1



利用缩减与操作可以判断一个数是否为全1



a=4’b1100

b=4’b1110



^a = 1’b0,~^a = 1’b1

^b = 1’b1,~^b = 1’b0



如果操作数有偶数个1,异或结果为0,如果有奇数个1,异或结果为1。同或反之



a=4’b0000

b=4’b0101

c=4’b0101



|(a^b) = 1’b1

|(a^c) = 1’b1

|(b^c)  = 1’b0



利用缩减或、按位异或操作可以判断两个数是否相等。相等为1’b0,不等为1’b1


如果我们在代码中使用了上述这样的代码描述来替代关系运算符,请一定、务必写注释,要不然别人很难读懂贵代码了!


举报

相关推荐

0 条评论