System verilog systemverilog:使用非尺寸&;比较中的无基础文字
我已经看了LRM,还没有找到一个明确的答案。。。如何解释以下内容:System verilog systemverilog:使用非尺寸&;比较中的无基础文字,system-verilog,literals,System Verilog,Literals,我已经看了LRM,还没有找到一个明确的答案。。。如何解释以下内容: logic [7:0] data; logic sig_out; assign sig_out = (data == '1); 是否会被解释为: assign sig_out = (data == 8'hFF); sim&synthesis是否有不同的解释 thx PB&J5.7.1 1800-2012 LRM的整型文字常量解释了'1具有基于使用上下文的值宽度。在自定上下文中使用它时,它的宽度为1位。表1
logic [7:0] data;
logic sig_out;
assign sig_out = (data == '1);
是否会被解释为:
assign sig_out = (data == 8'hFF);
sim&synthesis是否有不同的解释
thx
PB&J5.7.1 1800-2012 LRM的整型文字常量解释了
'1
具有基于使用上下文的值宽度。在自定上下文中使用它时,它的宽度为1位。表11-21说明了上下文中关系运算符的操作数大小为最大操作数
所以在你的上下文中,1是8'hff 5.7.1 1800-2012 LRM的整型文字常量解释了
'1
具有基于使用上下文的值宽度。在自定上下文中使用它时,它的宽度为1位。表11-21说明了上下文中关系运算符的操作数大小为最大操作数
所以在你的上下文中,1是8'hff 它作为8'hff工作。 考虑以下代码及其输出-
module top();
logic [7:0] data;
logic sig_out;
assign sig_out = (data == '1);
initial
begin
data = 'h01;
#1 $display("sig_out - %0h", sig_out);
data = 'h0f;
#1 $display("sig_out - %0h", sig_out);
data = 'hff;
#1 $display("sig_out - %0h", sig_out);
end
endmodule
输出-
sig_out - 0
sig_out - 0
sig_out - 1
它可以作为8'hff工作。 考虑以下代码及其输出-
module top();
logic [7:0] data;
logic sig_out;
assign sig_out = (data == '1);
initial
begin
data = 'h01;
#1 $display("sig_out - %0h", sig_out);
data = 'h0f;
#1 $display("sig_out - %0h", sig_out);
data = 'hff;
#1 $display("sig_out - %0h", sig_out);
end
endmodule
输出-
sig_out - 0
sig_out - 0
sig_out - 1
'1表示所有的1,所以如果数据是8位宽,那么数据=8'hff。
如果要以上下文确定的长度方式写入值8'h01,请使用'b1,在本例中它将被解释为8'h01。'1表示所有值,因此如果数据为8位宽,则数据=8'hff。
如果您打算以上下文确定的长度方式写入值8'h01,请使用'b1,在本例中它将被解释为8'h01。我不知道这个问题的答案,但我很难理解如何将
sig_out=(data='1)
解释为与sig_out=(data==8'hFF)
有任何不同。你在想什么?我不知道这个问题的答案,但我很难理解sig_out=(data='1)
与sig_out=(data==8'hFF)
的解释有什么不同。你在想什么?