diff options
| author | Adam Izraelevitz | 2015-05-20 12:31:36 -0400 |
|---|---|---|
| committer | Adam Izraelevitz | 2015-05-20 12:31:36 -0400 |
| commit | 6e38684be79cf67cbfb4126b03503832914f37d2 (patch) | |
| tree | 7eca66a74ba3b9e14a4ed8e858f23799e3d6538b /src | |
| parent | 92e7da031a14df41ee0cab13a4a63b472fbdb5e1 (diff) | |
| parent | 69f08e3110c12aebf902ee8e1729469948c61011 (diff) | |
Merge pull request #9 from jackbackrack/master
fix flo writeport emission to new style
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/stanza/flo.stanza | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/main/stanza/flo.stanza b/src/main/stanza/flo.stanza index 4bab7025..bf71e2a7 100644 --- a/src/main/stanza/flo.stanza +++ b/src/main/stanza/flo.stanza @@ -145,19 +145,22 @@ defn emit-s (s:Stmt, v:List<Symbol>, top:Symbol) : val vtype = type(s) as VectorType emit-all([top "::" name(s) " = mem'" prim-width(type(vtype)) " " size(vtype) "\n"], top) (s:DefNode) : - if value(s) typeof WritePort : - val e = value(s) as WritePort - val n = firrtl-gensym(`F) - emit-all([top "::" n " = wr'" prim-width(type(e)) " " enable(e) " " mem(e) " " index(e) " " top "::" name(s) "\n"], top) - else : - emit-all([top "::" name(s) " = " maybe-mov(value(s)) value(s) "\n"], top) + emit-all([top "::" name(s) " = " maybe-mov(value(s)) value(s) "\n"], top) (s:Begin) : do(emit-s{_, v, top}, body(s)) (s:Connect) : - val n = name(loc(s) as Ref) - if contains?(v,n) : - emit-all([top "::" n " = out'" prim-width(type(loc(s))) " " exp(s) "\n"], top) - else : - emit-all([top "::" n " = " maybe-mov(exp(s)) exp(s) "\n"], top) + match(loc(s)) : + (r:Ref) : + val n = name(r) + if contains?(v,n) : + emit-all([top "::" n " = out'" prim-width(type(r)) " " exp(s) "\n"], top) + else : + emit-all([top "::" n " = " maybe-mov(exp(s)) exp(s) "\n"], top) + (w:WritePort) : + val n = firrtl-gensym(`F) + emit-all([top "::" n " = wr'" prim-width(type(w)) " " enable(w) " " mem(w) " " index(w) " " exp(s) "\n"], top) + (o) : + println-all(["CONNEcT LOC " loc(s)]) + error("Unknown Connect") (s) : s defn emit-module (m:Module) : |
