mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into xaig_dff
This commit is contained in:
		
						commit
						bbc0e06af3
					
				
					 8 changed files with 33 additions and 184 deletions
				
			
		| 
						 | 
				
			
			@ -137,7 +137,7 @@ XC6V_CELLS = [
 | 
			
		|||
    Cell('SYSMON'),
 | 
			
		||||
 | 
			
		||||
    # Arithmetic functions.
 | 
			
		||||
    Cell('DSP48E1', port_attrs={'CLK': ['clkbuf_sink']}),
 | 
			
		||||
    #Cell('DSP48E1', port_attrs={'CLK': ['clkbuf_sink']}),
 | 
			
		||||
 | 
			
		||||
    # Clock components.
 | 
			
		||||
    # Cell('BUFG', port_attrs={'O': ['clkbuf_driver']}),
 | 
			
		||||
| 
						 | 
				
			
			@ -264,7 +264,7 @@ XC7_CELLS = [
 | 
			
		|||
    Cell('XADC'),
 | 
			
		||||
 | 
			
		||||
    # Arithmetic functions.
 | 
			
		||||
    Cell('DSP48E1', port_attrs={'CLK': ['clkbuf_sink']}),
 | 
			
		||||
    #Cell('DSP48E1', port_attrs={'CLK': ['clkbuf_sink']}),
 | 
			
		||||
 | 
			
		||||
    # Clock components.
 | 
			
		||||
    # Cell('BUFG', port_attrs={'O': ['clkbuf_driver']}),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -478,13 +478,17 @@ struct SynthXilinxPass : public ScriptPass
 | 
			
		|||
			else if (abc9) {
 | 
			
		||||
				if (family != "xc7")
 | 
			
		||||
					log_warning("'synth_xilinx -abc9' not currently supported for the '%s' family, "
 | 
			
		||||
                            "will use timing for 'xc7' instead.\n", family.c_str());
 | 
			
		||||
							"will use timing for 'xc7' instead.\n", family.c_str());
 | 
			
		||||
				run("techmap -map +/xilinx/abc9_map.v -max_iter 1");
 | 
			
		||||
				run("read_verilog -icells -lib +/xilinx/abc9_model.v");
 | 
			
		||||
				std::string abc9_opts = " -box +/xilinx/abc_xc7.box";
 | 
			
		||||
				abc9_opts += stringf(" -W %d", XC7_WIRE_DELAY);
 | 
			
		||||
				abc9_opts += " -nomfs";
 | 
			
		||||
				if (nowidelut)
 | 
			
		||||
					run("abc9 -lut +/xilinx/abc9_xc7_nowide.lut -box +/xilinx/abc9_xc7.box -W " + std::to_string(XC7_WIRE_DELAY));
 | 
			
		||||
					abc9_opts += " -lut +/xilinx/abc_xc7_nowide.lut";
 | 
			
		||||
				else
 | 
			
		||||
					run("abc9 -lut +/xilinx/abc9_xc7.lut -box +/xilinx/abc9_xc7.box -W " + std::to_string(XC7_WIRE_DELAY));
 | 
			
		||||
					abc9_opts += " -lut +/xilinx/abc_xc7.lut";
 | 
			
		||||
				run("abc9" + abc9_opts);
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				if (nowidelut)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -647,94 +647,6 @@ module SYSMON (...);
 | 
			
		|||
    input [6:0] DADDR;
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
module DSP48E1 (...);
 | 
			
		||||
    parameter integer ACASCREG = 1;
 | 
			
		||||
    parameter integer ADREG = 1;
 | 
			
		||||
    parameter integer ALUMODEREG = 1;
 | 
			
		||||
    parameter integer AREG = 1;
 | 
			
		||||
    parameter AUTORESET_PATDET = "NO_RESET";
 | 
			
		||||
    parameter A_INPUT = "DIRECT";
 | 
			
		||||
    parameter integer BCASCREG = 1;
 | 
			
		||||
    parameter integer BREG = 1;
 | 
			
		||||
    parameter B_INPUT = "DIRECT";
 | 
			
		||||
    parameter integer CARRYINREG = 1;
 | 
			
		||||
    parameter integer CARRYINSELREG = 1;
 | 
			
		||||
    parameter integer CREG = 1;
 | 
			
		||||
    parameter integer DREG = 1;
 | 
			
		||||
    parameter integer INMODEREG = 1;
 | 
			
		||||
    parameter integer MREG = 1;
 | 
			
		||||
    parameter integer OPMODEREG = 1;
 | 
			
		||||
    parameter integer PREG = 1;
 | 
			
		||||
    parameter SEL_MASK = "MASK";
 | 
			
		||||
    parameter SEL_PATTERN = "PATTERN";
 | 
			
		||||
    parameter USE_DPORT = "FALSE";
 | 
			
		||||
    parameter USE_MULT = "MULTIPLY";
 | 
			
		||||
    parameter USE_PATTERN_DETECT = "NO_PATDET";
 | 
			
		||||
    parameter USE_SIMD = "ONE48";
 | 
			
		||||
    parameter [47:0] MASK = 48'h3FFFFFFFFFFF;
 | 
			
		||||
    parameter [47:0] PATTERN = 48'h000000000000;
 | 
			
		||||
    parameter [3:0] IS_ALUMODE_INVERTED = 4'b0;
 | 
			
		||||
    parameter [0:0] IS_CARRYIN_INVERTED = 1'b0;
 | 
			
		||||
    parameter [0:0] IS_CLK_INVERTED = 1'b0;
 | 
			
		||||
    parameter [4:0] IS_INMODE_INVERTED = 5'b0;
 | 
			
		||||
    parameter [6:0] IS_OPMODE_INVERTED = 7'b0;
 | 
			
		||||
    output [29:0] ACOUT;
 | 
			
		||||
    output [17:0] BCOUT;
 | 
			
		||||
    output CARRYCASCOUT;
 | 
			
		||||
    output [3:0] CARRYOUT;
 | 
			
		||||
    output MULTSIGNOUT;
 | 
			
		||||
    output OVERFLOW;
 | 
			
		||||
    output [47:0] P;
 | 
			
		||||
    output PATTERNBDETECT;
 | 
			
		||||
    output PATTERNDETECT;
 | 
			
		||||
    output [47:0] PCOUT;
 | 
			
		||||
    output UNDERFLOW;
 | 
			
		||||
    input [29:0] A;
 | 
			
		||||
    input [29:0] ACIN;
 | 
			
		||||
    (* invertible_pin = "IS_ALUMODE_INVERTED" *)
 | 
			
		||||
    input [3:0] ALUMODE;
 | 
			
		||||
    input [17:0] B;
 | 
			
		||||
    input [17:0] BCIN;
 | 
			
		||||
    input [47:0] C;
 | 
			
		||||
    input CARRYCASCIN;
 | 
			
		||||
    (* invertible_pin = "IS_CARRYIN_INVERTED" *)
 | 
			
		||||
    input CARRYIN;
 | 
			
		||||
    input [2:0] CARRYINSEL;
 | 
			
		||||
    input CEA1;
 | 
			
		||||
    input CEA2;
 | 
			
		||||
    input CEAD;
 | 
			
		||||
    input CEALUMODE;
 | 
			
		||||
    input CEB1;
 | 
			
		||||
    input CEB2;
 | 
			
		||||
    input CEC;
 | 
			
		||||
    input CECARRYIN;
 | 
			
		||||
    input CECTRL;
 | 
			
		||||
    input CED;
 | 
			
		||||
    input CEINMODE;
 | 
			
		||||
    input CEM;
 | 
			
		||||
    input CEP;
 | 
			
		||||
    (* clkbuf_sink *)
 | 
			
		||||
    (* invertible_pin = "IS_CLK_INVERTED" *)
 | 
			
		||||
    input CLK;
 | 
			
		||||
    input [24:0] D;
 | 
			
		||||
    (* invertible_pin = "IS_INMODE_INVERTED" *)
 | 
			
		||||
    input [4:0] INMODE;
 | 
			
		||||
    input MULTSIGNIN;
 | 
			
		||||
    (* invertible_pin = "IS_OPMODE_INVERTED" *)
 | 
			
		||||
    input [6:0] OPMODE;
 | 
			
		||||
    input [47:0] PCIN;
 | 
			
		||||
    input RSTA;
 | 
			
		||||
    input RSTALLCARRYIN;
 | 
			
		||||
    input RSTALUMODE;
 | 
			
		||||
    input RSTB;
 | 
			
		||||
    input RSTC;
 | 
			
		||||
    input RSTCTRL;
 | 
			
		||||
    input RSTD;
 | 
			
		||||
    input RSTINMODE;
 | 
			
		||||
    input RSTM;
 | 
			
		||||
    input RSTP;
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
module BUFGCE (...);
 | 
			
		||||
    parameter CE_TYPE = "SYNC";
 | 
			
		||||
    parameter [0:0] IS_CE_INVERTED = 1'b0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3376,94 +3376,6 @@ module XADC (...);
 | 
			
		|||
    input [6:0] DADDR;
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
module DSP48E1 (...);
 | 
			
		||||
    parameter integer ACASCREG = 1;
 | 
			
		||||
    parameter integer ADREG = 1;
 | 
			
		||||
    parameter integer ALUMODEREG = 1;
 | 
			
		||||
    parameter integer AREG = 1;
 | 
			
		||||
    parameter AUTORESET_PATDET = "NO_RESET";
 | 
			
		||||
    parameter A_INPUT = "DIRECT";
 | 
			
		||||
    parameter integer BCASCREG = 1;
 | 
			
		||||
    parameter integer BREG = 1;
 | 
			
		||||
    parameter B_INPUT = "DIRECT";
 | 
			
		||||
    parameter integer CARRYINREG = 1;
 | 
			
		||||
    parameter integer CARRYINSELREG = 1;
 | 
			
		||||
    parameter integer CREG = 1;
 | 
			
		||||
    parameter integer DREG = 1;
 | 
			
		||||
    parameter integer INMODEREG = 1;
 | 
			
		||||
    parameter integer MREG = 1;
 | 
			
		||||
    parameter integer OPMODEREG = 1;
 | 
			
		||||
    parameter integer PREG = 1;
 | 
			
		||||
    parameter SEL_MASK = "MASK";
 | 
			
		||||
    parameter SEL_PATTERN = "PATTERN";
 | 
			
		||||
    parameter USE_DPORT = "FALSE";
 | 
			
		||||
    parameter USE_MULT = "MULTIPLY";
 | 
			
		||||
    parameter USE_PATTERN_DETECT = "NO_PATDET";
 | 
			
		||||
    parameter USE_SIMD = "ONE48";
 | 
			
		||||
    parameter [47:0] MASK = 48'h3FFFFFFFFFFF;
 | 
			
		||||
    parameter [47:0] PATTERN = 48'h000000000000;
 | 
			
		||||
    parameter [3:0] IS_ALUMODE_INVERTED = 4'b0;
 | 
			
		||||
    parameter [0:0] IS_CARRYIN_INVERTED = 1'b0;
 | 
			
		||||
    parameter [0:0] IS_CLK_INVERTED = 1'b0;
 | 
			
		||||
    parameter [4:0] IS_INMODE_INVERTED = 5'b0;
 | 
			
		||||
    parameter [6:0] IS_OPMODE_INVERTED = 7'b0;
 | 
			
		||||
    output [29:0] ACOUT;
 | 
			
		||||
    output [17:0] BCOUT;
 | 
			
		||||
    output CARRYCASCOUT;
 | 
			
		||||
    output [3:0] CARRYOUT;
 | 
			
		||||
    output MULTSIGNOUT;
 | 
			
		||||
    output OVERFLOW;
 | 
			
		||||
    output [47:0] P;
 | 
			
		||||
    output PATTERNBDETECT;
 | 
			
		||||
    output PATTERNDETECT;
 | 
			
		||||
    output [47:0] PCOUT;
 | 
			
		||||
    output UNDERFLOW;
 | 
			
		||||
    input [29:0] A;
 | 
			
		||||
    input [29:0] ACIN;
 | 
			
		||||
    (* invertible_pin = "IS_ALUMODE_INVERTED" *)
 | 
			
		||||
    input [3:0] ALUMODE;
 | 
			
		||||
    input [17:0] B;
 | 
			
		||||
    input [17:0] BCIN;
 | 
			
		||||
    input [47:0] C;
 | 
			
		||||
    input CARRYCASCIN;
 | 
			
		||||
    (* invertible_pin = "IS_CARRYIN_INVERTED" *)
 | 
			
		||||
    input CARRYIN;
 | 
			
		||||
    input [2:0] CARRYINSEL;
 | 
			
		||||
    input CEA1;
 | 
			
		||||
    input CEA2;
 | 
			
		||||
    input CEAD;
 | 
			
		||||
    input CEALUMODE;
 | 
			
		||||
    input CEB1;
 | 
			
		||||
    input CEB2;
 | 
			
		||||
    input CEC;
 | 
			
		||||
    input CECARRYIN;
 | 
			
		||||
    input CECTRL;
 | 
			
		||||
    input CED;
 | 
			
		||||
    input CEINMODE;
 | 
			
		||||
    input CEM;
 | 
			
		||||
    input CEP;
 | 
			
		||||
    (* clkbuf_sink *)
 | 
			
		||||
    (* invertible_pin = "IS_CLK_INVERTED" *)
 | 
			
		||||
    input CLK;
 | 
			
		||||
    input [24:0] D;
 | 
			
		||||
    (* invertible_pin = "IS_INMODE_INVERTED" *)
 | 
			
		||||
    input [4:0] INMODE;
 | 
			
		||||
    input MULTSIGNIN;
 | 
			
		||||
    (* invertible_pin = "IS_OPMODE_INVERTED" *)
 | 
			
		||||
    input [6:0] OPMODE;
 | 
			
		||||
    input [47:0] PCIN;
 | 
			
		||||
    input RSTA;
 | 
			
		||||
    input RSTALLCARRYIN;
 | 
			
		||||
    input RSTALUMODE;
 | 
			
		||||
    input RSTB;
 | 
			
		||||
    input RSTC;
 | 
			
		||||
    input RSTCTRL;
 | 
			
		||||
    input RSTD;
 | 
			
		||||
    input RSTINMODE;
 | 
			
		||||
    input RSTM;
 | 
			
		||||
    input RSTP;
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
module BUFGCE (...);
 | 
			
		||||
    parameter CE_TYPE = "SYNC";
 | 
			
		||||
    parameter [0:0] IS_CE_INVERTED = 1'b0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue