System verilog systemverilog中“0”与“b0”的类型是什么?

System verilog systemverilog中“0”与“b0”的类型是什么?,system-verilog,System Verilog,例如 wire matched2 = (a == '0); wire matched1 = (a == 'b0); “0”和“b0”有不同的类型吗?'b0-是一个未调整大小的文字,其宽度为32位32'b0。因此,有32位零 '0-是一个一位无大小的常量,是一种系统verilog语法,用于确保表达式上下文中有所需数量的零 出于实际原因,这两个变量的行为相同,只是因为它们是无符号零 但是,"b1"和"1"会有很大的区别,;前者最终将成为一个32位的'1'32'b1,后者是否将用111111填充其所

例如

wire matched2 = (a == '0);
wire matched1 = (a == 'b0);

“0”和“b0”有不同的类型吗?

'b0-是一个未调整大小的文字,其宽度为32位32'b0。因此,有32位零

'0-是一个一位无大小的常量,是一种系统verilog语法,用于确保表达式上下文中有所需数量的零

出于实际原因,这两个变量的行为相同,只是因为它们是无符号零

但是,"b1"和"1"会有很大的区别,;前者最终将成为一个32位的'1'32'b1,后者是否将用111111填充其所有位……

'b0等同于写入32'b0,但有一个例外,在串联中使用隐式大小的文字作为操作数是非法的,如{1,'b0}。这是因为人们错误地认为他们写的是2'b10

但是,您可以使用{'1,'0},因为在自定上下文中,“0”始终是一个位。在表达式上下文中,“0”和“1”将填充其所在上下文的0或1大小

在您的示例中,“0”位于由equality==运算符确定的上下文中,较小宽度的操作数宽度将调整为较大的操作数