changed write bit selectors from ands to Cels, to avoid selector hazards
This commit is contained in:
parent
eda9e2a98b
commit
b59a57c324
|
@ -422,6 +422,7 @@ defproc registerA_w_array(avMx1of2<NcA + NcW + 1> in; Mx1of2<NcW> data[M];
|
||||||
vtree<NcA + NcW + 1> input_valid(.in = in.d, .out = in.v,
|
vtree<NcA + NcW + 1> input_valid(.in = in.d, .out = in.v,
|
||||||
.supply = supply);
|
.supply = supply);
|
||||||
|
|
||||||
|
|
||||||
// Address decoder
|
// Address decoder
|
||||||
decoder_dualrail<NcA, M> decoder(.supply = supply);
|
decoder_dualrail<NcA, M> decoder(.supply = supply);
|
||||||
(i:NcA:
|
(i:NcA:
|
||||||
|
@ -437,10 +438,10 @@ A_2C_B_X1 in_ack_Cel(.c1 = ack_ortree.out, .c2 = input_valid.out, .y = in.a,
|
||||||
|
|
||||||
// Write bit selector
|
// Write bit selector
|
||||||
bool _w = in.d.d[NcA+NcW].t;
|
bool _w = in.d.d[NcA+NcW].t;
|
||||||
AND2_X1 write_selectors[M];
|
A_2C_B_X1 write_selectors[M];
|
||||||
(i:M:
|
(i:M:
|
||||||
write_selectors[i].a = _w;
|
write_selectors[i].c1 = _w;
|
||||||
write_selectors[i].b = decoder.out[i];
|
write_selectors[i].c2 = decoder.out[i];
|
||||||
write_selectors[i].vdd = supply.vdd;
|
write_selectors[i].vdd = supply.vdd;
|
||||||
write_selectors[i].vss = supply.vss;
|
write_selectors[i].vss = supply.vss;
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue