diff options
| author | azidar | 2015-08-19 11:11:51 -0700 |
|---|---|---|
| committer | azidar | 2015-08-19 11:12:27 -0700 |
| commit | 4d4d18a6f358a7d0a227dcd999525eb57432eba0 (patch) | |
| tree | 1d76e3c1540f2b984584bdf90afbbf77ec67519d /test | |
| parent | 51411657aee01568519811659afd0316b6db346f (diff) | |
Fixed width inference bug where constraints were propagating backwards.
Updated tests to match. #29.
Diffstat (limited to 'test')
| -rw-r--r-- | test/passes/infer-types/bundle.fir | 4 | ||||
| -rw-r--r-- | test/passes/to-verilog/shr.fir | 30 |
2 files changed, 32 insertions, 2 deletions
diff --git a/test/passes/infer-types/bundle.fir b/test/passes/infer-types/bundle.fir index 98e48c0c..c24419b9 100644 --- a/test/passes/infer-types/bundle.fir +++ b/test/passes/infer-types/bundle.fir @@ -20,10 +20,10 @@ circuit top : a[8] := UInt(1) a[9] := UInt(1) node b = a[2] ;CHECK: node b = a@<t:UInt<3>[10]@<t:UInt>>[2]@<t:UInt> - read accessor c = a[UInt(3)] ;CHECK: read accessor c = a@<t:UInt<3>[10]@<t:UInt>>[UInt("h3")] + read accessor c = a[UInt(3)] ;CHECK: read accessor c = a@<t:UInt<3>[10]@<t:UInt>>[UInt("h3")@<t:UInt>] ; CHECK: Finished Infer Types ; CHECK: Resolve Genders -; CHECK: read accessor c = a@<t:UInt<3>[10]@<t:UInt>>[UInt("h3")] +; CHECK: read accessor c = a@<t:UInt<3>[10]@<t:UInt>>[UInt("h3")@<t:UInt>] ; CHECK: Finished Resolve Genders diff --git a/test/passes/to-verilog/shr.fir b/test/passes/to-verilog/shr.fir new file mode 100644 index 00000000..f710dc51 --- /dev/null +++ b/test/passes/to-verilog/shr.fir @@ -0,0 +1,30 @@ +; RUN: firrtl -i %s -o %s.v -X verilog -p cTd 2>&1 | tee %s.out | FileCheck %s + +;CHECK: Infer Widths +;CHECK: node s1_addr = cat(dtlb<t:{ resp$ppn : UInt<20><t:UInt<20>>}>.resp$ppn<t:UInt<20>>, bits(s1_req$addr<t:UInt<40>>, 11, 0)<t:UInt<12>>)<t:UInt<32>> +;CHECK: Finished Infer Widths + +circuit HellaCache : + module TLB_60 : + output resp : {ppn : UInt<20>} + resp.ppn := UInt<1>("h00") + + module HellaCache : + input clock : Clock + input reset : UInt<1> + + inst dtlb of TLB_60 + reg s1_req : {addr : UInt<40>}, clock, reset + reg s2_req : {addr : UInt<40>}, clock, reset + reg s1_clk_en : UInt<1>, clock, reset + + node T_928 = bits(s1_req.addr, 11, 0) + node s1_addr = cat(dtlb.resp.ppn, T_928) + when s1_clk_en : + s2_req.addr := s1_addr + + s1_req.addr := UInt<?>(0) + s1_clk_en := UInt<?>(0) + + wire foo : UInt<28> + foo := shr(s1_addr, 3) |
