3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-10-03 06:29:34 +00:00

synth_ice40: Use opt_dff.

The main part is converting ice40_dsp to recognize the new FF types
created in opt_dff instead of trying to recognize the mux patterns on
its own.

The fsm call has been moved upwards because the passes cannot deal with
$dffe/$sdff*, and other optimizations don't help it much anyway.
This commit is contained in:
Marcelina Kościelnicka 2020-07-22 13:34:11 +02:00
parent 8501342fc5
commit cf60699884
7 changed files with 93 additions and 390 deletions

View file

@ -293,6 +293,10 @@ struct SynthIce40Pass : public ScriptPass
run("opt_clean");
run("check");
run("opt");
run("fsm");
run("opt");
run("opt_dff");
run("opt");
run("wreduce");
run("peepopt");
run("opt_clean");
@ -316,8 +320,6 @@ struct SynthIce40Pass : public ScriptPass
}
run("alumacc");
run("opt");
run("fsm");
run("opt -fast");
run("memory -nomap");
run("opt_clean");
}
@ -354,11 +356,6 @@ struct SynthIce40Pass : public ScriptPass
if (check_label("map_ffs"))
{
if (!nodffe)
run("dff2dffe -direct-match $_DFF_*");
if (min_ce_use >= 0) {
run("opt_merge");
}
if (nodffe)
run(stringf("dfflegalize -cell $_DFF_?_ 0 -cell $_DFF_?P?_ 0 -cell $_SDFF_?P?_ 0 -cell $_DLATCH_?_ x"));
else
@ -366,7 +363,6 @@ struct SynthIce40Pass : public ScriptPass
run("techmap -map +/ice40/ff_map.v");
run("opt_expr -mux_undef");
run("simplemap");
run("ice40_ffssr");
run("ice40_opt -full");
}