何时(a)将在Verilog中返回true
我是Verilog的新手,有人问我以下问题: 考虑何时(a)将在Verilog中返回true,verilog,Verilog,我是Verilog的新手,有人问我以下问题: 考虑a=reg[3:0],如果(a)返回true,那么a可以有哪些值? 我不知道从哪里开始,尝试编译一些示例,但都失败了语法问题reg是用于声明变量类型的verilog关键字,您提供的表达式是非法的verilog表达式。您可以将a声明为4位reg,如下所示: reg[3:0] a; 上面将a作为4位向量。现在,verilog位可能有4种状态:0、1、x和z。因此,a的4位中的任何一位都可以处于这些状态中的任何一种。现在您有256种可能的组合。如果忽
a=reg[3:0]
,如果(a)返回true
,那么a
可以有哪些值?
我不知道从哪里开始,尝试编译一些示例,但都失败了
语法问题
reg
是用于声明变量类型的verilog关键字,您提供的表达式是非法的verilog表达式。您可以将a
声明为4位reg,如下所示:
reg[3:0] a;
上面将a
作为4位向量。现在,verilog位可能有4种状态:0
、1
、x
和z
。因此,a
的4位中的任何一位都可以处于这些状态中的任何一种。现在您有256种可能的组合。如果忽略x
和z
状态,可以得到16个以小数表示的组合,即0到15
true
表示a
中至少有一位为1
。在所有其他情况下,这都是错误的 写入if(a)
与写入if(a!=0)
相同。由于a
是一个4位变量,如果(a[0]!=0 | a[1]!=0 | a[2]!=0 | a[3]!=0),则可以将其扩展为
。因此,任何位位置的1都会使表达式为真。请注意,未知值x
或z
作为具有相等/不等运算符的操作数,将导致未知值,并被视为false。但是一个未知的或与真实有关的事物是真实的