mirror of https://github.com/YosysHQ/yosys.git
Added read_blif command
This commit is contained in:
parent
e5116eeb77
commit
2cc4e75914
|
@ -133,7 +133,7 @@ void parse_blif(RTLIL::Design *design, std::istream &f, std::string dff_name)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(cmd, ".gate"))
|
if (!strcmp(cmd, ".gate") || !strcmp(cmd, ".subckt"))
|
||||||
{
|
{
|
||||||
char *p = strtok(NULL, " \t\r\n");
|
char *p = strtok(NULL, " \t\r\n");
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
|
@ -268,5 +268,35 @@ error:
|
||||||
log_error("Syntax error in line %d!\n", line_count);
|
log_error("Syntax error in line %d!\n", line_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct BlifFrontend : public Frontend {
|
||||||
|
BlifFrontend() : Frontend("blif", "read BLIF file") { }
|
||||||
|
virtual void help()
|
||||||
|
{
|
||||||
|
// |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
|
||||||
|
log("\n");
|
||||||
|
log(" read_blif [filename]\n");
|
||||||
|
log("\n");
|
||||||
|
log("Load modules from a BLIF file into the current design.\n");
|
||||||
|
log("\n");
|
||||||
|
}
|
||||||
|
virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design)
|
||||||
|
{
|
||||||
|
log_header("Executing BLIF frontend.\n");
|
||||||
|
|
||||||
|
size_t argidx;
|
||||||
|
for (argidx = 1; argidx < args.size(); argidx++) {
|
||||||
|
std::string arg = args[argidx];
|
||||||
|
// if (arg == "-lib") {
|
||||||
|
// flag_lib = true;
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
extra_args(f, filename, args, argidx);
|
||||||
|
|
||||||
|
parse_blif(design, *f, "\\DFF");
|
||||||
|
}
|
||||||
|
} BlifFrontend;
|
||||||
|
|
||||||
YOSYS_NAMESPACE_END
|
YOSYS_NAMESPACE_END
|
||||||
|
|
||||||
|
|
|
@ -746,6 +746,8 @@ void run_frontend(std::string filename, std::string command, std::string *backen
|
||||||
command = "verilog";
|
command = "verilog";
|
||||||
else if (filename.size() > 2 && filename.substr(filename.size()-3) == ".sv")
|
else if (filename.size() > 2 && filename.substr(filename.size()-3) == ".sv")
|
||||||
command = "verilog -sv";
|
command = "verilog -sv";
|
||||||
|
else if (filename.size() > 4 && filename.substr(filename.size()-5) == ".blif")
|
||||||
|
command = "blif";
|
||||||
else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".il")
|
else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".il")
|
||||||
command = "ilang";
|
command = "ilang";
|
||||||
else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".ys")
|
else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".ys")
|
||||||
|
|
Loading…
Reference in New Issue