summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2015-02-15 13:00:00 +0100
committerClifford Wolf <clifford@clifford.at>2015-02-15 13:00:00 +0100
commit881dcd8af988664b92a85daa5d82e90b1df29b51 (patch)
tree00a92d296a345e38a2d7387f992e14a6c90c39e2
parent40f021e1367af8cc8cd2ea133ba4cb0d2f342cbd (diff)
Added final checks to "synth" and "synth_xilinx"
-rw-r--r--techlibs/common/synth.cc21
-rw-r--r--techlibs/xilinx/synth_xilinx.cc10
2 files changed, 24 insertions, 7 deletions
diff --git a/techlibs/common/synth.cc b/techlibs/common/synth.cc
index a50db53e..56ab6eaf 100644
--- a/techlibs/common/synth.cc
+++ b/techlibs/common/synth.cc
@@ -90,12 +90,14 @@ struct SynthPass : public Pass {
log(" techmap\n");
log(" opt -fast\n");
#ifdef YOSYS_ENABLE_ABC
- log("\n");
- log(" abc:\n");
log(" abc -fast\n");
log(" opt -fast\n");
#endif
log("\n");
+ log(" check:\n");
+ log(" hierarchy -check\n");
+ log(" check\n");
+ log("\n");
}
virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
{
@@ -172,15 +174,20 @@ struct SynthPass : public Pass {
Pass::call(design, "opt -full");
Pass::call(design, "techmap");
Pass::call(design, "opt -fast");
+
+ if (!noabc) {
+ #ifdef YOSYS_ENABLE_ABC
+ Pass::call(design, "abc -fast");
+ Pass::call(design, "opt -fast");
+ #endif
+ }
}
- #ifdef YOSYS_ENABLE_ABC
- if (check_label(active, run_from, run_to, "abc") && !noabc)
+ if (check_label(active, run_from, run_to, "check"))
{
- Pass::call(design, "abc -fast");
- Pass::call(design, "opt -fast");
+ Pass::call(design, "hierarchy -check");
+ Pass::call(design, "check");
}
- #endif
log_pop();
}
diff --git a/techlibs/xilinx/synth_xilinx.cc b/techlibs/xilinx/synth_xilinx.cc
index 7812fa29..02207593 100644
--- a/techlibs/xilinx/synth_xilinx.cc
+++ b/techlibs/xilinx/synth_xilinx.cc
@@ -98,6 +98,10 @@ struct SynthXilinxPass : public Pass {
log(" techmap -map +/xilinx/cells_map.v\n");
log(" clean\n");
log("\n");
+ log(" check:\n");
+ log(" hierarchy -check\n");
+ log(" check -noinit\n");
+ log("\n");
log(" edif:\n");
log(" write_edif synth.edif\n");
log("\n");
@@ -195,6 +199,12 @@ struct SynthXilinxPass : public Pass {
Pass::call(design, "clean");
}
+ if (check_label(active, run_from, run_to, "check"))
+ {
+ Pass::call(design, "hierarchy -check");
+ Pass::call(design, "check -noinit");
+ }
+
if (check_label(active, run_from, run_to, "edif"))
{
if (!edif_file.empty())