3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-08-06 11:20:27 +00:00

start splitting blackboxes and add wrapper techmap

This commit is contained in:
Miodrag Milanovic 2024-03-11 13:03:20 +01:00
parent cfce7dd2f8
commit 827ea11503
9 changed files with 66 additions and 27 deletions

View file

@ -93,6 +93,7 @@ struct SynthNanoXplorePass : public ScriptPass
string top_opt, json_file, family;
bool flatten, abc9, nocy, nolutram, nobram, nodsp, iopad;
std::string postfix;
void clear_flags() override
{
@ -106,6 +107,7 @@ struct SynthNanoXplorePass : public ScriptPass
nobram = false;
nodsp = false;
iopad = false;
postfix = "";
}
void execute(std::vector<std::string> args, RTLIL::Design *design) override
@ -175,8 +177,20 @@ struct SynthNanoXplorePass : public ScriptPass
if (family.empty()) {
//log_warning("NanoXplore family not set, setting it to NG-ULTRA.\n");
family = "ultra";
postfix = "_u";
}
if (family == "ultra") {
postfix = "_u";
} else if (family == "u300") {
postfix = "_u";
} else if (family == "medium") {
postfix = "_m";
} else if (family == "large") {
postfix = "_l";
} else
log_cmd_error("Invalid NanoXplore -family setting: '%s'.\n", family.c_str());
if (!design->full_selection())
log_cmd_error("This command only operates on fully selected designs!\n");
@ -192,7 +206,8 @@ struct SynthNanoXplorePass : public ScriptPass
{
if (check_label("begin"))
{
run("read_verilog -lib -specify +/nanoxplore/cells_sim.v +/nanoxplore/cells_bb.v");
run("read_verilog -lib -specify +/nanoxplore/cells_sim.v +/nanoxplore/cells_bb.v +/nanoxplore/cells_bb" + postfix + ".v");
run("techmap -map +/nanoxplore/cells_wrap" + postfix + ".v");
run(stringf("hierarchy -check %s", help_mode ? "-top <top>" : top_opt.c_str()));
}