mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-06 22:23:23 +00:00
sv: Disambiguate interface ports
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
1746b6373b
commit
8cc1bee33c
1 changed files with 19 additions and 3 deletions
|
@ -113,7 +113,8 @@ struct specify_rise_fall {
|
||||||
%define api.prefix {frontend_verilog_yy}
|
%define api.prefix {frontend_verilog_yy}
|
||||||
|
|
||||||
%glr-parser
|
%glr-parser
|
||||||
%expect 22
|
%expect 21
|
||||||
|
%expect-rr 2
|
||||||
|
|
||||||
/* The union is defined in the header, so we need to provide all the
|
/* The union is defined in the header, so we need to provide all the
|
||||||
* includes it requires
|
* includes it requires
|
||||||
|
@ -157,7 +158,7 @@ struct specify_rise_fall {
|
||||||
%token TOK_INCREMENT TOK_DECREMENT TOK_UNIQUE TOK_PRIORITY
|
%token TOK_INCREMENT TOK_DECREMENT TOK_UNIQUE TOK_PRIORITY
|
||||||
|
|
||||||
%type <ast> range range_or_multirange non_opt_range non_opt_multirange range_or_signed_int
|
%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
|
%type <ast> wire_type wire_type_io expr basic_expr concat_list rvalue lvalue lvalue_concat_list
|
||||||
%type <string> opt_label opt_sva_label tok_prim_wrapper hierarchical_id
|
%type <string> opt_label opt_sva_label tok_prim_wrapper hierarchical_id
|
||||||
%type <boolean> opt_signed opt_property unique_case_attr
|
%type <boolean> opt_signed opt_property unique_case_attr
|
||||||
%type <al> attr case_attr
|
%type <al> attr case_attr
|
||||||
|
@ -395,7 +396,7 @@ module_arg:
|
||||||
ast_stack.back()->children.push_back(astbuf2);
|
ast_stack.back()->children.push_back(astbuf2);
|
||||||
delete astbuf1; // really only needed if multiple instances of same type.
|
delete astbuf1; // really only needed if multiple instances of same type.
|
||||||
} module_arg_opt_assignment |
|
} module_arg_opt_assignment |
|
||||||
attr wire_type range TOK_ID {
|
attr wire_type_io range TOK_ID {
|
||||||
AstNode *node = $2;
|
AstNode *node = $2;
|
||||||
node->str = *$4;
|
node->str = *$4;
|
||||||
node->port_id = ++port_counter;
|
node->port_id = ++port_counter;
|
||||||
|
@ -479,6 +480,15 @@ wire_type:
|
||||||
$$ = astbuf3;
|
$$ = astbuf3;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
wire_type_io:
|
||||||
|
{
|
||||||
|
astbuf3 = new AstNode(AST_WIRE);
|
||||||
|
current_wire_rand = false;
|
||||||
|
current_wire_const = false;
|
||||||
|
} io_wire_type_token_list delay {
|
||||||
|
$$ = astbuf3;
|
||||||
|
};
|
||||||
|
|
||||||
wire_type_token_list:
|
wire_type_token_list:
|
||||||
wire_type_token | wire_type_token_list wire_type_token |
|
wire_type_token | wire_type_token_list wire_type_token |
|
||||||
wire_type_token_io ;
|
wire_type_token_io ;
|
||||||
|
@ -541,6 +551,12 @@ wire_type_token:
|
||||||
astbuf3->children.back()->str = *$1;
|
astbuf3->children.back()->str = *$1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
wire_type_token_list_without_io:
|
||||||
|
wire_type_token | wire_type_token_list wire_type_token;
|
||||||
|
|
||||||
|
io_wire_type_token_list:
|
||||||
|
wire_type_token_io | wire_type_token_io wire_type_token_list_without_io;
|
||||||
|
|
||||||
non_opt_range:
|
non_opt_range:
|
||||||
'[' expr ':' expr ']' {
|
'[' expr ':' expr ']' {
|
||||||
$$ = new AstNode(AST_RANGE);
|
$$ = new AstNode(AST_RANGE);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue