diff options
Diffstat (limited to 'techlibs/coolrunner2')
| -rw-r--r-- | techlibs/coolrunner2/coolrunner2_sop.cc | 26 | ||||
| -rw-r--r-- | techlibs/coolrunner2/synth_coolrunner2.cc | 12 | 
2 files changed, 16 insertions, 22 deletions
diff --git a/techlibs/coolrunner2/coolrunner2_sop.cc b/techlibs/coolrunner2/coolrunner2_sop.cc index 431e0a127..de0cbb29d 100644 --- a/techlibs/coolrunner2/coolrunner2_sop.cc +++ b/techlibs/coolrunner2/coolrunner2_sop.cc @@ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN  struct Coolrunner2SopPass : public Pass {  	Coolrunner2SopPass() : Pass("coolrunner2_sop", "break $sop cells into ANDTERM/ORTERM cells") { } -	virtual void help() +	void help() YS_OVERRIDE  	{  		log("\n");  		log("    coolrunner2_sop [options] [selection]\n"); @@ -33,7 +33,7 @@ struct Coolrunner2SopPass : public Pass {  		log("Break $sop cells into ANDTERM/ORTERM cells.\n");  		log("\n");  	} -	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) +	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE  	{  		log_header(design, "Executing COOLRUNNER2_SOP pass (break $sop cells into ANDTERM/ORTERM cells).\n");  		extra_args(args, 1, design); @@ -60,10 +60,8 @@ struct Coolrunner2SopPass : public Pass {  			dict<SigBit, pool<tuple<Cell*, std::string>>> special_pterms_inv;  			for (auto cell : module->selected_cells())  			{ -				if (cell->type == "\\FDCP" || cell->type == "\\FDCP_N" || cell->type == "\\FDDCP" || -					cell->type == "\\FTCP" || cell->type == "\\FTCP_N" || cell->type == "\\FTDCP" || -					cell->type == "\\FDCPE" || cell->type == "\\FDCPE_N" || cell->type == "\\FDDCPE" || -					cell->type == "\\LDCP" || cell->type == "\\LDCP_N") +				if (cell->type.in("\\FDCP", "\\FDCP_N", "\\FDDCP", "\\FTCP", "\\FTCP_N", "\\FTDCP", +							"\\FDCPE", "\\FDCPE_N", "\\FDDCPE", "\\LDCP", "\\LDCP_N"))  				{  					if (cell->hasPort("\\PRE"))  						special_pterms_no_inv[sigmap(cell->getPort("\\PRE")[0])].insert( @@ -257,10 +255,8 @@ struct Coolrunner2SopPass : public Pass {  			pool<SigBit> sig_fed_by_ff;  			for (auto cell : module->selected_cells())  			{ -				if (cell->type == "\\FDCP" || cell->type == "\\FDCP_N" || cell->type == "\\FDDCP" || -					cell->type == "\\LDCP" || cell->type == "\\LDCP_N" || -					cell->type == "\\FTCP" || cell->type == "\\FTCP_N" || cell->type == "\\FTDCP" || -					cell->type == "\\FDCPE" || cell->type == "\\FDCPE_N" || cell->type == "\\FDDCPE") +				if (cell->type.in("\\FDCP", "\\FDCP_N", "\\FDDCP", "\\LDCP", "\\LDCP_N", +							"\\FTCP", "\\FTCP_N", "\\FTDCP", "\\FDCPE", "\\FDCPE_N", "\\FDDCPE"))  				{  					auto output = sigmap(cell->getPort("\\Q")[0]);  					sig_fed_by_ff.insert(output); @@ -270,13 +266,11 @@ struct Coolrunner2SopPass : public Pass {  			// Look at all the FF inputs  			for (auto cell : module->selected_cells())  			{ -				if (cell->type == "\\FDCP" || cell->type == "\\FDCP_N" || cell->type == "\\FDDCP" || -					cell->type == "\\LDCP" || cell->type == "\\LDCP_N" || -					cell->type == "\\FTCP" || cell->type == "\\FTCP_N" || cell->type == "\\FTDCP" || -					cell->type == "\\FDCPE" || cell->type == "\\FDCPE_N" || cell->type == "\\FDDCPE") +				if (cell->type.in("\\FDCP", "\\FDCP_N", "\\FDDCP", "\\LDCP", "\\LDCP_N", +							"\\FTCP", "\\FTCP_N", "\\FTDCP", "\\FDCPE", "\\FDCPE_N", "\\FDDCPE"))  				{  					SigBit input; -					if (cell->type == "\\FTCP" || cell->type == "\\FTCP_N" || cell->type == "\\FTDCP") +					if (cell->type.in("\\FTCP", "\\FTCP_N", "\\FTDCP"))  						input = sigmap(cell->getPort("\\T")[0]);  					else  						input = sigmap(cell->getPort("\\D")[0]); @@ -300,7 +294,7 @@ struct Coolrunner2SopPass : public Pass {  						xor_cell->setPort("\\IN_PTC", and_to_xor_wire);  						xor_cell->setPort("\\OUT", xor_to_ff_wire); -						if (cell->type == "\\FTCP" || cell->type == "\\FTCP_N" || cell->type == "\\FTDCP") +						if (cell->type.in("\\FTCP", "\\FTCP_N", "\\FTDCP"))  							cell->setPort("\\T", xor_to_ff_wire);  						else  							cell->setPort("\\D", xor_to_ff_wire); diff --git a/techlibs/coolrunner2/synth_coolrunner2.cc b/techlibs/coolrunner2/synth_coolrunner2.cc index 2e94c3449..21bbcaef4 100644 --- a/techlibs/coolrunner2/synth_coolrunner2.cc +++ b/techlibs/coolrunner2/synth_coolrunner2.cc @@ -29,7 +29,7 @@ struct SynthCoolrunner2Pass : public ScriptPass  {  	SynthCoolrunner2Pass() : ScriptPass("synth_coolrunner2", "synthesis for Xilinx Coolrunner-II CPLDs") { } -	virtual void help() YS_OVERRIDE +	void help() YS_OVERRIDE  	{  		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|  		log("\n"); @@ -66,7 +66,7 @@ struct SynthCoolrunner2Pass : public ScriptPass  	string top_opt, json_file;  	bool flatten, retime; -	virtual void clear_flags() YS_OVERRIDE +	void clear_flags() YS_OVERRIDE  	{  		top_opt = "-auto-top";  		json_file = ""; @@ -74,7 +74,7 @@ struct SynthCoolrunner2Pass : public ScriptPass  		retime = false;  	} -	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE +	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE  	{  		string run_from, run_to;  		clear_flags(); @@ -111,7 +111,7 @@ struct SynthCoolrunner2Pass : public ScriptPass  		extra_args(args, argidx, design);  		if (!design->full_selection()) -			log_cmd_error("This comannd only operates on fully selected designs!\n"); +			log_cmd_error("This command only operates on fully selected designs!\n");  		log_header(design, "Executing SYNTH_COOLRUNNER2 pass.\n");  		log_push(); @@ -121,7 +121,7 @@ struct SynthCoolrunner2Pass : public ScriptPass  		log_pop();  	} -	virtual void script() YS_OVERRIDE +	void script() YS_OVERRIDE  	{  		if (check_label("begin"))  		{ @@ -129,7 +129,7 @@ struct SynthCoolrunner2Pass : public ScriptPass  			run(stringf("hierarchy -check %s", help_mode ? "-top <top>" : top_opt.c_str()));  		} -		if (check_label("flatten", "(unless -noflatten)") && flatten) +		if (flatten && check_label("flatten", "(unless -noflatten)"))  		{  			run("proc");  			run("flatten");  | 
