对于像这样的表达式
wire matched2 = (a == '0);
wire matched1 = (a == 'b0);
Run Code Online (Sandbox Code Playgroud)
'0 和 'b0 有不同的类型吗?
'b0 —— 是一个未指定大小的文字,其宽度为 32 位 (32'b0)。因此,有 32 位零。
'0 —— 是一位无大小常量,是一种系统 verilog 语法,用于确保表达式上下文中存在所需数量的零。
出于实际原因,这两者的行为是相同的,只是因为它们是无符号零。
'b1然而和 之间会有很大的区别'1;前者最终将成为 32 位“1”(32'b1),而后者是否将其所有位填充为 1(111111...)。