diff options
Diffstat (limited to 'frontends/ilang/parser.y')
-rw-r--r-- | frontends/ilang/parser.y | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/frontends/ilang/parser.y b/frontends/ilang/parser.y index b889a9989..dc39cf93f 100644 --- a/frontends/ilang/parser.y +++ b/frontends/ilang/parser.y @@ -52,7 +52,7 @@ using namespace ILANG_FRONTEND; %token <integer> TOK_INT %token TOK_MODULE TOK_WIRE TOK_WIDTH TOK_INPUT TOK_OUTPUT TOK_INOUT %token TOK_CELL TOK_CONNECT TOK_SWITCH TOK_CASE TOK_ASSIGN TOK_SYNC -%token TOK_LOW TOK_HIGH TOK_POSEDGE TOK_NEGEDGE TOK_EDGE TOK_ALWAYS +%token TOK_LOW TOK_HIGH TOK_POSEDGE TOK_NEGEDGE TOK_EDGE TOK_ALWAYS TOK_INIT %token TOK_UPDATE TOK_PROCESS TOK_END TOK_INVALID TOK_EOL TOK_OFFSET %token TOK_PARAMETER TOK_ATTRIBUTE TOK_AUTO TOK_MEMORY TOK_SIZE @@ -279,6 +279,12 @@ sync_list: rule->signal = RTLIL::SigSpec(); current_process->syncs.push_back(rule); } update_list | + sync_list TOK_SYNC TOK_INIT TOK_EOL { + RTLIL::SyncRule *rule = new RTLIL::SyncRule; + rule->type = RTLIL::SyncType::STi; + rule->signal = RTLIL::SigSpec(); + current_process->syncs.push_back(rule); + } update_list | /* empty */; sync_type: |