System verilog systemverilog:使用非尺寸&;比较中的无基础文字

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

我已经看了LRM,还没有找到一个明确的答案。。。如何解释以下内容:

logic [7:0] data;
logic       sig_out;

assign  sig_out = (data == '1);  
是否会被解释为:

assign sig_out = (data == 8'hFF);
sim&synthesis是否有不同的解释

thx


PB&J

5.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)
的解释有什么不同。你在想什么?