remvoed buffering from decoder dr
This commit is contained in:
parent
c81e77a2fa
commit
93aeda77d3
@ -105,14 +105,13 @@ defproc decoder_dualrail_x(Mx1of2<Nc> in; bool? out[N*OUT_STRENGTH]; power suppl
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Dualrail decoder with on/off switch.
|
* Dualrail decoder with on/off switch.
|
||||||
* Outputs are buffered.
|
* Outputs are NOT buffered.
|
||||||
*/
|
*/
|
||||||
export template<pint Nc, N, OUT_STRENGTH>
|
export template<pint Nc, N>
|
||||||
defproc decoder_dualrail_en(Mx1of2<Nc> in; bool? en, out[N*OUT_STRENGTH]; power supply) {
|
defproc decoder_dualrail_en(Mx1of2<Nc> in; bool? en, out[N]; power supply) {
|
||||||
decoder_dualrail<Nc, N> decoder(.in = in, .supply = supply);
|
decoder_dualrail<Nc, N> decoder(.in = in, .supply = supply);
|
||||||
|
|
||||||
sigbuf<N> sb_en(.in = en, .supply = supply);
|
sigbuf<N> sb_en(.in = en, .supply = supply);
|
||||||
sigbuf<OUT_STRENGTH> sb[N];
|
|
||||||
AND2_X1 en_ands[N];
|
AND2_X1 en_ands[N];
|
||||||
(i:N:
|
(i:N:
|
||||||
en_ands[i].a = decoder.out[i];
|
en_ands[i].a = decoder.out[i];
|
||||||
@ -121,16 +120,46 @@ defproc decoder_dualrail_en(Mx1of2<Nc> in; bool? en, out[N*OUT_STRENGTH]; power
|
|||||||
en_ands[i].vdd = supply.vdd;
|
en_ands[i].vdd = supply.vdd;
|
||||||
en_ands[i].vss = supply.vss;
|
en_ands[i].vss = supply.vss;
|
||||||
|
|
||||||
sb[i].in = en_ands[i].y;
|
en_ands[i].y = out[i];
|
||||||
sb[i].supply = supply;
|
|
||||||
(j:OUT_STRENGTH:
|
|
||||||
sb[i].out[j] = out[j + i*OUT_STRENGTH];
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dualrail decoder with on/off switch.
|
||||||
|
* Outputs are buffered.
|
||||||
|
*/
|
||||||
|
// export template<pint Nc, N, OUT_STRENGTH>
|
||||||
|
// defproc decoder_dualrail_en_x(Mx1of2<Nc> in; bool? en, out[N]; power supply) {
|
||||||
|
// decoder_dualrail<Nc, N> decoder(.in = in, .supply = supply);
|
||||||
|
|
||||||
|
// sigbuf<N> sb_en(.in = en, .supply = supply);
|
||||||
|
// sigbuf<OUT_STRENGTH> sb[N];
|
||||||
|
// AND2_X1 en_ands[N];
|
||||||
|
// (i:N:
|
||||||
|
// en_ands[i].a = decoder.out[i];
|
||||||
|
// en_ands[i].b = sb_en.out[i];
|
||||||
|
|
||||||
|
// en_ands[i].vdd = supply.vdd;
|
||||||
|
// en_ands[i].vss = supply.vss;
|
||||||
|
|
||||||
|
// sb[i].in = en_ands[i].y;
|
||||||
|
// sb[i].supply = supply;
|
||||||
|
|
||||||
|
// // (j:OUT_STRENGTH:
|
||||||
|
// // sb[i].out[j] = out[j + i*OUT_STRENGTH];
|
||||||
|
// // )
|
||||||
|
|
||||||
|
// sb[i].out[0] = out[i];
|
||||||
|
|
||||||
|
// )
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user