mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-13 04:28:18 +00:00
techmap: Support dynamic cell types
This commit is contained in:
parent
dd2195543b
commit
fc82251105
|
@ -222,6 +222,8 @@ X(_TECHMAP_REPLACE_)
|
||||||
X(techmap_simplemap)
|
X(techmap_simplemap)
|
||||||
X(_techmap_special_)
|
X(_techmap_special_)
|
||||||
X(techmap_wrap)
|
X(techmap_wrap)
|
||||||
|
X(_TECHMAP_PLACEHOLDER_)
|
||||||
|
X(techmap_chtype)
|
||||||
X(T_FALL_MAX)
|
X(T_FALL_MAX)
|
||||||
X(T_FALL_MIN)
|
X(T_FALL_MIN)
|
||||||
X(T_FALL_TYP)
|
X(T_FALL_TYP)
|
||||||
|
|
|
@ -336,6 +336,9 @@ struct TechmapWorker
|
||||||
|
|
||||||
if (c->type.begins_with("\\$"))
|
if (c->type.begins_with("\\$"))
|
||||||
c->type = c->type.substr(1);
|
c->type = c->type.substr(1);
|
||||||
|
|
||||||
|
if (c->type == ID::_TECHMAP_PLACEHOLDER_ && tpl_cell->has_attribute(ID::techmap_chtype))
|
||||||
|
c->type = RTLIL::escape_id(tpl_cell->get_string_attribute(ID::techmap_chtype));
|
||||||
|
|
||||||
vector<IdString> autopurge_ports;
|
vector<IdString> autopurge_ports;
|
||||||
|
|
||||||
|
@ -1135,6 +1138,10 @@ struct TechmapPass : public Pass {
|
||||||
log("new wire alias to be created and named as above but with the `_TECHMAP_REPLACE_'\n");
|
log("new wire alias to be created and named as above but with the `_TECHMAP_REPLACE_'\n");
|
||||||
log("prefix also substituted.\n");
|
log("prefix also substituted.\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
log("A cell with the type _TECHMAP_PLACEHOLDER_ in the map file will have its type\n");
|
||||||
|
log("changed to the content of the techmap_chtype attribute. This allows for choosing\n");
|
||||||
|
log("the cell type dynamically.\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");
|
||||||
log("See 'help flatten' for a pass that does flatten the design (which is\n");
|
log("See 'help flatten' for a pass that does flatten the design (which is\n");
|
||||||
|
|
Loading…
Reference in a new issue