mirror of
https://github.com/YosysHQ/yosys
synced 2026-07-04 14:36:10 +00:00
Remove elarith-fast for now.
This commit is contained in:
parent
25eb394ad0
commit
862e9fc54e
2 changed files with 1 additions and 15 deletions
|
|
@ -47,7 +47,6 @@ enum class FinalAdder {
|
||||||
DEFAULT, // emit $add and let downstream techmap pick
|
DEFAULT, // emit $add and let downstream techmap pick
|
||||||
RIPPLE, // emit $add with explicit narrow hint
|
RIPPLE, // emit $add with explicit narrow hint
|
||||||
PARALLEL_PREFIX, // emit $add with PARALLEL_PREFIX
|
PARALLEL_PREFIX, // emit $add with PARALLEL_PREFIX
|
||||||
ELARITH_FAST, // black-box instance of \AddCfast
|
|
||||||
ELARITH_MOP_CSV, // black-box instance of \AddMopCsv
|
ELARITH_MOP_CSV, // black-box instance of \AddMopCsv
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -328,19 +327,6 @@ inline Cell *emit_final_adder(Module *module, SigSpec a, SigSpec b, SigSpec y, F
|
||||||
c->set_string_attribute(ID(adder_arch), "parallel_prefix");
|
c->set_string_attribute(ID(adder_arch), "parallel_prefix");
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
case FinalAdder::ELARITH_FAST: {
|
|
||||||
Cell *c = module->addCell(NEW_ID, IdString("\\AddCfast"));
|
|
||||||
int w = GetSize(y);
|
|
||||||
c->setParam(IdString("\\WIDTH"), w);
|
|
||||||
c->setParam(IdString("\\SPEED"), Const("fast"));
|
|
||||||
c->setParam(IdString("\\SIGNED"), any_signed ? 1 : 0);
|
|
||||||
c->setPort(IdString("\\A"), a);
|
|
||||||
c->setPort(IdString("\\B"), b);
|
|
||||||
c->setPort(IdString("\\Cin"), State::S0);
|
|
||||||
c->setPort(IdString("\\Sum"), y);
|
|
||||||
c->setPort(IdString("\\Cout"), module->addWire(NEW_ID));
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
case FinalAdder::ELARITH_MOP_CSV: {
|
case FinalAdder::ELARITH_MOP_CSV: {
|
||||||
Cell *c = module->addCell(NEW_ID, IdString("\\AddMopCsv"));
|
Cell *c = module->addCell(NEW_ID, IdString("\\AddMopCsv"));
|
||||||
int w = GetSize(y);
|
int w = GetSize(y);
|
||||||
|
|
@ -361,7 +347,6 @@ inline FinalAdder pick_final_adder(int width, FinalMode mode) {
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case FinalMode::RIPPLE: return FinalAdder::RIPPLE;
|
case FinalMode::RIPPLE: return FinalAdder::RIPPLE;
|
||||||
case FinalMode::PREFIX: return FinalAdder::PARALLEL_PREFIX;
|
case FinalMode::PREFIX: return FinalAdder::PARALLEL_PREFIX;
|
||||||
case FinalMode::ELARITH: return FinalAdder::ELARITH_FAST;
|
|
||||||
case FinalMode::AUTO:
|
case FinalMode::AUTO:
|
||||||
default: return (width < RIPPLE_PREFIX_THRESHOLD) ? FinalAdder::DEFAULT : FinalAdder::PARALLEL_PREFIX;
|
default: return (width < RIPPLE_PREFIX_THRESHOLD) ? FinalAdder::DEFAULT : FinalAdder::PARALLEL_PREFIX;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -353,6 +353,7 @@ struct ArithTreeWorker {
|
||||||
|
|
||||||
void emit_elarith_macro(std::vector<Operand> &operands, SigSpec result_y, int neg_compensation, bool any_signed, const char *desc)
|
void emit_elarith_macro(std::vector<Operand> &operands, SigSpec result_y, int neg_compensation, bool any_signed, const char *desc)
|
||||||
{
|
{
|
||||||
|
// Multi operand
|
||||||
int width = GetSize(result_y);
|
int width = GetSize(result_y);
|
||||||
auto pool = build_operand_pool(operands, width, neg_compensation);
|
auto pool = build_operand_pool(operands, width, neg_compensation);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue