From 7d08b9a1486fef0459481f6e542464a29fbe1db5 Mon Sep 17 00:00:00 2001 From: Adam Izraelevitz Date: Mon, 17 Oct 2016 15:10:12 -0700 Subject: Add fixed point type (#322) * WIP: Adding FixedType to Firrtl proper Got simple example running through width inference Checks should be ok Need to look into FixedLiteral more * Added simple test for fixed types * Added asFixedPoint to primops * Added tail case for FixedType * Added ConvertFixedToSInt.scala Added pass to MiddleToLowerFirrtl transform * Replace AsFixedType with AsSInt in fixed removal * Bugfix: constant from asFixed not deleted * Added unit test for bulk connect * Fixed partial connect bug #241 * Fixed missing case for FixedPoint in legalizeConnect * Add FixedMathSpec that demonstrates some problems with FixedPointMath * Fixed test and ConvertToSInt to pass. Negative binary points not easily supported, needs much more time to implement. * Refactored checking neg widths Make checking for negative binary points easier * Added tests for inferring many FixedType ops shl, shr, cat, bits, head, tail, setbp, shiftbp * Handle bpshl, bpshr, bpset in ConvertFixedToSInt Changed name from shiftbp -> bpshl, bpshr Change name from setbp -> bpset Added more tests * Added set binary point test that fails * Added simple test for zero binary point * gitignore fixes for antlr intermediate dir and intellij dir * removed unused imports retool the fixed point with zero binary point test * simplified example of inability to set binary point to zero * Temporary fix for zero-width binary point This fix allows for all widths to be zero, but since this is a feature I am working on next, I'm not going to bother with a more stringent check. * change version for dsp tools * Removed extra temporary file * Fixed merge bug * Fixed another merge bug * Removed commented out/unrelated files * Removed snake case --- src/main/antlr4/FIRRTL.g4 | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/main/antlr4') diff --git a/src/main/antlr4/FIRRTL.g4 b/src/main/antlr4/FIRRTL.g4 index 1232b65f..4ceed9f0 100644 --- a/src/main/antlr4/FIRRTL.g4 +++ b/src/main/antlr4/FIRRTL.g4 @@ -78,6 +78,7 @@ dir type : 'UInt' ('<' IntLit '>')? | 'SInt' ('<' IntLit '>')? + | 'Fixed' ('<' IntLit '>')? ('<' '<' IntLit '>' '>')? | 'Clock' | 'Analog' ('<' IntLit '>')? | '{' field* '}' // Bundle @@ -274,6 +275,10 @@ primop | 'bits(' | 'head(' | 'tail(' + | 'asFixedPoint(' + | 'bpshl(' + | 'bpshr(' + | 'bpset(' ; /*------------------------------------------------------------------ -- cgit v1.2.3