代码之家  ›  专栏  ›  技术社区  ›  PieterNuyts

SystemVerilog约束溢出

  •  0
  • PieterNuyts  · 技术社区  · 7 年前

    与大多数语言一样,SystemVerilog中的整数类型在溢出时会自动换行。我想知道在约束中是否也是这样。例如:

    class Test;
      rand bit [3:0] a;
      rand bit [3:0] b;
    
      constraint c { a + b <= 4'h6; }
    endclass;
    

    a == 7 b == 12 ,这将满足约束条件,因为7+12=19绕到3,并且3小于6?

    如果是这样,将约束表述为

    constraint c { a + b <= 6; }
    

    其中6是32位有符号整数,求和必须以32位精度计算?(如果随机变量为 int )

    1 回复  |  直到 7 年前
        1
  •  1
  •   dave_59    7 年前

    你是对的。无论是否在约束内,表达式计算都是相同的。除了溢出之外,您还需要关注截断和符号转换。在SystemVerilog中,积分表达式是弱类型的。