mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-22 22:03:40 +00:00
consteval: Fix $bwmux handling
If the cell type has a S signal and hasn't already been handled, use `CellTypes::eval(cell, A, B, S)`.
This commit is contained in:
parent
8186d67ad7
commit
9efd871903
2 changed files with 6 additions and 4 deletions
|
@ -349,7 +349,11 @@ struct ConstEval
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool eval_err = false;
|
bool eval_err = false;
|
||||||
RTLIL::Const eval_ret = CellTypes::eval(cell, sig_a.as_const(), sig_b.as_const(), sig_c.as_const(), sig_d.as_const(), &eval_err);
|
RTLIL::Const eval_ret;
|
||||||
|
if (sig_s.size() > 0 && eval(sig_s, undef, cell)) {
|
||||||
|
eval_ret = CellTypes::eval(cell, sig_a.as_const(), sig_b.as_const(), sig_s.as_const(), &eval_err);
|
||||||
|
} else
|
||||||
|
eval_ret = CellTypes::eval(cell, sig_a.as_const(), sig_b.as_const(), sig_c.as_const(), sig_d.as_const(), &eval_err);
|
||||||
|
|
||||||
if (eval_err)
|
if (eval_err)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1044,9 +1044,7 @@ struct TestCellPass : public Pass {
|
||||||
// $pmux doesn't work in sat, and is not supported with 'techmap -assert'
|
// $pmux doesn't work in sat, and is not supported with 'techmap -assert'
|
||||||
if (nosat && techmap_cmd.compare("aigmap") == 0)
|
if (nosat && techmap_cmd.compare("aigmap") == 0)
|
||||||
cell_types[ID($pmux)] = "*";
|
cell_types[ID($pmux)] = "*";
|
||||||
// $bwmux is not supported by ConstEval
|
cell_types[ID($bwmux)] = "A";
|
||||||
if (noeval)
|
|
||||||
cell_types[ID($bwmux)] = "A";
|
|
||||||
|
|
||||||
cell_types[ID($slice)] = "A";
|
cell_types[ID($slice)] = "A";
|
||||||
cell_types[ID($concat)] = "AB";
|
cell_types[ID($concat)] = "AB";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue