mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-06 14:13:23 +00:00
Merge pull request #513 from udif/pr_reg_wire_error
Add error checking for reg/wire/logic misuse - PR now passes 'make test' (plus a new test)
This commit is contained in:
commit
3d27c1cc80
7 changed files with 132 additions and 4 deletions
|
@ -192,7 +192,7 @@ YOSYS_NAMESPACE_END
|
|||
"const" { if (formal_mode) return TOK_CONST; SV_KEYWORD(TOK_CONST); }
|
||||
"checker" { if (formal_mode) return TOK_CHECKER; SV_KEYWORD(TOK_CHECKER); }
|
||||
"endchecker" { if (formal_mode) return TOK_ENDCHECKER; SV_KEYWORD(TOK_ENDCHECKER); }
|
||||
"logic" { SV_KEYWORD(TOK_REG); }
|
||||
"logic" { SV_KEYWORD(TOK_LOGIC); }
|
||||
"bit" { SV_KEYWORD(TOK_REG); }
|
||||
|
||||
"eventually" { if (formal_mode) return TOK_EVENTUALLY; SV_KEYWORD(TOK_EVENTUALLY); }
|
||||
|
|
|
@ -105,7 +105,7 @@ static void free_attr(std::map<std::string, AstNode*> *al)
|
|||
%token ATTR_BEGIN ATTR_END DEFATTR_BEGIN DEFATTR_END
|
||||
%token TOK_MODULE TOK_ENDMODULE TOK_PARAMETER TOK_LOCALPARAM TOK_DEFPARAM
|
||||
%token TOK_PACKAGE TOK_ENDPACKAGE TOK_PACKAGESEP
|
||||
%token TOK_INPUT TOK_OUTPUT TOK_INOUT TOK_WIRE TOK_REG
|
||||
%token TOK_INPUT TOK_OUTPUT TOK_INOUT TOK_WIRE TOK_REG TOK_LOGIC
|
||||
%token TOK_INTEGER TOK_SIGNED TOK_ASSIGN TOK_ALWAYS TOK_INITIAL
|
||||
%token TOK_BEGIN TOK_END TOK_IF TOK_ELSE TOK_FOR TOK_WHILE TOK_REPEAT
|
||||
%token TOK_DPI_FUNCTION TOK_POSEDGE TOK_NEGEDGE TOK_OR TOK_AUTOMATIC
|
||||
|
@ -397,6 +397,9 @@ wire_type_token:
|
|||
TOK_REG {
|
||||
astbuf3->is_reg = true;
|
||||
} |
|
||||
TOK_LOGIC {
|
||||
astbuf3->is_logic = true;
|
||||
} |
|
||||
TOK_INTEGER {
|
||||
astbuf3->is_reg = true;
|
||||
astbuf3->range_left = 31;
|
||||
|
@ -548,6 +551,7 @@ task_func_decl:
|
|||
AstNode *outreg = new AstNode(AST_WIRE);
|
||||
outreg->str = *$6;
|
||||
outreg->is_signed = $4;
|
||||
outreg->is_reg = true;
|
||||
if ($5 != NULL) {
|
||||
outreg->children.push_back($5);
|
||||
outreg->is_signed = $4 || $5->is_signed;
|
||||
|
@ -1027,6 +1031,7 @@ wire_name:
|
|||
node->port_id = current_function_or_task_port_id++;
|
||||
}
|
||||
ast_stack.back()->children.push_back(node);
|
||||
|
||||
delete $1;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue