cell->setPort("\\CEM", State::S1);
SigSpec D = st.ffM->getPort("\\D");
SigSpec Q = st.ffM->getPort("\\Q");
- P.replace(/*pm.sigmap*/(D), Q);
+ P.replace(pm.sigmap(D), Q);
cell->setParam("\\MREG", State::S1);
pm.autoremove(st.ffM);
cell->setPort("\\CEP", State::S1);
SigSpec D = st.ffP->getPort("\\D");
SigSpec Q = st.ffP->getPort("\\Q");
- P.replace(/*pm.sigmap*/(D), Q);
+ P.replace(pm.sigmap(D), Q);
st.ffP->connections_.at("\\Q").replace(P, pm.module->addWire(NEW_ID, GetSize(P)));
cell->setParam("\\PREG", State::S1);
if (st.ffB)
log(" ffB:%s", log_id(st.ffB));
+ if (st.ffM)
+ log(" ffM:%s", log_id(st.ffM));
+
if (st.ffP)
log(" ffP:%s", log_id(st.ffP));
filter port(ffMmux, AB) == sigM.extract(0, GetSize(port(ffMmux, \Y)))
filter nusers(sigM.extract_end(GetSize(port(ffMmux, AB)))) <= 1
set ffMmuxAB AB
- semioptional
+ optional
endmatch
code sigM
filter port(ffPmux, AB) == sigP.extract(0, GetSize(port(ffPmux, \Y)))
filter nusers(sigP.extract_end(GetSize(port(ffPmux, AB)))) <= 1
set ffPmuxAB AB
- semioptional
+ optional
endmatch
code sigP
if (ffPmux)
- sigP = port(ffPmux, \Y);
+ sigP.replace(port(ffPmux, ffPmuxAB), port(ffPmux, \Y));
endcode
match ffP
sigP.replace(port(ffP, \D), port(ffP, \Q));
}
+ // Cannot have ffPmux enable mux without ffP
+ else if (ffPmux)
+ reject;
endcode
match postAddMux