lut/not/and suffix to be ${lut,not,and}

This commit is contained in:
Eddie Hung 2019-02-20 16:30:30 -08:00
parent 869343b040
commit 32853b1f8d
2 changed files with 17 additions and 17 deletions

View File

@ -163,12 +163,12 @@ void AigerReader::parse_aiger()
RTLIL::Wire *wire = module->wire(name); RTLIL::Wire *wire = module->wire(name);
if (wire) { if (wire) {
RTLIL::Cell* driver = module->cell(stringf("%slut", wire->name.c_str())); RTLIL::Cell* driver = module->cell(stringf("%s$lut", wire->name.c_str()));
module->rename(wire, RTLIL::escape_id(stringf("%s[%d]", name.c_str(), 0))); module->rename(wire, RTLIL::escape_id(stringf("%s[%d]", name.c_str(), 0)));
if (driver) if (driver)
module->rename(driver, stringf("%slut", wire->name.c_str())); module->rename(driver, stringf("%s$lut", wire->name.c_str()));
} }
// Do not make ports with a mix of input/output into // Do not make ports with a mix of input/output into
@ -246,7 +246,7 @@ static RTLIL::Wire* createWireIfNotExists(RTLIL::Module *module, unsigned litera
} }
log_debug("Creating %s = ~%s\n", wire_name.c_str(), wire_inv_name.c_str()); log_debug("Creating %s = ~%s\n", wire_name.c_str(), wire_inv_name.c_str());
module->addNotGate(stringf("\\__%d__not", variable), wire_inv, wire); // FIXME: is "not" the right suffix? module->addNotGate(stringf("\\__%d__$not", variable), wire_inv, wire); // FIXME: is "$not" the right suffix?
return wire; return wire;
} }
@ -325,10 +325,10 @@ void AigerReader::parse_xaiger()
lut_mask[j] = o.as_const()[0]; lut_mask[j] = o.as_const()[0];
ce.pop(); ce.pop();
} }
RTLIL::Cell *output_cell = module->cell(stringf("\\__%d__and", rootNodeID)); RTLIL::Cell *output_cell = module->cell(stringf("\\__%d__$and", rootNodeID));
log_assert(output_cell); log_assert(output_cell);
module->remove(output_cell); module->remove(output_cell);
module->addLut(stringf("\\__%d__lut", rootNodeID), input_sig, output_sig, std::move(lut_mask)); module->addLut(stringf("\\__%d__$lut", rootNodeID), input_sig, output_sig, std::move(lut_mask));
} }
} }
else if (c == 'n') { else if (c == 'n') {
@ -353,8 +353,8 @@ void AigerReader::parse_xaiger()
module->rename(wire, stringf("\\%s", s.c_str())); module->rename(wire, stringf("\\%s", s.c_str()));
RTLIL::Cell* driver = module->cell(stringf("%slut", wire->name.c_str())); RTLIL::Cell* driver = module->cell(stringf("%s$lut", wire->name.c_str()));
module->rename(driver, stringf("%slut", wire->name.c_str())); module->rename(driver, stringf("%s$lut", wire->name.c_str()));
std::getline(f, line); // Ignore up to start of next line std::getline(f, line); // Ignore up to start of next line
++line_count; ++line_count;
@ -391,7 +391,7 @@ void AigerReader::parse_xaiger()
log_assert(wire); log_assert(wire);
log_assert(wire->port_output); log_assert(wire->port_output);
RTLIL::Cell* driver = module->cell(stringf("%slut", wire->name.c_str())); RTLIL::Cell* driver = module->cell(stringf("%s$lut", wire->name.c_str()));
if (index == 0) if (index == 0)
module->rename(wire, RTLIL::escape_id(symbol)); module->rename(wire, RTLIL::escape_id(symbol));
@ -402,7 +402,7 @@ void AigerReader::parse_xaiger()
} }
if (driver) if (driver)
module->rename(driver, stringf("%slut", wire->name.c_str())); module->rename(driver, stringf("%s$lut", wire->name.c_str()));
} }
else else
log_error("Symbol type '%s' not recognised.\n", type.c_str()); log_error("Symbol type '%s' not recognised.\n", type.c_str());
@ -415,12 +415,12 @@ void AigerReader::parse_xaiger()
RTLIL::Wire *wire = module->wire(name); RTLIL::Wire *wire = module->wire(name);
if (wire) { if (wire) {
RTLIL::Cell* driver = module->cell(stringf("%slut", wire->name.c_str())); RTLIL::Cell* driver = module->cell(stringf("%s$lut", wire->name.c_str()));
module->rename(wire, RTLIL::escape_id(stringf("%s[%d]", name.c_str(), 0))); module->rename(wire, RTLIL::escape_id(stringf("%s[%d]", name.c_str(), 0)));
if (driver) if (driver)
module->rename(driver, stringf("%slut", wire->name.c_str())); module->rename(driver, stringf("%s$lut", wire->name.c_str()));
} }
// Do not make ports with a mix of input/output into // Do not make ports with a mix of input/output into
@ -581,7 +581,7 @@ void AigerReader::parse_aiger_ascii()
RTLIL::Wire *o_wire = createWireIfNotExists(module, l1); RTLIL::Wire *o_wire = createWireIfNotExists(module, l1);
RTLIL::Wire *i1_wire = createWireIfNotExists(module, l2); RTLIL::Wire *i1_wire = createWireIfNotExists(module, l2);
RTLIL::Wire *i2_wire = createWireIfNotExists(module, l3); RTLIL::Wire *i2_wire = createWireIfNotExists(module, l3);
module->addAndGate(o_wire->name.str() + "and", i1_wire, i2_wire, o_wire); module->addAndGate(o_wire->name.str() + "$and", i1_wire, i2_wire, o_wire);
} }
std::getline(f, line); std::getline(f, line);
} }
@ -712,7 +712,7 @@ void AigerReader::parse_aiger_binary()
RTLIL::Wire *o_wire = createWireIfNotExists(module, l1); RTLIL::Wire *o_wire = createWireIfNotExists(module, l1);
RTLIL::Wire *i1_wire = createWireIfNotExists(module, l2); RTLIL::Wire *i1_wire = createWireIfNotExists(module, l2);
RTLIL::Wire *i2_wire = createWireIfNotExists(module, l3); RTLIL::Wire *i2_wire = createWireIfNotExists(module, l3);
module->addAndGate(o_wire->name.str() + "and", i1_wire, i2_wire, o_wire); module->addAndGate(o_wire->name.str() + "$and", i1_wire, i2_wire, o_wire);
} }
} }

