mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	Add $cover cell type and SVA cover() support
This commit is contained in:
		
							parent
							
								
									911c44d164
								
							
						
					
					
						commit
						3928482a3c
					
				
					 14 changed files with 38 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -177,6 +177,7 @@ YOSYS_NAMESPACE_END
 | 
			
		|||
 | 
			
		||||
"assert"   { if (formal_mode) return TOK_ASSERT; SV_KEYWORD(TOK_ASSERT); }
 | 
			
		||||
"assume"   { if (formal_mode) return TOK_ASSUME; SV_KEYWORD(TOK_ASSUME); }
 | 
			
		||||
"cover"    { if (formal_mode) return TOK_COVER; SV_KEYWORD(TOK_COVER); }
 | 
			
		||||
"restrict" { if (formal_mode) return TOK_RESTRICT; SV_KEYWORD(TOK_RESTRICT); }
 | 
			
		||||
"property" { if (formal_mode) return TOK_PROPERTY; SV_KEYWORD(TOK_PROPERTY); }
 | 
			
		||||
"logic"    { SV_KEYWORD(TOK_REG); }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ static void free_attr(std::map<std::string, AstNode*> *al)
 | 
			
		|||
%token TOK_SYNOPSYS_FULL_CASE TOK_SYNOPSYS_PARALLEL_CASE
 | 
			
		||||
%token TOK_SUPPLY0 TOK_SUPPLY1 TOK_TO_SIGNED TOK_TO_UNSIGNED
 | 
			
		||||
%token TOK_POS_INDEXED TOK_NEG_INDEXED TOK_ASSERT TOK_ASSUME
 | 
			
		||||
%token TOK_RESTRICT TOK_PROPERTY TOK_ENUM TOK_TYPEDEF
 | 
			
		||||
%token TOK_RESTRICT TOK_COVER TOK_PROPERTY TOK_ENUM TOK_TYPEDEF
 | 
			
		||||
 | 
			
		||||
%type <ast> range range_or_multirange  non_opt_range non_opt_multirange range_or_signed_int
 | 
			
		||||
%type <ast> wire_type expr basic_expr concat_list rvalue lvalue lvalue_concat_list
 | 
			
		||||
| 
						 | 
				
			
			@ -1000,6 +1000,9 @@ assert:
 | 
			
		|||
	TOK_ASSUME '(' expr ')' ';' {
 | 
			
		||||
		ast_stack.back()->children.push_back(new AstNode(AST_ASSUME, $3));
 | 
			
		||||
	} |
 | 
			
		||||
	TOK_COVER '(' expr ')' ';' {
 | 
			
		||||
		ast_stack.back()->children.push_back(new AstNode(AST_COVER, $3));
 | 
			
		||||
	} |
 | 
			
		||||
	TOK_RESTRICT '(' expr ')' ';' {
 | 
			
		||||
		if (norestrict_mode)
 | 
			
		||||
			delete $3;
 | 
			
		||||
| 
						 | 
				
			
			@ -1014,6 +1017,9 @@ assert_property:
 | 
			
		|||
	TOK_ASSUME TOK_PROPERTY '(' expr ')' ';' {
 | 
			
		||||
		ast_stack.back()->children.push_back(new AstNode(AST_ASSUME, $4));
 | 
			
		||||
	} |
 | 
			
		||||
	TOK_COVER TOK_PROPERTY '(' expr ')' ';' {
 | 
			
		||||
		ast_stack.back()->children.push_back(new AstNode(AST_COVER, $4));
 | 
			
		||||
	} |
 | 
			
		||||
	TOK_RESTRICT TOK_PROPERTY '(' expr ')' ';' {
 | 
			
		||||
		if (norestrict_mode)
 | 
			
		||||
			delete $4;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue