diff options
| author | azidar | 2015-04-23 11:46:47 -0700 |
|---|---|---|
| committer | azidar | 2015-04-23 11:46:47 -0700 |
| commit | accb511cb37ce595d28bb3feefe5be79bc6ae303 (patch) | |
| tree | 1a1d2212c2d04b773238fb5b0c7eb9368df83b9b /src/main/stanza/ir-parser.stanza | |
| parent | aa5eb968b837a4c35c5361b5f567411766c52184 (diff) | |
| parent | 7f8758420a2a46d7cf19441e9fbd1dba82cae612 (diff) | |
Merge branch 'master' into parser
Diffstat (limited to 'src/main/stanza/ir-parser.stanza')
| -rw-r--r-- | src/main/stanza/ir-parser.stanza | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main/stanza/ir-parser.stanza b/src/main/stanza/ir-parser.stanza index 6ec0c4d2..1772d773 100644 --- a/src/main/stanza/ir-parser.stanza +++ b/src/main/stanza/ir-parser.stanza @@ -203,13 +203,19 @@ defsyntax firrtl : operators[`bit-or-reduce] = BIT-OR-REDUCE-OP operators[`bit-xor-reduce] = BIT-XOR-REDUCE-OP + defrule width : + width = (?) : + UnknownWidth() + width = (?width:#int) : + IntWidth(ut(width)) + defrule exp-form : - exp-form = (UInt (@do ?value:#int ?width:#int)) : - UIntValue(ut(value), IntWidth(ut(width))) + exp-form = (UInt (@do ?value:#int ?width:#width)) : + UIntValue(ut(value), width) exp-form = (UInt (@do ?value:#int)) : UIntValue(ut(value), UnknownWidth()) - exp-form = (SInt (@do ?value:#int ?width:#int)) : - SIntValue(ut(value), IntWidth(ut(width))) + exp-form = (SInt (@do ?value:#int ?width:#width)) : + SIntValue(ut(value), width) exp-form = (SInt (@do ?value:#int)) : SIntValue(ut(value), UnknownWidth()) exp-form = (WritePort (@do ?mem:#exp ?index:#exp ?enable:#exp)) : @@ -218,6 +224,8 @@ defsyntax firrtl : ReadPort(mem, index, UnknownType(), enable) exp-form = (Register (@do ?value:#exp ?enable:#exp)) : Register(UnknownType(),value,enable) + exp-form = (Pad (@do ?value:#exp ?width:#width)) : + Pad(value,width,UnknownType()) exp-form = (?op:#symbol (@do ?es:#exp ... ?ints:#int ...)) : println("Op-symbol is:~" % [op]) match(get?(operators, ut(op), false)) : |
