minor sigbuf changes
This commit is contained in:
parent
7b2484a8a4
commit
c1ea7be83d
|
@ -810,8 +810,6 @@ defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; a1of1 out[Nx*Ny]; bool? dly_cfg
|
||||||
Yenc.in[i] = iny[i].a;
|
Yenc.in[i] = iny[i].a;
|
||||||
)
|
)
|
||||||
|
|
||||||
// INV_X2 inv_rx(.a = _r_x, .y _r_x_B, .vdd = supply.vdd, .vss = supply.vss);
|
|
||||||
// INV_X2 inv_ry(.a = _r_y, .y = _r_y_B, .vdd = supply.vdd, .vss = supply.vss);
|
|
||||||
INV_X2 inv_buf(.a = buf.in.a, .vdd = supply.vdd, .vss = supply.vss);
|
INV_X2 inv_buf(.a = buf.in.a, .vdd = supply.vdd, .vss = supply.vss);
|
||||||
|
|
||||||
A_2C_RB_X1 a_x_Cel(.c1 = inv_buf.y, .c2 = _r_x, .y = _a_x,
|
A_2C_RB_X1 a_x_Cel(.c1 = inv_buf.y, .c2 = _r_x, .y = _a_x,
|
||||||
|
@ -819,11 +817,6 @@ defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; a1of1 out[Nx*Ny]; bool? dly_cfg
|
||||||
A_2C_RB_X1 a_y_Cel(.c1 = inv_buf.y, .c2 = _r_y, .y = _a_y,
|
A_2C_RB_X1 a_y_Cel(.c1 = inv_buf.y, .c2 = _r_y, .y = _a_y,
|
||||||
.sr_B = reset_B, .pr_B = reset_B, .vdd = supply.vdd, .vss = supply.vss);
|
.sr_B = reset_B, .pr_B = reset_B, .vdd = supply.vdd, .vss = supply.vss);
|
||||||
|
|
||||||
// A_2C_RB_X1 a_x_Cel(.c1 = buf.in.a, .c2 = _r_x_B, .y = _a_x,
|
|
||||||
// .sr_B = reset_B, .pr_B = reset_B, .vdd = supply.vdd, .vss = supply.vss);
|
|
||||||
// A_2C_RB_X1 a_y_Cel(.c1 = buf.in.a, .c2 = _r_y_B, .y = _a_y,
|
|
||||||
// .sr_B = reset_B, .pr_B = reset_B, .vdd = supply.vdd, .vss = supply.vss);
|
|
||||||
|
|
||||||
// Wire up encoder to buffer
|
// Wire up encoder to buffer
|
||||||
(i:NxC:
|
(i:NxC:
|
||||||
Xenc.out.d[i] = buf.in.d.d[i];
|
Xenc.out.d[i] = buf.in.d.d[i];
|
||||||
|
@ -891,18 +884,26 @@ defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; a1of1 out[Nx*Ny]; bool? dly_cfg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// export
|
||||||
|
// defproc nrn_line_end_pull_down (bool? in; bool? reset_B; power supply; bool! out)
|
||||||
|
// {
|
||||||
|
// bool _out, __out, nand_out;
|
||||||
|
// BUF_X1 buf1(.a=in, .y=_out, .vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
// BUF_X1 buf2(.a=_out, .y=__out, .vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
// INV_X1 inv(.a = __out, .vdd=supply.vdd,.vss =supply.vss);
|
||||||
|
|
||||||
export
|
// NAND2_X1 aenor(.a=inv.y, .b=reset_B, .y = nand_out, .vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
|
||||||
|
// A_1N_U_X4 pull_down(.a=nand_out, .y=out);
|
||||||
|
// }
|
||||||
|
|
||||||
|
export
|
||||||
defproc nrn_line_end_pull_down (bool? in; bool? reset_B; power supply; bool! out)
|
defproc nrn_line_end_pull_down (bool? in; bool? reset_B; power supply; bool! out)
|
||||||
{
|
{
|
||||||
bool _out, __out, nand_out;
|
INV_X1 inv(.a = reset_B, .vdd=supply.vdd,.vss =supply.vss);
|
||||||
BUF_X1 buf1(.a=in, .y=_out, .vdd=supply.vdd,.vss=supply.vss);
|
|
||||||
BUF_X1 buf2(.a=_out, .y=__out, .vdd=supply.vdd,.vss=supply.vss);
|
|
||||||
INV_X1 inv(.a = __out, .vdd=supply.vdd,.vss =supply.vss);
|
|
||||||
|
|
||||||
NAND2_X1 aenor(.a=inv.y, .b=reset_B, .y = nand_out, .vdd=supply.vdd,.vss=supply.vss);
|
A_1N_U_X4 pull_down(.a=in, .y=out);
|
||||||
|
A_1N_U_X4 pull_downR(.a=inv.y, .y=out);
|
||||||
A_1N_U_X4 pull_down(.a=nand_out, .y=out);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -62,9 +62,9 @@ namespace tmpl {
|
||||||
sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX, .supply=supply);
|
sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX, .supply=supply);
|
||||||
|
|
||||||
// sig buff the req
|
// sig buff the req
|
||||||
bool _reqX, _reqXX[N];
|
bool _reqX, _reqXX[N*2];
|
||||||
BUF_X4 req_buf(.a=_req, .y=_reqX,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X4 req_buf(.a=_req, .y=_reqX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
sigbuf<N> req_bufarray(.in=_reqX, .out=_reqXX, .supply=supply);
|
sigbuf<N*2> req_bufarray(.in=_reqX, .out=_reqXX, .supply=supply);
|
||||||
|
|
||||||
// For reasons of pure spice, the control circuitry
|
// For reasons of pure spice, the control circuitry
|
||||||
// requires a req signal that FALLS SLOWER than the req going to the function block.
|
// requires a req signal that FALLS SLOWER than the req going to the function block.
|
||||||
|
@ -121,7 +121,7 @@ namespace tmpl {
|
||||||
f_buf_func[i].n1=_inB[i];
|
f_buf_func[i].n1=_inB[i];
|
||||||
t_buf_func[i].n1=in.d[i];
|
t_buf_func[i].n1=in.d[i];
|
||||||
f_buf_func[i].n2=_reqXX[i];
|
f_buf_func[i].n2=_reqXX[i];
|
||||||
t_buf_func[i].n2=_reqXX[i];
|
t_buf_func[i].n2=_reqXX[i+N];
|
||||||
f_buf_func[i].vdd=supply.vdd;
|
f_buf_func[i].vdd=supply.vdd;
|
||||||
t_buf_func[i].vdd=supply.vdd;
|
t_buf_func[i].vdd=supply.vdd;
|
||||||
f_buf_func[i].vss=supply.vss;
|
f_buf_func[i].vss=supply.vss;
|
||||||
|
|
Loading…
Reference in New Issue