mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Added Verilog $rtoi and $itor support
This commit is contained in:
		
							parent
							
								
									81bb952e5d
								
							
						
					
					
						commit
						dfb461fe52
					
				
					 1 changed files with 30 additions and 24 deletions
				
			
		| 
						 | 
					@ -1864,7 +1864,8 @@ skip_dynamic_range_lvalue_expansion:;
 | 
				
			||||||
			if (str == "\\$ln" || str == "\\$log10" || str == "\\$exp" || str == "\\$sqrt" || str == "\\$pow" ||
 | 
								if (str == "\\$ln" || str == "\\$log10" || str == "\\$exp" || str == "\\$sqrt" || str == "\\$pow" ||
 | 
				
			||||||
					str == "\\$floor" || str == "\\$ceil" || str == "\\$sin" || str == "\\$cos" || str == "\\$tan" ||
 | 
										str == "\\$floor" || str == "\\$ceil" || str == "\\$sin" || str == "\\$cos" || str == "\\$tan" ||
 | 
				
			||||||
					str == "\\$asin" || str == "\\$acos" || str == "\\$atan" || str == "\\$atan2" || str == "\\$hypot" ||
 | 
										str == "\\$asin" || str == "\\$acos" || str == "\\$atan" || str == "\\$atan2" || str == "\\$hypot" ||
 | 
				
			||||||
					str == "\\$sinh" || str == "\\$cosh" || str == "\\$tanh" || str == "\\$asinh" || str == "\\$acosh" || str == "\\$atanh")
 | 
										str == "\\$sinh" || str == "\\$cosh" || str == "\\$tanh" || str == "\\$asinh" || str == "\\$acosh" || str == "\\$atanh" ||
 | 
				
			||||||
 | 
										str == "\\$rtoi" || str == "\\$itor")
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				bool func_with_two_arguments = str == "\\$pow" || str == "\\$atan2" || str == "\\$hypot";
 | 
									bool func_with_two_arguments = str == "\\$pow" || str == "\\$atan2" || str == "\\$hypot";
 | 
				
			||||||
				double x = 0, y = 0;
 | 
									double x = 0, y = 0;
 | 
				
			||||||
| 
						 | 
					@ -1901,6 +1902,9 @@ skip_dynamic_range_lvalue_expansion:;
 | 
				
			||||||
					y = children[1]->asReal(child_sign_hint);
 | 
										y = children[1]->asReal(child_sign_hint);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if (str == "\\$rtoi") {
 | 
				
			||||||
 | 
										newNode = AstNode::mkconst_int(x, true);
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
					newNode = new AstNode(AST_REALVALUE);
 | 
										newNode = new AstNode(AST_REALVALUE);
 | 
				
			||||||
					if (str == "\\$ln")         newNode->realvalue = ::log(x);
 | 
										if (str == "\\$ln")         newNode->realvalue = ::log(x);
 | 
				
			||||||
					else if (str == "\\$log10") newNode->realvalue = ::log10(x);
 | 
										else if (str == "\\$log10") newNode->realvalue = ::log10(x);
 | 
				
			||||||
| 
						 | 
					@ -1923,7 +1927,9 @@ skip_dynamic_range_lvalue_expansion:;
 | 
				
			||||||
					else if (str == "\\$asinh") newNode->realvalue = ::asinh(x);
 | 
										else if (str == "\\$asinh") newNode->realvalue = ::asinh(x);
 | 
				
			||||||
					else if (str == "\\$acosh") newNode->realvalue = ::acosh(x);
 | 
										else if (str == "\\$acosh") newNode->realvalue = ::acosh(x);
 | 
				
			||||||
					else if (str == "\\$atanh") newNode->realvalue = ::atanh(x);
 | 
										else if (str == "\\$atanh") newNode->realvalue = ::atanh(x);
 | 
				
			||||||
 | 
										else if (str == "\\$itor")  newNode->realvalue = x;
 | 
				
			||||||
					else log_abort();
 | 
										else log_abort();
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
				goto apply_newNode;
 | 
									goto apply_newNode;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue