mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Move dsp_map.v into cells_map.v; cleanup synth_xilinx a little
This commit is contained in:
		
							parent
							
								
									cea7441d8a
								
							
						
					
					
						commit
						b33ecd2a74
					
				
					 4 changed files with 42 additions and 45 deletions
				
			
		|  | @ -31,7 +31,6 @@ $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/arith_map.v)) | ||||||
| $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/ff_map.v)) | $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/ff_map.v)) | ||||||
| $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/lut_map.v)) | $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/lut_map.v)) | ||||||
| $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/mux_map.v)) | $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/mux_map.v)) | ||||||
| $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/dsp_map.v)) |  | ||||||
| 
 | 
 | ||||||
| $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/abc_xc7.box)) | $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/abc_xc7.box)) | ||||||
| $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/abc_xc7.lut)) | $(eval $(call add_share_file,share/xilinx,techlibs/xilinx/abc_xc7.lut)) | ||||||
|  |  | ||||||
|  | @ -365,3 +365,44 @@ module \$__XILINX_MUXF78 (O, I0, I1, I2, I3, S0, S1); | ||||||
|     MUXF8 mux8 (.I0(T0), .I1(T1), .S(S1), .O(O)); |     MUXF8 mux8 (.I0(T0), .I1(T1), .S(S1), .O(O)); | ||||||
| endmodule | endmodule | ||||||
| `endif | `endif | ||||||
|  | 
 | ||||||
|  | module \$__MUL25X18 (input [24:0] A, input [17:0] B, output [42:0] OUT); | ||||||
|  | 	wire [47:0] P_48; | ||||||
|  | 	DSP48E1 #( | ||||||
|  | 		// Disable all registers | ||||||
|  | 		.ACASCREG(0), | ||||||
|  | 		.ADREG(0), | ||||||
|  | 		.A_INPUT("DIRECT"), | ||||||
|  | 		.ALUMODEREG(0), | ||||||
|  | 		.AREG(0), | ||||||
|  | 		.BCASCREG(0), | ||||||
|  | 		.B_INPUT("DIRECT"), | ||||||
|  | 		.BREG(0), | ||||||
|  | 		.CARRYINREG(0), | ||||||
|  | 		.CARRYINSELREG(0), | ||||||
|  | 		.CREG(0), | ||||||
|  | 		.DREG(0), | ||||||
|  | 		.INMODEREG(0), | ||||||
|  | 		.MREG(0), | ||||||
|  | 		.OPMODEREG(0), | ||||||
|  | 		.PREG(0) | ||||||
|  | 	) _TECHMAP_REPLACE_ ( | ||||||
|  | 		//Data path | ||||||
|  | 		.A({5'b0, A}), | ||||||
|  | 		.B(B), | ||||||
|  | 		.C(48'b0), | ||||||
|  | 		.D(24'b0), | ||||||
|  | 		.P(P_48), | ||||||
|  | 
 | ||||||
|  | 		.INMODE(4'b0000), | ||||||
|  | 		.ALUMODE(4'b0000), | ||||||
|  | 		.OPMODE(7'b000101), | ||||||
|  | 		.CARRYINSEL(3'b000), | ||||||
|  | 
 | ||||||
|  | 		.ACIN(30'b0), | ||||||
|  | 		.BCIN(18'b0), | ||||||
|  | 		.PCIN(48'b0), | ||||||
|  | 		.CARRYIN(1'b0) | ||||||
|  | 	); | ||||||
|  | 	assign OUT = P_48; | ||||||
|  | endmodule | ||||||
|  |  | ||||||
|  | @ -1,40 +0,0 @@ | ||||||
| module \$__MUL25X18 (input [24:0] A, input [17:0] B, output [42:0] OUT); |  | ||||||
| 	wire [47:0] P_48; |  | ||||||
| 	DSP48E1 #( |  | ||||||
| 		// Disable all registers |  | ||||||
| 		.ACASCREG(0), |  | ||||||
| 		.ADREG(0), |  | ||||||
| 		.A_INPUT("DIRECT"), |  | ||||||
| 		.ALUMODEREG(0), |  | ||||||
| 		.AREG(0), |  | ||||||
| 		.BCASCREG(0), |  | ||||||
| 		.B_INPUT("DIRECT"), |  | ||||||
| 		.BREG(0), |  | ||||||
| 		.CARRYINREG(0), |  | ||||||
| 		.CARRYINSELREG(0), |  | ||||||
| 		.CREG(0), |  | ||||||
| 		.DREG(0), |  | ||||||
| 		.INMODEREG(0), |  | ||||||
| 		.MREG(0), |  | ||||||
| 		.OPMODEREG(0), |  | ||||||
| 		.PREG(0) |  | ||||||
| 	) _TECHMAP_REPLACE_ ( |  | ||||||
| 		//Data path |  | ||||||
| 		.A({5'b0, A}), |  | ||||||
| 		.B(B), |  | ||||||
| 		.C(48'b0), |  | ||||||
| 		.D(24'b0), |  | ||||||
| 		.P(P_48), |  | ||||||
| 
 |  | ||||||
| 		.INMODE(4'b0000), |  | ||||||
| 		.ALUMODE(4'b0000), |  | ||||||
| 		.OPMODE(7'b000101), |  | ||||||
| 		.CARRYINSEL(3'b000), |  | ||||||
| 
 |  | ||||||
| 		.ACIN(30'b0), |  | ||||||
| 		.BCIN(18'b0), |  | ||||||
| 		.PCIN(48'b0), |  | ||||||
| 		.CARRYIN(1'b0) |  | ||||||
| 	); |  | ||||||
| 	assign OUT = P_48; |  | ||||||
| endmodule |  | ||||||
|  | @ -279,11 +279,8 @@ struct SynthXilinxPass : public ScriptPass | ||||||
| 
 | 
 | ||||||
| 			run("techmap -map +/cmp2lut.v -D LUT_WIDTH=6"); | 			run("techmap -map +/cmp2lut.v -D LUT_WIDTH=6"); | ||||||
| 
 | 
 | ||||||
| 			if (!nodsp || help_mode) { | 			if (!nodsp || help_mode) | ||||||
| 				run("techmap -map +/mul2dsp.v -D DSP_A_MAXWIDTH=25 -D DSP_B_MAXWIDTH=18 -D DSP_NAME=$__MUL25X18"); | 				run("techmap -map +/mul2dsp.v -D DSP_A_MAXWIDTH=25 -D DSP_B_MAXWIDTH=18 -D DSP_NAME=$__MUL25X18"); | ||||||
| 				run("clean"); |  | ||||||
| 				run("techmap -map +/xilinx/dsp_map.v"); |  | ||||||
| 			} |  | ||||||
| 
 | 
 | ||||||
| 			run("alumacc"); | 			run("alumacc"); | ||||||
| 			run("share"); | 			run("share"); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue