From 1644ed195522cd7343aaaa047e6669529907de9f Mon Sep 17 00:00:00 2001 From: azidar Date: Tue, 28 Apr 2015 17:32:19 -0700 Subject: Instances are now male. Reworked lowering pass to be sane. chisel3/ModuleVec.fir doesn't work because incorrecly generated? --- test/passes/infer-types/gcd.fir | 10 ++++----- test/passes/infer-widths/gcd.fir | 2 +- test/passes/lower-to-ground/accessor.fir | 2 +- test/passes/lower-to-ground/bundle.fir | 2 +- test/passes/lower-to-ground/instance.fir | 35 ++++++++++++++++++++++++++++++ test/passes/lower-to-ground/nested-vec.fir | 10 +++++---- test/passes/resolve-genders/accessor.fir | 12 +++++----- test/passes/resolve-genders/gcd.fir | 12 +++++----- test/passes/resolve-genders/ports.fir | 12 +++++----- 9 files changed, 67 insertions(+), 30 deletions(-) create mode 100644 test/passes/lower-to-ground/instance.fir (limited to 'test/passes') diff --git a/test/passes/infer-types/gcd.fir b/test/passes/infer-types/gcd.fir index 0b6b19fa..6e3109a5 100644 --- a/test/passes/infer-types/gcd.fir +++ b/test/passes/infer-types/gcd.fir @@ -22,14 +22,14 @@ circuit top : when gt(x, y) : ;CHECK: when gt-uu(x@, y@)@ : inst s of subtracter - ;CHECK: inst s of subtracter@, y : UInt@, flip z : UInt@, reset : UInt<1>@}> + ;CHECK: inst s of subtracter@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}> s.x := x s.y := y x := s.z - ;CHECK: s@, y : UInt@, flip z : UInt@, reset : UInt<1>@}>.reset@ := reset@ - ;CHECK: s@, y : UInt@, flip z : UInt@, reset : UInt<1>@}>.x@ := x@ - ;CHECK: s@, y : UInt@, flip z : UInt@, reset : UInt<1>@}>.y@ := y@ - ;CHECK: x@ := s@, y : UInt@, flip z : UInt@, reset : UInt<1>@}>.z@ + ;CHECK: s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.reset@ := reset@ + ;CHECK: s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.x@ := x@ + ;CHECK: s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.y@ := y@ + ;CHECK: x@ := s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.z@ else : inst s2 of subtracter s2.x := x diff --git a/test/passes/infer-widths/gcd.fir b/test/passes/infer-widths/gcd.fir index 3cd5c542..435540ae 100644 --- a/test/passes/infer-widths/gcd.fir +++ b/test/passes/infer-widths/gcd.fir @@ -1,4 +1,4 @@ -; RUN: firrtl -i %s -o %s.flo -x abcdefghijkl -p cd | tee %s.out | FileCheck %s +; RUN: firrtl -i %s -o %s.flo -x abcdefghijkl -p ctd | tee %s.out | FileCheck %s ;CHECK: Infer Widths circuit top : diff --git a/test/passes/lower-to-ground/accessor.fir b/test/passes/lower-to-ground/accessor.fir index 2b73a8e9..f15980b3 100644 --- a/test/passes/lower-to-ground/accessor.fir +++ b/test/passes/lower-to-ground/accessor.fir @@ -1,4 +1,4 @@ -; RUN: firrtl -i %s -o %s.flo -x abcdefgh -p c | tee %s.out | FileCheck %s +; RUN: firrtl -i %s -o %s.flo -x abcdefgh -p cd | tee %s.out | FileCheck %s ; CHECK: Lower To Ground circuit top : diff --git a/test/passes/lower-to-ground/bundle.fir b/test/passes/lower-to-ground/bundle.fir index ca676ba5..722d569c 100644 --- a/test/passes/lower-to-ground/bundle.fir +++ b/test/passes/lower-to-ground/bundle.fir @@ -1,4 +1,4 @@ -; RUN: firrtl -i %s -o %s.flo -x abcdefgh -p c | tee %s.out | FileCheck %s +; RUN: firrtl -i %s -o %s.flo -x abcdefgh -p cd | tee %s.out | FileCheck %s circuit top : module m : diff --git a/test/passes/lower-to-ground/instance.fir b/test/passes/lower-to-ground/instance.fir new file mode 100644 index 00000000..4cd9f0cc --- /dev/null +++ b/test/passes/lower-to-ground/instance.fir @@ -0,0 +1,35 @@ +; RUN: firrtl -i %s -o %s.flo -x abcdefgh -p cdg | tee %s.out | FileCheck %s + +circuit top : + module source : + output data : UInt<16> + input ready : UInt<1> + data := UInt(16) + module sink : + input data : UInt<16> + output ready : UInt<1> + module top: + wire connect : { data : UInt<16>, flip ready: UInt<1> } + wire connect2 : { flip data : UInt<16>, ready: UInt<1> } + inst src of source + inst snk of sink + connect := src + connect2 := snk + + +; CHECK: Resolve Genders + +; CHECK: connect@ := src@ +; CHECK: connect2@ := snk@ + +; CHECK: Finished Resolve Genders + + +; CHECK: Lower To Ground + +; CHECK: connect$data@ := src@.data@ +; CHECK: src@.ready@ := connect$ready@ +; CHECK: snk@.data@ := connect2$data@ +; CHECK: connect2$ready@ := snk@.ready@ + +; CHECK: Finished Lower To Ground diff --git a/test/passes/lower-to-ground/nested-vec.fir b/test/passes/lower-to-ground/nested-vec.fir index 1e9c8f9f..95b125f6 100644 --- a/test/passes/lower-to-ground/nested-vec.fir +++ b/test/passes/lower-to-ground/nested-vec.fir @@ -5,6 +5,7 @@ circuit top : module q : wire i : UInt wire j : { x : UInt<32>, flip y : UInt<32> } + wire k : { x : UInt<32>, y : UInt<32> } wire a : { x : UInt<32>, flip y : UInt<32> }[2] ; CHECK: wire a$0$x : UInt<32> @@ -19,16 +20,17 @@ circuit top : ; CHECK: (a$0$y a$1$y)[i] := b$y j := b - mem m : { x : UInt<32>, flip y : UInt<32> }[2] + mem m : { x : UInt<32>, y : UInt<32> }[2] ; CHECK: mem m$x : UInt<32>[2] ; CHECK: mem m$y : UInt<32>[2] accessor c = m[i] ; MALE ; CHECK: accessor c$x = m$x[i] ; CHECK: accessor c$y = m$y[i] - ; CHECK: c$x := j$x - ; CHECK: j$y := c$y - c := j + + c := k + ; CHECK: c$x := k$x + ; CHECK: c$y := k$y ; CHECK: Finished Lower To Ground diff --git a/test/passes/resolve-genders/accessor.fir b/test/passes/resolve-genders/accessor.fir index 8cae8ba4..caf7d4b3 100644 --- a/test/passes/resolve-genders/accessor.fir +++ b/test/passes/resolve-genders/accessor.fir @@ -5,15 +5,15 @@ circuit top : module top : wire m : UInt<32>[10][10][10] wire i : UInt - accessor a = m[i] ;CHECK: accessor a = m@[i@]@ - accessor b = a[i] ;CHECK: accessor b = a@[i@]@ - accessor c = b[i] ;CHECK: accessor c = b@[i@]@ + accessor a = m[i] ;CHECK: accessor a = m@[i@]@ + accessor b = a[i] ;CHECK: accessor b = a@[i@]@ + accessor c = b[i] ;CHECK: accessor c = b@[i@]@ wire j : UInt j := c - accessor x = m[i] ;CHECK: accessor x = m@[i@]@ - accessor y = x[i] ;CHECK: accessor y = x@[i@]@ - accessor z = y[i] ;CHECK: accessor z = y@[i@]@ + accessor x = m[i] ;CHECK: accessor x = m@[i@]@ + accessor y = x[i] ;CHECK: accessor y = x@[i@]@ + accessor z = y[i] ;CHECK: accessor z = y@[i@]@ z := j ; CHECK: Finished Resolve Genders diff --git a/test/passes/resolve-genders/gcd.fir b/test/passes/resolve-genders/gcd.fir index b16c9b66..2f7aae73 100644 --- a/test/passes/resolve-genders/gcd.fir +++ b/test/passes/resolve-genders/gcd.fir @@ -7,7 +7,7 @@ circuit top : input y : UInt output z : UInt z := sub-wrap(x, y) - ;CHECK: z@ := sub-wrap-uu(x@, y@) + ;CHECK: z@ := sub-wrap-uu(x@, y@) module gcd : input a : UInt<16> input b : UInt<16> @@ -20,15 +20,15 @@ circuit top : on-reset x := UInt(0) on-reset y := UInt(42) when gt(x, y) : - ;CHECK: when gt-uu(x@, y@) : + ;CHECK: when gt-uu(x@, y@) : inst s of subtracter - ;CHECK: inst s of subtracter@ + ;CHECK: inst s of subtracter@ s.x := x s.y := y x := s.z - ;CHECK: s@.x@ := x@ - ;CHECK: s@.y@ := y@ - ;CHECK: x@ := s@.z@ + ;CHECK: s@.x@ := x@ + ;CHECK: s@.y@ := y@ + ;CHECK: x@ := s@.z@ else : inst s2 of subtracter s2.x := x diff --git a/test/passes/resolve-genders/ports.fir b/test/passes/resolve-genders/ports.fir index 3155dbcf..9bc67c21 100644 --- a/test/passes/resolve-genders/ports.fir +++ b/test/passes/resolve-genders/ports.fir @@ -11,11 +11,11 @@ circuit top : output ready : UInt<1> module top: wire connect : { data : UInt<16>, flip ready: UInt<1> } - inst src of source ;CHECK: inst src of source@ - inst snk of sink ;CHECK: inst snk of sink@ - connect.data := src.data ;CHECK: connect@.data@ := src@.data@ - src.ready := connect.ready ;CHECK: src@.ready@ := connect@.ready@ - snk.data := connect.data ;CHECK: snk@.data@ := connect@.data@ - connect.ready := snk.ready ;CHECK: connect@.ready@ := snk@.ready@ + inst src of source ;CHECK: inst src of source@ + inst snk of sink ;CHECK: inst snk of sink@ + connect.data := src.data ;CHECK: connect@.data@ := src@.data@ + src.ready := connect.ready ;CHECK: src@.ready@ := connect@.ready@ + snk.data := connect.data ;CHECK: snk@.data@ := connect@.data@ + connect.ready := snk.ready ;CHECK: connect@.ready@ := snk@.ready@ ; CHECK: Finished Resolve Genders -- cgit v1.2.3