diff options
| author | Jim Lawson <ucbjrl@berkeley.edu> | 2018-08-22 08:42:34 -0700 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-22 08:42:34 -0700 | 
| commit | 2c0601eb6f2c5ed0d376ed880efda48a2aeeb9ef (patch) | |
| tree | 02b9412c9249cce3714972c8385d66f8093bfc17 /techlibs/ice40 | |
| parent | 8b92ddb9d2635c30636b17ff3d24bc09a44b8551 (diff) | |
| parent | 408077769ff022f78f10ec1ffb60926361f8dc9f (diff) | |
| download | yosys-2c0601eb6f2c5ed0d376ed880efda48a2aeeb9ef.tar.gz yosys-2c0601eb6f2c5ed0d376ed880efda48a2aeeb9ef.tar.bz2 yosys-2c0601eb6f2c5ed0d376ed880efda48a2aeeb9ef.zip | |
Merge pull request #1 from YosysHQ/master
merge with YosysHQ master
Diffstat (limited to 'techlibs/ice40')
| -rw-r--r-- | techlibs/ice40/cells_sim.v | 8 | ||||
| -rw-r--r-- | techlibs/ice40/ice40_ffinit.cc | 4 | ||||
| -rw-r--r-- | techlibs/ice40/ice40_ffssr.cc | 4 | ||||
| -rw-r--r-- | techlibs/ice40/ice40_opt.cc | 4 | ||||
| -rw-r--r-- | techlibs/ice40/synth_ice40.cc | 8 | 
5 files changed, 16 insertions, 12 deletions
| diff --git a/techlibs/ice40/cells_sim.v b/techlibs/ice40/cells_sim.v index 45a02111f..9f73aeb07 100644 --- a/techlibs/ice40/cells_sim.v +++ b/techlibs/ice40/cells_sim.v @@ -657,7 +657,12 @@ module ICESTORM_LC (  	parameter [0:0] SET_NORESET  = 0;  	parameter [0:0] ASYNC_SR     = 0; -	assign COUT = CARRY_ENABLE ? (I1 && I2) || ((I1 || I2) && CIN) : 1'bx; +	parameter [0:0] CIN_CONST    = 0; +	parameter [0:0] CIN_SET      = 0; + +	wire mux_cin = CIN_CONST ? CIN_SET : CIN; + +	assign COUT = CARRY_ENABLE ? (I1 && I2) || ((I1 || I2) && mux_cin) : 1'bx;  	wire [7:0] lut_s3 = I3 ? LUT_INIT[15:8] : LUT_INIT[7:0];  	wire [3:0] lut_s2 = I2 ?   lut_s3[ 7:4] :   lut_s3[3:0]; @@ -1226,4 +1231,3 @@ module SB_IO_OD (  	endgenerate  `endif  endmodule - diff --git a/techlibs/ice40/ice40_ffinit.cc b/techlibs/ice40/ice40_ffinit.cc index c914b20e8..3089d8932 100644 --- a/techlibs/ice40/ice40_ffinit.cc +++ b/techlibs/ice40/ice40_ffinit.cc @@ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN  struct Ice40FfinitPass : public Pass {  	Ice40FfinitPass() : Pass("ice40_ffinit", "iCE40: handle FF init values") { } -	virtual void help() +	void help() YS_OVERRIDE  	{  		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|  		log("\n"); @@ -35,7 +35,7 @@ struct Ice40FfinitPass : public Pass {  		log("nonzero init values.\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 ICE40_FFINIT pass (implement FF init values).\n"); diff --git a/techlibs/ice40/ice40_ffssr.cc b/techlibs/ice40/ice40_ffssr.cc index 9afbc0fce..668df09dd 100644 --- a/techlibs/ice40/ice40_ffssr.cc +++ b/techlibs/ice40/ice40_ffssr.cc @@ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN  struct Ice40FfssrPass : public Pass {  	Ice40FfssrPass() : Pass("ice40_ffssr", "iCE40: merge synchronous set/reset into FF cells") { } -	virtual void help() +	void help() YS_OVERRIDE  	{  		log("\n");  		log("    ice40_ffssr [options] [selection]\n"); @@ -33,7 +33,7 @@ struct Ice40FfssrPass : public Pass {  		log("Merge synchronous set/reset $_MUX_ cells into iCE40 FFs.\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 ICE40_FFSSR pass (merge synchronous set/reset into FF cells).\n"); diff --git a/techlibs/ice40/ice40_opt.cc b/techlibs/ice40/ice40_opt.cc index 7af60f297..162740059 100644 --- a/techlibs/ice40/ice40_opt.cc +++ b/techlibs/ice40/ice40_opt.cc @@ -136,7 +136,7 @@ static void run_ice40_opts(Module *module, bool unlut_mode)  struct Ice40OptPass : public Pass {  	Ice40OptPass() : Pass("ice40_opt", "iCE40: perform simple optimizations") { } -	virtual void help() +	void help() YS_OVERRIDE  	{  		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|  		log("\n"); @@ -156,7 +156,7 @@ struct Ice40OptPass : public Pass {  		log("mapped SB_LUT4 cells back to logic.\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  	{  		string opt_expr_args = "-mux_undef -undriven";  		bool unlut_mode = false; diff --git a/techlibs/ice40/synth_ice40.cc b/techlibs/ice40/synth_ice40.cc index abd890a56..b0687e5e3 100644 --- a/techlibs/ice40/synth_ice40.cc +++ b/techlibs/ice40/synth_ice40.cc @@ -29,7 +29,7 @@ struct SynthIce40Pass : public ScriptPass  {  	SynthIce40Pass() : ScriptPass("synth_ice40", "synthesis for iCE40 FPGAs") { } -	virtual void help() YS_OVERRIDE +	void help() YS_OVERRIDE  	{  		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|  		log("\n"); @@ -88,7 +88,7 @@ struct SynthIce40Pass : public ScriptPass  	string top_opt, blif_file, edif_file, json_file;  	bool nocarry, nodffe, nobram, flatten, retime, abc2, vpr; -	virtual void clear_flags() YS_OVERRIDE +	void clear_flags() YS_OVERRIDE  	{  		top_opt = "-auto-top";  		blif_file = ""; @@ -103,7 +103,7 @@ struct SynthIce40Pass : public ScriptPass  		vpr = 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(); @@ -182,7 +182,7 @@ struct SynthIce40Pass : public ScriptPass  		log_pop();  	} -	virtual void script() YS_OVERRIDE +	void script() YS_OVERRIDE  	{  		if (check_label("begin"))  		{ | 
