diff options
author | Sergey Kvachonok <ravenexp@gmail.com> | 2016-03-19 18:36:18 +0300 |
---|---|---|
committer | Sergey Kvachonok <ravenexp@gmail.com> | 2016-03-19 18:36:18 +0300 |
commit | 2656b2c55a139bc158cb67b18dd201bd0f4cf0c6 (patch) | |
tree | e9dfd0f7049cfc7be7593a3a12a4cf2c06d5eb75 /passes/techmap | |
parent | e5d42ebb4d921aa9b9ad952b063f6ca2e3ffd9db (diff) | |
download | yosys-2656b2c55a139bc158cb67b18dd201bd0f4cf0c6.tar.gz yosys-2656b2c55a139bc158cb67b18dd201bd0f4cf0c6.tar.bz2 yosys-2656b2c55a139bc158cb67b18dd201bd0f4cf0c6.zip |
Support calling out to an external ABC.
$ make ABCEXTERNAL=my-abc && make ABCEXTERNAL=my-abc install
configures yosys to use an external ABC executable instead of
building and installing the in-tree ABC copy (yosys-abc).
Diffstat (limited to 'passes/techmap')
-rw-r--r-- | passes/techmap/abc.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/passes/techmap/abc.cc b/passes/techmap/abc.cc index defb449f8..0c72781f2 100644 --- a/passes/techmap/abc.cc +++ b/passes/techmap/abc.cc @@ -29,6 +29,10 @@ // Kahn, Arthur B. (1962), "Topological sorting of large networks", Communications of the ACM 5 (11): 558-562, doi:10.1145/368996.369025 // http://en.wikipedia.org/wiki/Topological_sorting +#ifndef YOSYS_ABC_EXE +#define YOSYS_ABC_EXE "yosys-abc" // uses in-tree ABC by default +#endif + #define ABC_COMMAND_LIB "strash; scorr; ifraig; retime {D}; strash; dch -f; map {D}" #define ABC_COMMAND_CTR "strash; scorr; ifraig; retime {D}; strash; dch -f; map {D}; buffer; upsize {D}; dnsize {D}; stime -p" #define ABC_COMMAND_LUT "strash; scorr; ifraig; retime; strash; dch -f; if; mfs" @@ -1173,7 +1177,7 @@ struct AbcPass : public Pass { log("library to a target architecture.\n"); log("\n"); log(" -exe <command>\n"); - log(" use the specified command name instead of \"yosys-abc\" to execute ABC.\n"); + log(" use the specified command name instead of \"" YOSYS_ABC_EXE "\" to execute ABC.\n"); log(" This can e.g. be used to call a specific version of ABC or a wrapper.\n"); log("\n"); log(" -script <file>\n"); @@ -1298,7 +1302,7 @@ struct AbcPass : public Pass { log_header("Executing ABC pass (technology mapping using ABC).\n"); log_push(); - std::string exe_file = proc_self_dirname() + "yosys-abc"; + std::string exe_file = proc_self_dirname() + YOSYS_ABC_EXE; std::string script_file, liberty_file, constr_file, clk_str, delay_target; bool fast_mode = false, dff_mode = false, keepff = false, cleanup = true; bool show_tempdir = false; @@ -1311,8 +1315,8 @@ struct AbcPass : public Pass { enabled_gates.clear(); #ifdef _WIN32 - if (!check_file_exists(exe_file + ".exe") && check_file_exists(proc_self_dirname() + "..\\yosys-abc.exe")) - exe_file = proc_self_dirname() + "..\\yosys-abc"; + if (!check_file_exists(exe_file + ".exe") && check_file_exists(proc_self_dirname() + "..\\" YOSYS_ABC_EXE ".exe")) + exe_file = proc_self_dirname() + "..\\" YOSYS_ABC_EXE; #endif size_t argidx; |