diff options
author | Claire Xenia Wolf <claire@clairexen.net> | 2021-12-09 22:24:58 +0100 |
---|---|---|
committer | Claire Xenia Wolf <claire@clairexen.net> | 2021-12-10 00:15:37 +0100 |
commit | ce08046f4439575f551449e00b502717459bee63 (patch) | |
tree | 15e24fbff4dd39b45ec5f953fcb677e030659488 /kernel/yosys.cc | |
parent | 0cbdb42dcd74090296aa3fe6bf11db1c288d9962 (diff) | |
download | yosys-ce08046f4439575f551449e00b502717459bee63.tar.gz yosys-ce08046f4439575f551449e00b502717459bee63.tar.bz2 yosys-ce08046f4439575f551449e00b502717459bee63.zip |
Added "yosys -r <topmodule>"
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Diffstat (limited to 'kernel/yosys.cc')
-rw-r--r-- | kernel/yosys.cc | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/kernel/yosys.cc b/kernel/yosys.cc index 4f7347d4c..102f9e737 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -956,7 +956,7 @@ static void handle_label(std::string &command, bool &from_to_active, const std:: } } -void run_frontend(std::string filename, std::string command, std::string *backend_command, std::string *from_to_label, RTLIL::Design *design) +bool run_frontend(std::string filename, std::string command, RTLIL::Design *design, std::string *from_to_label) { if (design == nullptr) design = yosys_design; @@ -1056,10 +1056,12 @@ void run_frontend(std::string filename, std::string command, std::string *backen if (filename != "-") fclose(f); - if (backend_command != NULL && *backend_command == "auto") - *backend_command = ""; + return true; + } - return; + if (command == "tcl") { + Pass::call(design, vector<string>({command, filename})); + return true; } if (filename == "-") { @@ -1068,20 +1070,15 @@ void run_frontend(std::string filename, std::string command, std::string *backen log("\n-- Parsing `%s' using frontend `%s' --\n", filename.c_str(), command.c_str()); } - if (command == "tcl") - Pass::call(design, vector<string>({command, filename})); - else if (command[0] == ' ') { + if (command[0] == ' ') { auto argv = split_tokens("read" + command); argv.push_back(filename); Pass::call(design, argv); } else Frontend::frontend_call(design, NULL, filename, command); - design->check(); -} -void run_frontend(std::string filename, std::string command, RTLIL::Design *design) -{ - run_frontend(filename, command, nullptr, nullptr, design); + design->check(); + return false; } void run_pass(std::string command, RTLIL::Design *design) @@ -1395,7 +1392,7 @@ struct ScriptCmdPass : public Pass { else if (args.size() == 2) run_frontend(args[1], "script", design); else if (args.size() == 3) - run_frontend(args[1], "script", NULL, &args[2], design); + run_frontend(args[1], "script", design, &args[2]); else extra_args(args, 2, design, false); } |