diff --git a/doc/xschem_man/symbol_property_syntax.html b/doc/xschem_man/symbol_property_syntax.html index b65bfbad..02469cfd 100644 --- a/doc/xschem_man/symbol_property_syntax.html +++ b/doc/xschem_man/symbol_property_syntax.html @@ -337,10 +337,16 @@ m5 net1 b net2 VSSPIN nlv w=wn l=ln geomod=0 m=1
The remaining value on the stack is the value that is returned and assigned to the output pin. diff --git a/src/hilight.c b/src/hilight.c index f6c6bd00..e8ca84aa 100644 --- a/src/hilight.c +++ b/src/hilight.c @@ -1176,17 +1176,17 @@ int eval_logic_expr(int inst, int output) if(s < 2) { stack[sp - 3] = (s == 0) ? stack[sp - 3] : stack[sp - 2]; } - else stack[sp - 3] = 2; /* setting to 2 (X) leads to simulation deadlocks */ + else stack[sp - 3] = 2; /* setting to 2 (X) may lead to simulation deadlocks */ sp -=2; } break; case 'm': /* mux operator , lower priority*/ if(sp > 2) { s = stack[sp - 1]; - if(s < 2) { /* reduce pessimism, avoid infinite loops */ + if(s < 2) { stack[sp - 3] = (s == 0) ? stack[sp - 3] : stack[sp - 2]; } - else stack[sp - 3] = 4; + else stack[sp - 3] = 4; /* don't update, to avoid deadlocks */ sp -=2; } break;