mirror of https://github.com/YosysHQ/yosys.git
Fixes for OAI4 cell implementation
Fixes #955 and the underlying issue in #954 Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
d9daf09cf3
commit
742c2f245d
|
@ -453,7 +453,7 @@ Aig::Aig(Cell *cell)
|
||||||
int B = mk.inport("\\B");
|
int B = mk.inport("\\B");
|
||||||
int C = mk.inport("\\C");
|
int C = mk.inport("\\C");
|
||||||
int D = mk.inport("\\D");
|
int D = mk.inport("\\D");
|
||||||
int Y = mk.nand_gate(mk.nor_gate(A, B), mk.nor_gate(C, D));
|
int Y = mk.nand_gate(mk.or_gate(A, B), mk.or_gate(C, D));
|
||||||
mk.outport(Y, "\\Y");
|
mk.outport(Y, "\\Y");
|
||||||
goto optimize;
|
goto optimize;
|
||||||
}
|
}
|
||||||
|
|
|
@ -464,7 +464,7 @@ struct CellTypes
|
||||||
if (cell->type == "$_AOI4_")
|
if (cell->type == "$_AOI4_")
|
||||||
return eval_not(const_or(const_and(arg1, arg2, false, false, 1), const_and(arg3, arg4, false, false, 1), false, false, 1));
|
return eval_not(const_or(const_and(arg1, arg2, false, false, 1), const_and(arg3, arg4, false, false, 1), false, false, 1));
|
||||||
if (cell->type == "$_OAI4_")
|
if (cell->type == "$_OAI4_")
|
||||||
return eval_not(const_and(const_or(arg1, arg2, false, false, 1), const_and(arg3, arg4, false, false, 1), false, false, 1));
|
return eval_not(const_and(const_or(arg1, arg2, false, false, 1), const_or(arg3, arg4, false, false, 1), false, false, 1));
|
||||||
|
|
||||||
log_assert(arg4.bits.size() == 0);
|
log_assert(arg4.bits.size() == 0);
|
||||||
return eval(cell, arg1, arg2, arg3, errp);
|
return eval(cell, arg1, arg2, arg3, errp);
|
||||||
|
|
Loading…
Reference in New Issue