xilinx: Rework labels for faster Verilator testing
authorDavid Shah <dave@ds0.me>
Tue, 13 Aug 2019 09:29:42 +0000 (10:29 +0100)
committerDavid Shah <dave@ds0.me>
Tue, 13 Aug 2019 09:29:42 +0000 (10:29 +0100)
Signed-off-by: David Shah <dave@ds0.me>
techlibs/xilinx/synth_xilinx.cc

index 265cee6d6826a768d84349a7d33584f0ba176dc1..546d673377a76ddeed7c0db0fb0656c48ae498f0 100644 (file)
@@ -255,7 +255,7 @@ struct SynthXilinxPass : public ScriptPass
                        run(stringf("hierarchy -check %s", top_opt.c_str()));
                }
 
-               if (check_label("coarse")) {
+               if (check_label("prepare")) {
                        run("proc");
                        if (flatten || help_mode)
                                run("flatten", "(with '-flatten')");
@@ -283,7 +283,9 @@ struct SynthXilinxPass : public ScriptPass
                        }
 
                        run("techmap -map +/cmp2lut.v -D LUT_WIDTH=6");
+               }
 
+               if (check_label("dsp")) {
                        if (!nodsp || help_mode) {
                                // NB: Xilinx multipliers are signed only
                                run("techmap -map +/mul2dsp.v -map +/xilinx/dsp_map.v -D DSP_A_MAXWIDTH=25 -D DSP_B_MAXWIDTH=18 -D DSP_SIGNEDONLY=1 -D DSP_NAME=$__MUL25X18", "(skip if '-nodsp')");
@@ -292,7 +294,9 @@ struct SynthXilinxPass : public ScriptPass
                                run("xilinx_dsp", "                     (skip if '-nodsp')");
                                run("chtype -set $mul t:$__soft_mul","  (skip if '-nodsp')");
                        }
+               }
 
+               if (check_label("coarse")) {
                        run("alumacc");
                        run("share");
                        run("opt");