systemverilog 中“0”相对于“b0”的类型是什么?

bna*_*vnh 1 system-verilog

对于像这样的表达式

wire matched2 = (a == '0);
wire matched1 = (a == 'b0);
Run Code Online (Sandbox Code Playgroud)

'0 和 'b0 有不同的类型吗?

Ser*_*rge 5

'b0 —— 是一个未指定大小的文字,其宽度为 32 位 (32'b0)。因此,有 32 位零。

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

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

'b1然而和 之间会有很大的区别'1;前者最终将成为 32 位“1”(32'b1),而后者是否将其所有位填充为 1(111111...)。