mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Add $live and $fair cell types, add support for s_eventually keyword
This commit is contained in:
		
							parent
							
								
									7af9727f78
								
							
						
					
					
						commit
						5f1d0b1024
					
				
					 14 changed files with 80 additions and 10 deletions
				
			
		|  | @ -116,6 +116,8 @@ struct CellTypes | |||
| 
 | ||||
| 		setup_type("$assert", {A, EN}, pool<RTLIL::IdString>(), true); | ||||
| 		setup_type("$assume", {A, EN}, pool<RTLIL::IdString>(), true); | ||||
| 		setup_type("$live", {A, EN}, pool<RTLIL::IdString>(), true); | ||||
| 		setup_type("$fair", {A, EN}, pool<RTLIL::IdString>(), true); | ||||
| 		setup_type("$cover", {A, EN}, pool<RTLIL::IdString>(), true); | ||||
| 		setup_type("$initstate", pool<RTLIL::IdString>(), {Y}, true); | ||||
| 		setup_type("$anyconst", pool<RTLIL::IdString>(), {Y}, true); | ||||
|  |  | |||
|  | @ -1026,7 +1026,7 @@ namespace { | |||
| 				return; | ||||
| 			} | ||||
| 
 | ||||
| 			if (cell->type.in("$assert", "$assume", "$cover")) { | ||||
| 			if (cell->type.in("$assert", "$assume", "$live", "$fair", "$cover")) { | ||||
| 				port("\\A", 1); | ||||
| 				port("\\EN", 1); | ||||
| 				check_expected(); | ||||
|  | @ -1819,6 +1819,22 @@ RTLIL::Cell* RTLIL::Module::addAssume(RTLIL::IdString name, RTLIL::SigSpec sig_a | |||
| 	return cell; | ||||
| } | ||||
| 
 | ||||
| RTLIL::Cell* RTLIL::Module::addLive(RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en) | ||||
| { | ||||
| 	RTLIL::Cell *cell = addCell(name, "$live"); | ||||
| 	cell->setPort("\\A", sig_a); | ||||
| 	cell->setPort("\\EN", sig_en); | ||||
| 	return cell; | ||||
| } | ||||
| 
 | ||||
| RTLIL::Cell* RTLIL::Module::addFair(RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en) | ||||
| { | ||||
| 	RTLIL::Cell *cell = addCell(name, "$fair"); | ||||
| 	cell->setPort("\\A", sig_a); | ||||
| 	cell->setPort("\\EN", sig_en); | ||||
| 	return cell; | ||||
| } | ||||
| 
 | ||||
| RTLIL::Cell* RTLIL::Module::addCover(RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en) | ||||
| { | ||||
| 	RTLIL::Cell *cell = addCell(name, "$cover"); | ||||
|  |  | |||
|  | @ -1007,6 +1007,8 @@ public: | |||
| 	RTLIL::Cell* addTribuf (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en, RTLIL::SigSpec sig_y); | ||||
| 	RTLIL::Cell* addAssert (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en); | ||||
| 	RTLIL::Cell* addAssume (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en); | ||||
| 	RTLIL::Cell* addLive   (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en); | ||||
| 	RTLIL::Cell* addFair   (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en); | ||||
| 	RTLIL::Cell* addCover  (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_en); | ||||
| 	RTLIL::Cell* addEquiv  (RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_b, RTLIL::SigSpec sig_y); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue