mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-15 13:28:59 +00:00
Separate dffrstmux from dffcemux, fix typos
This commit is contained in:
parent
681be20ca2
commit
0932e23dff
|
@ -63,11 +63,13 @@ code argQ ffAD ffADcemux ffADrstmux ffADcepol ffADrstpol sigA clock
|
||||||
if (dff) {
|
if (dff) {
|
||||||
ffAD = dff;
|
ffAD = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
|
if (dffrstmux) {
|
||||||
|
ffADrstmux = dffrstmux;
|
||||||
|
ffADrstpol = dffrstpol;
|
||||||
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
ffADcemux = dffcemux;
|
ffADcemux = dffcemux;
|
||||||
ffADrstmux = dffrstmux;
|
|
||||||
ffADcepol = dffcepol;
|
ffADcepol = dffcepol;
|
||||||
ffADrstpol = dffrstpol;
|
|
||||||
}
|
}
|
||||||
sigA = dffD;
|
sigA = dffD;
|
||||||
}
|
}
|
||||||
|
@ -115,12 +117,12 @@ code argQ ffAD ffADcemux ffADrstmux ffADcepol ffADrstpol sigA clock ffA2 ffA2cem
|
||||||
ffA2 = dff;
|
ffA2 = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
if (dffrstmux) {
|
if (dffrstmux) {
|
||||||
ffA2cepol = dffcepol;
|
ffA2rstmux = dffrstmux;
|
||||||
ffArstpol = dffrstpol;
|
ffArstpol = dffrstpol;
|
||||||
}
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
|
ffA2cepol = dffcepol;
|
||||||
ffA2cemux = dffcemux;
|
ffA2cemux = dffcemux;
|
||||||
ffA2rstmux = dffrstmux;
|
|
||||||
}
|
}
|
||||||
sigA = dffD;
|
sigA = dffD;
|
||||||
}
|
}
|
||||||
|
@ -173,11 +175,13 @@ code argQ ffB2 ffB2cemux ffB2rstmux ffB2cepol ffBrstpol sigB clock ffB1 ffB1cemu
|
||||||
if (dff) {
|
if (dff) {
|
||||||
ffB2 = dff;
|
ffB2 = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
|
if (dffrstmux) {
|
||||||
|
ffB2rstmux = dffrstmux;
|
||||||
|
ffBrstpol = dffrstpol;
|
||||||
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
ffB2cemux = dffcemux;
|
ffB2cemux = dffcemux;
|
||||||
ffB2rstmux = dffrstmux;
|
|
||||||
ffB2cepol = dffcepol;
|
ffB2cepol = dffcepol;
|
||||||
ffBrstpol = dffrstpol;
|
|
||||||
}
|
}
|
||||||
sigB = dffD;
|
sigB = dffD;
|
||||||
|
|
||||||
|
@ -220,11 +224,13 @@ code argQ ffD ffDcemux ffDrstmux ffDcepol ffDrstpol sigD clock
|
||||||
if (dff) {
|
if (dff) {
|
||||||
ffD = dff;
|
ffD = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
|
if (dffrstmux) {
|
||||||
|
ffDrstmux = dffrstmux;
|
||||||
|
ffDrstpol = dffrstpol;
|
||||||
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
ffDcemux = dffcemux;
|
ffDcemux = dffcemux;
|
||||||
ffDrstmux = dffrstmux;
|
|
||||||
ffDcepol = dffcepol;
|
ffDcepol = dffcepol;
|
||||||
ffDrstpol = dffrstpol;
|
|
||||||
}
|
}
|
||||||
sigD = dffD;
|
sigD = dffD;
|
||||||
}
|
}
|
||||||
|
@ -238,11 +244,13 @@ code argD ffM ffMcemux ffMrstmux ffMcepol ffMrstpol sigM sigP clock
|
||||||
if (dff) {
|
if (dff) {
|
||||||
ffM = dff;
|
ffM = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
|
if (dffrstmux) {
|
||||||
|
ffMrstmux = dffrstmux;
|
||||||
|
ffMrstpol = dffrstpol;
|
||||||
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
ffMcemux = dffcemux;
|
ffMcemux = dffcemux;
|
||||||
ffMrstmux = dffrstmux;
|
|
||||||
ffMcepol = dffcepol;
|
ffMcepol = dffcepol;
|
||||||
ffMrstpol = dffrstpol;
|
|
||||||
}
|
}
|
||||||
sigM = dffQ;
|
sigM = dffQ;
|
||||||
}
|
}
|
||||||
|
@ -288,20 +296,22 @@ endcode
|
||||||
|
|
||||||
code argD ffP ffPcemux ffPrstmux ffPcepol ffPrstpol sigP clock
|
code argD ffP ffPcemux ffPrstmux ffPcepol ffPrstpol sigP clock
|
||||||
if (param(dsp, \PREG).as_int() == 0) {
|
if (param(dsp, \PREG).as_int() == 0) {
|
||||||
// If ffMcemux and no postAdd new-value net must have exactly three users: ffMcemux, ffM and ffPcemux
|
int users = 2;
|
||||||
if ((ffMcemux && !postAdd && nusers(sigP) == 3) ||
|
// If ffMcemux and no postAdd new-value net must have three users: ffMcemux, ffM and ffPcemux
|
||||||
// Otherwise new-value net must have exactly two users: dsp and ffPcemux
|
if (ffMcemux && !postAdd) users++;
|
||||||
((!ffMcemux || postAdd) && nusers(sigP) == 2)) {
|
if (nusers(sigP) == users) {
|
||||||
argD = sigP;
|
argD = sigP;
|
||||||
subpattern(out_dffe);
|
subpattern(out_dffe);
|
||||||
if (dff) {
|
if (dff) {
|
||||||
ffP = dff;
|
ffP = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
|
if (dffrstmux) {
|
||||||
|
ffPrstmux = dffrstmux;
|
||||||
|
ffPrstpol = dffrstpol;
|
||||||
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
ffPcemux = dffcemux;
|
ffPcemux = dffcemux;
|
||||||
ffPcepol = dffcepol;
|
ffPcepol = dffcepol;
|
||||||
ffPrstmux = dffrstmux;
|
|
||||||
ffPrstpol = dffrstpol;
|
|
||||||
}
|
}
|
||||||
sigP = dffQ;
|
sigP = dffQ;
|
||||||
}
|
}
|
||||||
|
@ -333,11 +343,13 @@ code argQ ffC ffCcemux ffCrstmux ffCcepol ffCrstpol sigC clock
|
||||||
if (dff) {
|
if (dff) {
|
||||||
ffC = dff;
|
ffC = dff;
|
||||||
clock = dffclock;
|
clock = dffclock;
|
||||||
|
if (dffrstmux) {
|
||||||
|
ffCrstmux = dffrstmux;
|
||||||
|
ffCrstpol = dffrstpol;
|
||||||
|
}
|
||||||
if (dffcemux) {
|
if (dffcemux) {
|
||||||
ffCcemux = dffcemux;
|
ffCcemux = dffcemux;
|
||||||
ffCrstmux = dffrstmux;
|
|
||||||
ffCcepol = dffcepol;
|
ffCcepol = dffcepol;
|
||||||
ffCrstpol = dffrstpol;
|
|
||||||
}
|
}
|
||||||
sigC = dffD;
|
sigC = dffD;
|
||||||
}
|
}
|
||||||
|
@ -421,7 +433,7 @@ code argD
|
||||||
argD = port(ffrstmux, ffrstpol ? \A : \B);
|
argD = port(ffrstmux, ffrstpol ? \A : \B);
|
||||||
dffD.replace(port(ffrstmux, \Y), argD);
|
dffD.replace(port(ffrstmux, \Y), argD);
|
||||||
|
|
||||||
// Only search for ffrstmux if argQ has at
|
// Only search for ffcemux if argQ has at
|
||||||
// least 3 users (ff, <upstream>, ffrstmux) and
|
// least 3 users (ff, <upstream>, ffrstmux) and
|
||||||
// dffD only has two (ff, ffrstmux)
|
// dffD only has two (ff, ffrstmux)
|
||||||
if (!(nusers(argQ) >= 3 && nusers(dffD) == 2))
|
if (!(nusers(argQ) >= 3 && nusers(dffD) == 2))
|
||||||
|
@ -525,7 +537,7 @@ endmatch
|
||||||
code argD argQ
|
code argD argQ
|
||||||
dffrstmux = ffrstmux;
|
dffrstmux = ffrstmux;
|
||||||
if (ffrstmux) {
|
if (ffrstmux) {
|
||||||
SigSpec AB = port(ffrstmux, ffcepol ? \A : \B);
|
SigSpec AB = port(ffrstmux, ffrstpol ? \A : \B);
|
||||||
if (ffoffset + GetSize(argD) > GetSize(AB))
|
if (ffoffset + GetSize(argD) > GetSize(AB))
|
||||||
reject;
|
reject;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue