mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	Merge pull request #916 from YosysHQ/map_cells_before_map_luts
synth_xilinx to map_cells before map_luts
This commit is contained in:
		
						commit
						cbd9b8a3f3
					
				
					 1 changed files with 10 additions and 10 deletions
				
			
		| 
						 | 
					@ -113,17 +113,17 @@ struct SynthXilinxPass : public Pass
 | 
				
			||||||
		log("        techmap -map +/techmap.v -map +/xilinx/arith_map.v\n");
 | 
							log("        techmap -map +/techmap.v -map +/xilinx/arith_map.v\n");
 | 
				
			||||||
		log("        opt -fast\n");
 | 
							log("        opt -fast\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
 | 
							log("    map_cells:\n");
 | 
				
			||||||
 | 
							log("        techmap -map +/xilinx/cells_map.v\n");
 | 
				
			||||||
 | 
							log("        clean\n");
 | 
				
			||||||
 | 
							log("\n");
 | 
				
			||||||
		log("    map_luts:\n");
 | 
							log("    map_luts:\n");
 | 
				
			||||||
		log("        techmap -map +/techmap.v -map +/xilinx/ff_map.v t:$_DFF_?N?\n");
 | 
							log("        techmap -map +/techmap.v -map +/xilinx/ff_map.v t:$_DFF_?N?\n");
 | 
				
			||||||
		log("        abc -luts 2:2,3,6:5,10,20 [-dff]\n");
 | 
							log("        abc -luts 2:2,3,6:5,10,20 [-dff]\n");
 | 
				
			||||||
		log("        clean\n");
 | 
							log("        clean\n");
 | 
				
			||||||
		log("        techmap -map +/xilinx/lut_map.v -map +/xilinx/ff_map.v");
 | 
							log("        techmap -map +/xilinx/lut_map.v -map +/xilinx/ff_map.v");
 | 
				
			||||||
		log("\n");
 | 
					 | 
				
			||||||
		log("    map_cells:\n");
 | 
					 | 
				
			||||||
		log("        techmap -map +/xilinx/cells_map.v\n");
 | 
					 | 
				
			||||||
		log("        dffinit -ff FDRE   Q INIT -ff FDCE   Q INIT -ff FDPE   Q INIT -ff FDSE   Q INIT \\\n");
 | 
							log("        dffinit -ff FDRE   Q INIT -ff FDCE   Q INIT -ff FDPE   Q INIT -ff FDSE   Q INIT \\\n");
 | 
				
			||||||
		log("                -ff FDRE_1 Q INIT -ff FDCE_1 Q INIT -ff FDPE_1 Q INIT -ff FDSE_1 Q INIT\n");
 | 
							log("                -ff FDRE_1 Q INIT -ff FDCE_1 Q INIT -ff FDPE_1 Q INIT -ff FDSE_1 Q INIT\n");
 | 
				
			||||||
		log("        clean\n");
 | 
					 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("    check:\n");
 | 
							log("    check:\n");
 | 
				
			||||||
		log("        hierarchy -check\n");
 | 
							log("        hierarchy -check\n");
 | 
				
			||||||
| 
						 | 
					@ -266,20 +266,20 @@ struct SynthXilinxPass : public Pass
 | 
				
			||||||
			Pass::call(design, "opt -fast");
 | 
								Pass::call(design, "opt -fast");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (check_label(active, run_from, run_to, "map_cells"))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								Pass::call(design, "techmap -map +/xilinx/cells_map.v");
 | 
				
			||||||
 | 
								Pass::call(design, "clean");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (check_label(active, run_from, run_to, "map_luts"))
 | 
							if (check_label(active, run_from, run_to, "map_luts"))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Pass::call(design, "techmap -map +/techmap.v -map +/xilinx/ff_map.v t:$_DFF_?N?");
 | 
								Pass::call(design, "techmap -map +/techmap.v -map +/xilinx/ff_map.v t:$_DFF_?N?");
 | 
				
			||||||
			Pass::call(design, "abc -luts 2:2,3,6:5,10,20" + string(retime ? " -dff" : ""));
 | 
								Pass::call(design, "abc -luts 2:2,3,6:5,10,20" + string(retime ? " -dff" : ""));
 | 
				
			||||||
			Pass::call(design, "clean");
 | 
								Pass::call(design, "clean");
 | 
				
			||||||
			Pass::call(design, "techmap -map +/xilinx/lut_map.v -map +/xilinx/ff_map.v");
 | 
								Pass::call(design, "techmap -map +/xilinx/lut_map.v -map +/xilinx/ff_map.v");
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (check_label(active, run_from, run_to, "map_cells"))
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			Pass::call(design, "techmap -map +/xilinx/cells_map.v");
 | 
					 | 
				
			||||||
			Pass::call(design, "dffinit -ff FDRE Q INIT -ff FDCE Q INIT -ff FDPE Q INIT -ff FDSE Q INIT "
 | 
								Pass::call(design, "dffinit -ff FDRE Q INIT -ff FDCE Q INIT -ff FDPE Q INIT -ff FDSE Q INIT "
 | 
				
			||||||
					"-ff FDRE_1 Q INIT -ff FDCE_1 Q INIT -ff FDPE_1 Q INIT -ff FDSE_1 Q INIT");
 | 
										"-ff FDRE_1 Q INIT -ff FDCE_1 Q INIT -ff FDPE_1 Q INIT -ff FDSE_1 Q INIT");
 | 
				
			||||||
			Pass::call(design, "clean");
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (check_label(active, run_from, run_to, "check"))
 | 
							if (check_label(active, run_from, run_to, "check"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue