【发布时间】:2015-08-05 20:07:13
【问题描述】:
assign wfwe = wb_acc & (adr_i == 2'b10) & ack_o & we_i;
对于上述在verilog中的assign语句,我在z3中实现它时出错
我的代码:
BitVecExpr[] wfwe = new BitVecExpr[1];
BitVecExpr[] wb_acc = new BitVecExpr[1];
BitVecExpr[] adr_i = new BitVecExpr[1];
BitVecExpr[] ack_o = new BitVecExpr[1];
BitVecExpr[] we_i = new BitVecExpr[1];
wfwe[0] = ctx.mkBVConst("wfwe",1);
wb_acc[0] = ctx.mkBVConst("wb_acc",1);
adr_i[0] = ctx.mkBVConst("adr_i",2);
ack_o[0] = ctx.mkBVConst("ack_o",1);
we_i[0] = ctx.mkBVConst("we_i",1);
Solver s = ctx.mkSolver();
s.add(ctx.mkBVAND(wb_acc[0],ctx.mkEq(adr_i[0],ctx.mkNumeral("2",2)),ack_o[0],we_i[0]));
我在上面的 add 语句中遇到错误: 错误:类 Context 中的方法 mkBVAND 不能应用于给定类型; 必需:BitVecExpr,BitVecExpr 找到:BitVecExpr,BoolExpr
这是真的。任何人都可以建议我解决方法。我是否执行不正确,请告诉我。
【问题讨论】: