continue;
}
- if (!strcmp(cmd, ".gate"))
+ if (!strcmp(cmd, ".gate") || !strcmp(cmd, ".subckt"))
{
char *p = strtok(NULL, " \t\r\n");
if (p == NULL)
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
command = "verilog";
else if (filename.size() > 2 && filename.substr(filename.size()-3) == ".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")
command = "ilang";
else if (filename.size() > 3 && filename.substr(filename.size()-3) == ".ys")