ice40_opt bugfix
authorClifford Wolf <clifford@clifford.at>
Mon, 27 Apr 2015 09:36:13 +0000 (11:36 +0200)
committerClifford Wolf <clifford@clifford.at>
Mon, 27 Apr 2015 09:36:13 +0000 (11:36 +0200)
techlibs/ice40/ice40_opt.cc
techlibs/ice40/synth_ice40.cc

index 1b32ce448243df025f0e3901990265ac26de125f..990d29aaeb5536800c3ed432361a7884dbe5e7b4 100644 (file)
@@ -57,11 +57,9 @@ static void run_ice40_opts(Module *module)
 
                        if (count_zeros >= 2)
                                replacement_output = State::S0;
-
-                       if (count_ones >= 2)
+                       else if (count_ones >= 2)
                                replacement_output = State::S1;
-
-                       if (GetSize(non_const_inputs) == 1)
+                       else if (GetSize(non_const_inputs) == 1)
                                replacement_output = non_const_inputs;
 
                        if (GetSize(replacement_output)) {
index 769addf1f6ea1aac2fb77ead7907054e4cbc3b49..e23290319c382c7eb1e209a0f5cdb3ed4ee767c0 100644 (file)
@@ -88,7 +88,7 @@ struct SynthIce40Pass : public Pass {
                log("        opt -undriven -fine\n");
                log("        techmap -map +/techmap.v [-map +/ice40/arith_map.v]\n");
                log("        abc -dff     (only if -retime)\n");
-               log("        opt -fast\n");
+               log("        ice40_opt\n");
                log("\n");
                log("    map_ffs:\n");
                log("        dff2dffe -direct-match $_DFF_*\n");
@@ -96,7 +96,7 @@ struct SynthIce40Pass : public Pass {
                log("        opt_const -mux_undef\n");
                log("        simplemap\n");
                log("        ice40_ffssr\n");
-               log("        clean\n");
+               log("        ice40_opt -full\n");
                log("\n");
                log("    map_luts:\n");
                log("        abc -lut 4\n");