Restore old CO behaviour

This commit is contained in:
Eddie Hung 2019-07-31 15:45:15 -07:00
parent 84c7a562e5
commit e4a638c292
1 changed files with 7 additions and 6 deletions

View File

@ -144,14 +144,15 @@ void create_ice40_dsp(ice40_dsp_pm &pm)
// SB_MAC16 Output Interface // SB_MAC16 Output Interface
SigSpec O = st.sigO; SigSpec O = st.sigO;
if (GetSize(O) == 33) { int O_width = GetSize(O);
cell->setPort("\\CO", st.sigO[32]); if (O_width == 33) {
O.remove(32); log_assert(st.addAB);
cell->setPort("\\CO", O[-1]);
O.remove(O_width-1);
} }
else { else
log_assert(GetSize(O) <= 32);
cell->setPort("\\CO", pm.module->addWire(NEW_ID)); cell->setPort("\\CO", pm.module->addWire(NEW_ID));
} log_assert(GetSize(O) <= 32);
if (GetSize(O) < 32) if (GetSize(O) < 32)
O.append(pm.module->addWire(NEW_ID, 32-GetSize(O))); O.append(pm.module->addWire(NEW_ID, 32-GetSize(O)));