mirror of https://github.com/YosysHQ/yosys.git
Add support for $pmux in btor back-end
This commit is contained in:
parent
83cf736309
commit
133a0f4978
|
@ -417,6 +417,29 @@ struct BtorWorker
|
||||||
goto okay;
|
goto okay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cell->type == "$pmux")
|
||||||
|
{
|
||||||
|
SigSpec sig_a = sigmap(cell->getPort("\\A"));
|
||||||
|
SigSpec sig_b = sigmap(cell->getPort("\\B"));
|
||||||
|
SigSpec sig_s = sigmap(cell->getPort("\\S"));
|
||||||
|
SigSpec sig_y = sigmap(cell->getPort("\\Y"));
|
||||||
|
|
||||||
|
int width = GetSize(sig_a);
|
||||||
|
int sid = get_bv_sid(width);
|
||||||
|
int nid = get_sig_nid(sig_a);
|
||||||
|
|
||||||
|
for (int i = 0; i < GetSize(sig_s); i++) {
|
||||||
|
int nid_b = get_sig_nid(sig_b.extract(i*width, width));
|
||||||
|
int nid_s = get_sig_nid(sig_s.extract(i));
|
||||||
|
int nid2 = next_nid++;
|
||||||
|
btorf("%d ite %d %d %d %d\n", nid2, sid, nid_s, nid_b, nid);
|
||||||
|
nid = nid2;
|
||||||
|
}
|
||||||
|
|
||||||
|
add_nid_sig(nid, sig_y);
|
||||||
|
goto okay;
|
||||||
|
}
|
||||||
|
|
||||||
if (cell->type.in("$dff", "$ff", "$_DFF_P_", "$_DFF_N", "$_FF_"))
|
if (cell->type.in("$dff", "$ff", "$_DFF_P_", "$_DFF_N", "$_FF_"))
|
||||||
{
|
{
|
||||||
SigSpec sig_d = sigmap(cell->getPort("\\D"));
|
SigSpec sig_d = sigmap(cell->getPort("\\D"));
|
||||||
|
|
Loading…
Reference in New Issue