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:
parent
8501342fc5
commit
cf60699884
7 changed files with 93 additions and 390 deletions
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue