mirror of https://github.com/YosysHQ/yosys.git
Copy attributes to _TECHMAP_REPLACE_ cells
This commit is contained in:
parent
e6d56d23b5
commit
cf25dc9ce7
|
@ -327,8 +327,9 @@ struct TechmapWorker
|
||||||
for (auto &it : tpl->cells_)
|
for (auto &it : tpl->cells_)
|
||||||
{
|
{
|
||||||
std::string c_name = it.second->name.str();
|
std::string c_name = it.second->name.str();
|
||||||
|
bool techmap_replace_cell = (!flatten_mode) && (c_name == "\\_TECHMAP_REPLACE_");
|
||||||
|
|
||||||
if (!flatten_mode && c_name == "\\_TECHMAP_REPLACE_")
|
if (techmap_replace_cell)
|
||||||
c_name = orig_cell_name;
|
c_name = orig_cell_name;
|
||||||
else
|
else
|
||||||
apply_prefix(cell->name.str(), c_name);
|
apply_prefix(cell->name.str(), c_name);
|
||||||
|
@ -358,6 +359,11 @@ struct TechmapWorker
|
||||||
|
|
||||||
if (c->attributes.count("\\src"))
|
if (c->attributes.count("\\src"))
|
||||||
c->add_strpool_attribute("\\src", extra_src_attrs);
|
c->add_strpool_attribute("\\src", extra_src_attrs);
|
||||||
|
|
||||||
|
if (techmap_replace_cell)
|
||||||
|
for (auto attr : cell->attributes)
|
||||||
|
if (!c->attributes.count(attr.first))
|
||||||
|
c->attributes[attr.first] = attr.second;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto &it : tpl->connections()) {
|
for (auto &it : tpl->connections()) {
|
||||||
|
@ -1005,7 +1011,7 @@ struct TechmapPass : public Pass {
|
||||||
log("constant value.\n");
|
log("constant value.\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log("A cell with the name _TECHMAP_REPLACE_ in the map file will inherit the name\n");
|
log("A cell with the name _TECHMAP_REPLACE_ in the map file will inherit the name\n");
|
||||||
log("of the cell that is being replaced.\n");
|
log("and attributes of the cell that is being replaced.\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log("See 'help extract' for a pass that does the opposite thing.\n");
|
log("See 'help extract' for a pass that does the opposite thing.\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
|
Loading…
Reference in New Issue