diff options
Diffstat (limited to 'techlibs/ecp5')
| -rw-r--r-- | techlibs/ecp5/Makefile.inc | 4 | ||||
| -rw-r--r-- | techlibs/ecp5/lutram.txt (renamed from techlibs/ecp5/dram.txt) | 0 | ||||
| -rw-r--r-- | techlibs/ecp5/lutrams_map.v (renamed from techlibs/ecp5/drams_map.v) | 0 | ||||
| -rw-r--r-- | techlibs/ecp5/synth_ecp5.cc | 30 | 
4 files changed, 19 insertions, 15 deletions
diff --git a/techlibs/ecp5/Makefile.inc b/techlibs/ecp5/Makefile.inc index ff39ba4fe..73e18112f 100644 --- a/techlibs/ecp5/Makefile.inc +++ b/techlibs/ecp5/Makefile.inc @@ -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_sim.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/dram.txt)) +$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/lutrams_map.v)) +$(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/bram.txt))  $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/arith_map.v)) diff --git a/techlibs/ecp5/dram.txt b/techlibs/ecp5/lutram.txt index b94357429..b94357429 100644 --- a/techlibs/ecp5/dram.txt +++ b/techlibs/ecp5/lutram.txt diff --git a/techlibs/ecp5/drams_map.v b/techlibs/ecp5/lutrams_map.v index 3b3de831f..3b3de831f 100644 --- a/techlibs/ecp5/drams_map.v +++ b/techlibs/ecp5/lutrams_map.v diff --git a/techlibs/ecp5/synth_ecp5.cc b/techlibs/ecp5/synth_ecp5.cc index 9f409ca51..143d1f95c 100644 --- a/techlibs/ecp5/synth_ecp5.cc +++ b/techlibs/ecp5/synth_ecp5.cc @@ -71,10 +71,10 @@ struct SynthEcp5Pass : public ScriptPass  		log("        do not use flipflops with CE in output netlist\n");  		log("\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("    -nodram\n"); -		log("        do not use distributed RAM cells in output netlist\n"); +		log("    -nolutram\n"); +		log("        do not use LUT RAM cells in output netlist\n");  		log("\n");  		log("    -nowidelut\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; -	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  	{ @@ -107,7 +107,7 @@ struct SynthEcp5Pass : public ScriptPass  		noccu2 = false;  		nodffe = false;  		nobram = false; -		nodram = false; +		nolutram = false;  		nowidelut = false;  		flatten = true;  		retime = false; @@ -172,11 +172,11 @@ struct SynthEcp5Pass : public ScriptPass  				nobram = true;  				continue;  			} -			if (args[argidx] == "-nodram") { -				nodram = true; +			if (args[argidx] == "-nolutram" || /*deprecated alias*/ args[argidx] == "-nodram") { +				nolutram = true;  				continue;  			} -			if (args[argidx] == "-nowidelut" || args[argidx] == "-nomux") { +			if (args[argidx] == "-nowidelut" || /*deprecated alias*/ args[argidx] == "-nomux") {  				nowidelut = true;  				continue;  			} @@ -231,23 +231,27 @@ struct SynthEcp5Pass : public ScriptPass  			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("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("techmap -map +/ecp5/drams_map.v"); +			run("memory_bram -rules +/ecp5/lutram.txt"); +			run("techmap -map +/ecp5/lutrams_map.v");  		} -		if (check_label("fine")) +		if (check_label("map_ffram"))  		{  			run("opt -fast -mux_undef -undriven -fine");  			run("memory_map");  			run("opt -undriven -fine"); +		} + +		if (check_label("map_gates")) +		{  			if (noccu2)  				run("techmap");  			else  | 
