mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	partial rebase of PeterCrozier's enum work onto current master
I tried to keep only the enum-related changes, and minimize the diff. (The
original commit also had a lot of work done to get typedefs working, but yosys
has diverged quite a bit since the 2018-03-09 commit, with a new typedef
implementation.) I did not include the import related changes either.
Original commit:
"Initial implementation of enum, typedef, import.  Still a WIP."
881833aa73
			
			
This commit is contained in:
		
							parent
							
								
									2bda51ac34
								
							
						
					
					
						commit
						16ea4ea61a
					
				
					 5 changed files with 207 additions and 17 deletions
				
			
		|  | @ -68,6 +68,8 @@ namespace AST | |||
| 		AST_LIVE, | ||||
| 		AST_FAIR, | ||||
| 		AST_COVER, | ||||
| 		AST_ENUM, | ||||
| 		AST_ENUM_ITEM, | ||||
| 
 | ||||
| 		AST_FCALL, | ||||
| 		AST_TO_BITS, | ||||
|  | @ -181,6 +183,8 @@ namespace AST | |||
| 		int port_id, range_left, range_right; | ||||
| 		uint32_t integer; | ||||
| 		double realvalue; | ||||
| 		// set for IDs typed to an enumeration, not used
 | ||||
| 		bool is_enum; | ||||
| 
 | ||||
| 		// if this is a multirange memory then this vector contains offset and length of each dimension
 | ||||
| 		std::vector<int> multirange_dimensions; | ||||
|  | @ -285,6 +289,9 @@ namespace AST | |||
| 		int isConst() const; // return '1' for AST_CONSTANT and '2' for AST_REALVALUE
 | ||||
| 		double asReal(bool is_signed); | ||||
| 		RTLIL::Const realAsConst(int width); | ||||
| 
 | ||||
| 		// helpers for enum
 | ||||
| 		void allocateDefaultEnumValues(); | ||||
| 	}; | ||||
| 
 | ||||
| 	// process an AST tree (ast must point to an AST_DESIGN node) and generate RTLIL code
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue