如果条件在z3中的实现

时间:2015-07-21 16:54:58

标签: z3 smt

如果z3中有条件,我将面临实施verilog的问题。

if(reset == 1){
  G5 <= 0;
} else {
  G5 <= G10;
}

我正在尝试使用z3 smt。

中的代码来实现上面的代码
s.add( (BoolExpr) ctx.mkITE( ctx.mkEq(reset,ctx.mkNumeral("1",ctx.mkBitVecSort(1))) , ctx.mkEq(G5,ctx.mkNumeral("0",ctx.mkBitVecSort(1))) , ctx.mkEq(G5,G10) ));
s.add( ctx.mkEq(reset,ctx.mkNumeral("1",ctx.mkBitVecSort(1))) );

执行上述步骤时,我无法控制复位(我希望G5&lt; = G10作为解决方案)。例如,如果我想重置为&#39; 0&#39; 0为了执行我得到错误&#34;无效使用&#34;。因为我试图约束重置两次。

请帮我解决上述问题。

0 个答案:

没有答案