rst = port(rstmux, rstmuxBA).as_const();
int width = GetSize(D);
+ SigSpec &ceA = cemux->connections_.at(\A);
+ SigSpec &ceB = cemux->connections_.at(\B);
+ SigSpec &ceY = cemux->connections_.at(\Y);
+ SigSpec &dffD = dff->connections_.at(\D);
+ SigSpec &dffQ = dff->connections_.at(\Q);
+
if (D[width-1] == D[width-2]) {
did_something = true;
}
}
- cemux->connections_.at(\A).remove(i, width-i);
- cemux->connections_.at(\B).remove(i, width-i);
- cemux->connections_.at(\Y).remove(i, width-i);
+ ceA.remove(i, width-i);
+ ceB.remove(i, width-i);
+ ceY.remove(i, width-i);
cemux->fixup_parameters();
- dff->connections_.at(\D).remove(i, width-i);
- dff->connections_.at(\Q).remove(i, width-i);
+ dffD.remove(i, width-i);
+ dffQ.remove(i, width-i);
dff->fixup_parameters();
log("dffcemux pattern in %s: dff=%s, cemux=%s; removed top %d bits.\n", log_id(module), log_id(dff), log_id(cemux), width-i);
if (init == State::Sx || init == D[i].data) {
count++;
module->connect(Q[i], D[i]);
- cemux->connections_.at(\A).remove(i);
- cemux->connections_.at(\B).remove(i);
- cemux->connections_.at(\Y).remove(i);
- dff->connections_.at(\D).remove(i);
- dff->connections_.at(\Q).remove(i);
+ ceA.remove(i);
+ ceB.remove(i);
+ ceY.remove(i);
+ dffD.remove(i);
+ dffQ.remove(i);
}
}
if (count > 0) {