diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-11-24 17:37:27 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-11-24 17:37:27 +0100 |
commit | 0ef22c76095bcca8ac7cacfc32e4ce6dd552addf (patch) | |
tree | bd6b604cf13f8f035af64c249a8204e3b10e35ee /frontends/ilang | |
parent | 7eaad2218dab9feec82e8ffe7adbc58463cadb7d (diff) | |
download | yosys-0ef22c76095bcca8ac7cacfc32e4ce6dd552addf.tar.gz yosys-0ef22c76095bcca8ac7cacfc32e4ce6dd552addf.tar.bz2 yosys-0ef22c76095bcca8ac7cacfc32e4ce6dd552addf.zip |
Added support for signed parameters in ilang
Diffstat (limited to 'frontends/ilang')
-rw-r--r-- | frontends/ilang/lexer.l | 1 | ||||
-rw-r--r-- | frontends/ilang/parser.y | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/frontends/ilang/lexer.l b/frontends/ilang/lexer.l index 287f9dbf6..d582d0413 100644 --- a/frontends/ilang/lexer.l +++ b/frontends/ilang/lexer.l @@ -39,6 +39,7 @@ "module" { return TOK_MODULE; } "attribute" { return TOK_ATTRIBUTE; } "parameter" { return TOK_PARAMETER; } +"signed" { return TOK_SIGNED; } "wire" { return TOK_WIRE; } "memory" { return TOK_MEMORY; } "width" { return TOK_WIDTH; } diff --git a/frontends/ilang/parser.y b/frontends/ilang/parser.y index 71c63bc44..54c2280a8 100644 --- a/frontends/ilang/parser.y +++ b/frontends/ilang/parser.y @@ -54,7 +54,7 @@ using namespace ILANG_FRONTEND; %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 TOK_INIT %token TOK_UPDATE TOK_PROCESS TOK_END TOK_INVALID TOK_EOL TOK_OFFSET -%token TOK_PARAMETER TOK_ATTRIBUTE TOK_MEMORY TOK_SIZE +%token TOK_PARAMETER TOK_ATTRIBUTE TOK_MEMORY TOK_SIZE TOK_SIGNED %type <sigspec> sigspec sigspec_list %type <integer> sync_type @@ -189,6 +189,12 @@ cell_body: free($3); delete $4; } | + cell_body TOK_PARAMETER TOK_SIGNED TOK_ID constant TOK_EOL { + current_cell->parameters[$4] = *$5; + current_cell->signed_parameters.insert($4); + free($4); + delete $5; + } | cell_body TOK_CONNECT TOK_ID sigspec TOK_EOL { if (current_cell->connections.count($3) != 0) rtlil_frontend_ilang_yyerror("scope error"); |