View File

@ -592,7 +592,7 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *current_module, std::stri
if (a_bit.wire->port_input) { if (a_bit.wire->port_input) {
// If it's a NOT gate that comes from a primary input directly // If it's a NOT gate that comes from a primary input directly
// then implement it using a LUT // then implement it using a LUT
cell = module->addLut(remap_name(stringf("%slut", c->name.c_str())), cell = module->addLut(remap_name(stringf("%s$lut", c->name.c_str())),
RTLIL::SigBit(module->wires_[remap_name(a_bit.wire->name)], a_bit.offset), RTLIL::SigBit(module->wires_[remap_name(a_bit.wire->name)], a_bit.offset),
RTLIL::SigBit(module->wires_[remap_name(y_bit.wire->name)], y_bit.offset), RTLIL::SigBit(module->wires_[remap_name(y_bit.wire->name)], y_bit.offset),
1); 1);
@ -603,9 +603,9 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *current_module, std::stri
// (TODO: Optimise by not cloning unless will increase depth) // (TODO: Optimise by not cloning unless will increase depth)
RTLIL::IdString driver_name; RTLIL::IdString driver_name;
if (GetSize(a_bit.wire) == 1) if (GetSize(a_bit.wire) == 1)
driver_name = stringf("%slut", a_bit.wire->name.c_str()); driver_name = stringf("%s$lut", a_bit.wire->name.c_str());
else else
driver_name = stringf("%s[%d]lut", a_bit.wire->name.c_str(), a_bit.offset); driver_name = stringf("%s[%d]$lut", a_bit.wire->name.c_str(), a_bit.offset);
RTLIL::Cell* driver = mapped_mod->cell(driver_name); RTLIL::Cell* driver = mapped_mod->cell(driver_name);
log_assert(driver); log_assert(driver);
auto driver_a = driver->getPort("\\A").chunks(); auto driver_a = driver->getPort("\\A").chunks();
@ -616,7 +616,7 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *current_module, std::stri
if (b == RTLIL::State::S0) b = RTLIL::State::S1; if (b == RTLIL::State::S0) b = RTLIL::State::S1;
else if (b == RTLIL::State::S1) b = RTLIL::State::S0; else if (b == RTLIL::State::S1) b = RTLIL::State::S0;
} }
cell = module->addLut(remap_name(stringf("%slut", c->name.c_str())), cell = module->addLut(remap_name(stringf("%s$lut", c->name.c_str())),
driver_a, driver_a,
RTLIL::SigBit(module->wires_[remap_name(y_bit.wire->name)], y_bit.offset), RTLIL::SigBit(module->wires_[remap_name(y_bit.wire->name)], y_bit.offset),
driver_lut); driver_lut);