diff options
| author | azidar | 2016-01-23 17:15:34 -0800 |
|---|---|---|
| committer | azidar | 2016-01-23 17:15:34 -0800 |
| commit | c241ed5e77a84634c5d4729b44b07436c0472a42 (patch) | |
| tree | 17787c8f70d85f2e22683a677f6d897cf0133fb7 /src | |
| parent | 725a4a4a313555b1a60e9e8bdd4e99302e6682d0 (diff) | |
Moved inst declarations after other declarations
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/stanza/passes.stanza | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/stanza/passes.stanza b/src/main/stanza/passes.stanza index 150abe32..30527af8 100644 --- a/src/main/stanza/passes.stanza +++ b/src/main/stanza/passes.stanza @@ -2383,6 +2383,7 @@ defn emit-verilog (m:InModule) -> Module : val portdefs = Vector<Streamable>() val declares = Vector<Streamable>() + val instdeclares = Vector<Streamable>() val assigns = Vector<Streamable>() val at-clock = HashTable<Expression,Vector<Streamable>>(exp-hash) val initials = Vector<Streamable>() @@ -2432,12 +2433,12 @@ defn emit-verilog (m:InModule) -> Module : val index = WRef(`initvar,UnknownType(),ExpKind(),UNKNOWN-GENDER) add(initials,[tab WSubAccess(wref(n,t),index,UnknownType(),FEMALE), " = " rand-string(t) ";"]) defn instantiate (n:Symbol,m:Symbol,es:List<Expression>) : - add(declares,[m " " n " ("]) + add(instdeclares,[m " " n " ("]) for (e in es,i in 0 to false) do : val s = [tab "." remove-root(e) "(" lowered-name(e) ")"] - if i != length(es) - 1 : add(declares,[s ","]) - else : add(declares,s) - add(declares,[");"]) + if i != length(es) - 1 : add(instdeclares,[s ","]) + else : add(instdeclares,s) + add(instdeclares,[");"]) for e in es do : declare(`wire,lowered-name(e),type(e)) val e* = WRef(lowered-name(e),type(e),kind(e),gender(e)) @@ -2614,6 +2615,9 @@ defn emit-verilog (m:InModule) -> Module : if !empty?(declares) : for x in declares do : emit([tab x]) + + if !empty?(instdeclares) : + for x in instdeclares do : emit([tab x]) if !empty?(assigns) : for x in assigns do : emit([tab x]) |
