|
|
class Value {
}
class Var : Value {
}
class Ctx { char *currentComponent;
Var getParam(char *); Var getSignal(char *, ...);
Var newVar(char *); }
void Num2Bits::Num2Bits(ctx) { Var n = ctx.getParam("n"); Var in = ctx.getSignal("in"); Var out = ctx.getSignal("out"); (Var lc1 = ctx.newVar()) = _0x0;
for ((Var i = ctx.newVar()) = _0x0 ; i<n; i++ ) { out[i] = (in >> i) & _0x1; assert(out[i]*(out[i] - _0x1), _0x0); lc1 += out[i] * (2**i); }
assert(lc1, in); }
|