mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	Add "stat -tech cmos"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
		
							parent
							
								
									9cb0456b6f
								
							
						
					
					
						commit
						c6d8692c97
					
				
					 1 changed files with 29 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -223,6 +223,33 @@ struct statdata_t
 | 
			
		|||
			log("\n");
 | 
			
		||||
			log("   Estimated number of LCs: %10d\n", lc_cnt);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (tech == "cmos")
 | 
			
		||||
		{
 | 
			
		||||
			int tran_cnt = 0;
 | 
			
		||||
			bool tran_cnt_exact = true;
 | 
			
		||||
 | 
			
		||||
			for (auto it : num_cells_by_type) {
 | 
			
		||||
				auto ctype = it.first;
 | 
			
		||||
				auto cnum = it.second;
 | 
			
		||||
 | 
			
		||||
				if (ctype == "$_NOT_")
 | 
			
		||||
					tran_cnt += 2*cnum;
 | 
			
		||||
				else if (ctype.in("$_NAND_", "$_NOR_"))
 | 
			
		||||
					tran_cnt += 4*cnum;
 | 
			
		||||
				else if (ctype.in("$_AOI3_", "$_OAI3_"))
 | 
			
		||||
					tran_cnt += 6*cnum;
 | 
			
		||||
				else if (ctype.in("$_AOI4_", "$_OAI4_"))
 | 
			
		||||
					tran_cnt += 8*cnum;
 | 
			
		||||
				else if (ctype.in("$_DFF_P_", "$_DFF_N_"))
 | 
			
		||||
					tran_cnt += 16*cnum;
 | 
			
		||||
				else
 | 
			
		||||
					tran_cnt_exact = false;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			log("\n");
 | 
			
		||||
			log("   Estimated number of transistors: %10d%s\n", tran_cnt, tran_cnt_exact ? "" : "+");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -286,7 +313,7 @@ struct StatPass : public Pass {
 | 
			
		|||
		log("\n");
 | 
			
		||||
		log("    -tech <technology>\n");
 | 
			
		||||
		log("        print area estemate for the specified technology. Currently supported\n");
 | 
			
		||||
		log("        values for <technology>: xilinx\n");
 | 
			
		||||
		log("        values for <technology>: xilinx, cmos\n");
 | 
			
		||||
		log("\n");
 | 
			
		||||
		log("    -width\n");
 | 
			
		||||
		log("        annotate internal cell types with their word width.\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -330,7 +357,7 @@ struct StatPass : public Pass {
 | 
			
		|||
		}
 | 
			
		||||
		extra_args(args, argidx, design);
 | 
			
		||||
 | 
			
		||||
		if (techname != "" && techname != "xilinx")
 | 
			
		||||
		if (techname != "" && techname != "xilinx" && techname != "cmos")
 | 
			
		||||
			log_cmd_error("Unsupported technology: '%s'\n", techname.c_str());
 | 
			
		||||
 | 
			
		||||
		for (auto mod : design->selected_modules())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue