示例#1
0
 void operator () (Eval &eval,StepId dep,Expr::Mul *ptr)
  {
   auto step=eval.createStep(MulStep(ret),dep);
   
   eval.createStep(ExprStep(ptr->arg1,step.obj.arg1),step.id);
   eval.createStep(ExprStep(ptr->arg2,step.obj.arg2),step.id);
  }
示例#2
0
  void operator () (Eval &eval,StepId dep,Expr::Var *ptr)
   {
    ulen index=ptr->index;
    Var &var=eval->table[index];
    
#if 1      
    
    var.gate->createStep(GetVarStep(var.value,ret),dep);
    
#else
    
    auto step=eval.createStep(GetVarStep(var.value,ret),dep);
    
    var.gate->delay(step.id);
    
#endif      
   }
示例#3
0
 void operator () (Eval &eval,StepId dep,Expr::Neg *ptr)
  {
   auto step=eval.createStep(NegStep(ret),dep);
   
   eval.createStep(ExprStep(ptr->arg,step.obj.arg),step.id);
  }