Merge pull request #1184 from whitequark/synth-better-labels

synth_{ice40,ecp5}: more sensible pass label naming
This commit is contained in:
Clifford Wolf 2019-07-18 15:34:28 +02:00 committed by GitHub
commit e66e8fb59d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 17 deletions

View File

@ -4,8 +4,8 @@ OBJS += techlibs/ecp5/synth_ecp5.o techlibs/ecp5/ecp5_ffinit.o
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/cells_map.v)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/cells_map.v))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/cells_sim.v)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/cells_sim.v))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/cells_bb.v)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/cells_bb.v))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/drams_map.v)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/lutrams_map.v))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/dram.txt)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/lutram.txt))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/brams_map.v)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/brams_map.v))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/bram.txt)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/bram.txt))
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/arith_map.v)) $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/arith_map.v))

View File

@ -71,10 +71,10 @@ struct SynthEcp5Pass : public ScriptPass
log(" do not use flipflops with CE in output netlist\n"); log(" do not use flipflops with CE in output netlist\n");
log("\n"); log("\n");
log(" -nobram\n"); log(" -nobram\n");
log(" do not use BRAM cells in output netlist\n"); log(" do not use block RAM cells in output netlist\n");
log("\n"); log("\n");
log(" -nodram\n"); log(" -nolutram\n");
log(" do not use distributed RAM cells in output netlist\n"); log(" do not use LUT RAM cells in output netlist\n");
log("\n"); log("\n");
log(" -nowidelut\n"); log(" -nowidelut\n");
log(" do not use PFU muxes to implement LUTs larger than LUT4s\n"); log(" do not use PFU muxes to implement LUTs larger than LUT4s\n");
@ -96,7 +96,7 @@ struct SynthEcp5Pass : public ScriptPass
} }
string top_opt, blif_file, edif_file, json_file; string top_opt, blif_file, edif_file, json_file;
bool noccu2, nodffe, nobram, nodram, nowidelut, flatten, retime, abc2, abc9, vpr; bool noccu2, nodffe, nobram, nolutram, nowidelut, flatten, retime, abc2, abc9, vpr;
void clear_flags() YS_OVERRIDE void clear_flags() YS_OVERRIDE
{ {
@ -107,7 +107,7 @@ struct SynthEcp5Pass : public ScriptPass
noccu2 = false; noccu2 = false;
nodffe = false; nodffe = false;
nobram = false; nobram = false;
nodram = false; nolutram = false;
nowidelut = false; nowidelut = false;
flatten = true; flatten = true;
retime = false; retime = false;
@ -172,11 +172,11 @@ struct SynthEcp5Pass : public ScriptPass
nobram = true; nobram = true;
continue; continue;
} }
if (args[argidx] == "-nodram") { if (args[argidx] == "-nolutram" || /*deprecated alias*/ args[argidx] == "-nodram") {
nodram = true; nolutram = true;
continue; continue;
} }
if (args[argidx] == "-nowidelut" || args[argidx] == "-nomux") { if (args[argidx] == "-nowidelut" || /*deprecated alias*/ args[argidx] == "-nomux") {
nowidelut = true; nowidelut = true;
continue; continue;
} }
@ -231,23 +231,27 @@ struct SynthEcp5Pass : public ScriptPass
run("synth -run coarse"); run("synth -run coarse");
} }
if (!nobram && check_label("bram", "(skip if -nobram)")) if (!nobram && check_label("map_bram", "(skip if -nobram)"))
{ {
run("memory_bram -rules +/ecp5/bram.txt"); run("memory_bram -rules +/ecp5/bram.txt");
run("techmap -map +/ecp5/brams_map.v"); run("techmap -map +/ecp5/brams_map.v");
} }
if (!nodram && check_label("dram", "(skip if -nodram)")) if (!nolutram && check_label("map_lutram", "(skip if -nolutram)"))
{ {
run("memory_bram -rules +/ecp5/dram.txt"); run("memory_bram -rules +/ecp5/lutram.txt");
run("techmap -map +/ecp5/drams_map.v"); run("techmap -map +/ecp5/lutrams_map.v");
} }
if (check_label("fine")) if (check_label("map_ffram"))
{ {
run("opt -fast -mux_undef -undriven -fine"); run("opt -fast -mux_undef -undriven -fine");
run("memory_map"); run("memory_map");
run("opt -undriven -fine"); run("opt -undriven -fine");
}
if (check_label("map_gates"))
{
if (noccu2) if (noccu2)
run("techmap"); run("techmap");
else else

View File

@ -275,14 +275,14 @@ struct SynthIce40Pass : public ScriptPass
run("opt_clean"); run("opt_clean");
} }
if (!nobram && check_label("bram", "(skip if -nobram)")) if (!nobram && check_label("map_bram", "(skip if -nobram)"))
{ {
run("memory_bram -rules +/ice40/brams.txt"); run("memory_bram -rules +/ice40/brams.txt");
run("techmap -map +/ice40/brams_map.v"); run("techmap -map +/ice40/brams_map.v");
run("ice40_braminit"); run("ice40_braminit");
} }
if (check_label("map")) if (check_label("map_ffram"))
{ {
run("opt -fast -mux_undef -undriven -fine"); run("opt -fast -mux_undef -undriven -fine");
run("memory_map"); run("memory_map");