If statement 应用程序的使用!vs~在循环条件下

If statement 应用程序的使用!vs~在循环条件下,if-statement,conditional-statements,verilog,logical-operators,reduction,If Statement,Conditional Statements,Verilog,Logical Operators,Reduction,在Verilog中,我注意到各种资源课程笔记与在线资源倾向于使用逻辑运算符!,或if语句条件内的约化运算符~ 例如,将其与激活的低电平重置一起使用: if(!reset) //reset statements, etc. 或 我相信,由于知道重置应该/将是1或0的1位二进制输入,它们基本上给出了相同的模拟结果。我理解,如果条件是多位值,这可能会改变 选择其中一个应用程序是否有任何好处?有人能提供什么例子吗?在合成方面会有什么变化?模拟?对于单位信号,例如重置,是的,它们在模拟和合成中应给出相

在Verilog中,我注意到各种资源课程笔记与在线资源倾向于使用逻辑运算符!,或if语句条件内的约化运算符~

例如,将其与激活的低电平重置一起使用:

if(!reset)

//reset statements, etc.

我相信,由于知道重置应该/将是1或0的1位二进制输入,它们基本上给出了相同的模拟结果。我理解,如果条件是多位值,这可能会改变


选择其中一个应用程序是否有任何好处?有人能提供什么例子吗?在合成方面会有什么变化?模拟?

对于单位信号,例如重置,是的,它们在模拟和合成中应给出相同的结果。任何不太可能有bug的工具


我个人不认为一个比另一个好。多年来,我在FPGA和ASIC的成功设计中看到了两者的应用。我通常使用~因为我更喜欢认为set/reset是低电平的,在set/reset引脚上有一个真正的逆变器

这个问题的答案可能有一些自以为是的偏见,但我希望您在ifexpression中输入的表达式将被评估为1位正确或错误的结果。所以结果更能代表你们的意图

if(~reset)

//reset statements, etc.