aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/flo.stanza
diff options
context:
space:
mode:
authorazidar2015-06-02 15:35:02 -0700
committerazidar2015-06-02 15:35:02 -0700
commiteb5ca3c967c929c8331fd17e04dbd9402e41e986 (patch)
tree8bd5b7e62b54376cbc6fc9a8b145a7e345d90b16 /src/main/stanza/flo.stanza
parent13228ed1bf546ad351ecb82ee094eb71e3fe4749 (diff)
Changed Core.fir so dshl wasn't huge. Fixed padding pass to preserve correct low-firrtl syntax. Generates verilog that compiles, but is not correct
Diffstat (limited to 'src/main/stanza/flo.stanza')
-rw-r--r--src/main/stanza/flo.stanza9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/stanza/flo.stanza b/src/main/stanza/flo.stanza
index bb9365ae..22b0c978 100644
--- a/src/main/stanza/flo.stanza
+++ b/src/main/stanza/flo.stanza
@@ -60,11 +60,14 @@ defn pad-widths-e (desired:Int,e:Expression) -> Expression :
if i > desired : trim(desired, e)
else : SIntValue(value(e),IntWidth(desired))
(e:Register) :
- trim-pad(desired, Register(type(e), pad-widths-e(int-width!(type(e)), value(e)), pad-widths-e(1, enable(e))))
+ val value* = pad-widths-e(desired, value(e))
+ Register(type(value*), value*, pad-widths-e(1, enable(e)))
(e:ReadPort) :
- trim-pad(desired, ReadPort(mem(e), self-pad-widths-e(index(e)), type(e), pad-widths-e(1, enable(e))))
+ if int-width!(type(e)) != desired : error("ReadPort has different width than desired")
+ else : ReadPort(mem(e), self-pad-widths-e(index(e)), type(e), pad-widths-e(1, enable(e)))
(e:WritePort) :
- trim-pad(desired, WritePort(mem(e), self-pad-widths-e(index(e)), type(e), pad-widths-e(1, enable(e))))
+ if int-width!(type(e)) != desired : error("WritePort has different width than desired")
+ else : WritePort(mem(e), self-pad-widths-e(index(e)), type(e), pad-widths-e(1, enable(e)))
(e) : error(to-string $ e)
defn pad-widths-s (s:Stmt) -> Stmt :