aboutsummaryrefslogtreecommitdiff
path: root/test/chirrtl/wacc-wdc.fir
blob: b66799b36a165ccff3a8ee71d595dd7acf8891c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
circuit top :
   module top :
      input clk : Clock
      wire p : UInt
      wire q : UInt
      cmem m : {a:UInt<4>,b:UInt<4>}[10]
      p <= UInt(1)
      q <= UInt(1)
      wire x : {a:UInt<4>,b:UInt<4>}
      x.a <= UInt(1)
      x.b <= UInt(1)
      when p :
         write mport a = m[UInt(3)],clk
         when q :
            a <= x


; CHECK: Remove CHIRRTL

; CHECK: circuit top :
; CHECK:    module top :
; CHECK:       input clk : Clock
; CHECK:       wire p : UInt
; CHECK:       wire q : UInt
; CHECK:       mem m :          
; CHECK:          data-type => { a : UInt<4>,  b : UInt<4>}
; CHECK:          depth => 10
; CHECK:          write-latency => 1
; CHECK:          read-latency => 0
; CHECK:          writer => a
; CHECK:       poison GEN_0 : UInt<4>
; CHECK:       poison GEN_1 : { a : UInt<4>,  b : UInt<4>}
; CHECK:       m.a.addr <= GEN_0
; CHECK:       m.a.clk <= clk
; CHECK:       m.a.en <= UInt("h0")
; CHECK:       m.a.data <= GEN_1
; CHECK:       m.a.mask.a <= UInt("h0")
; CHECK:       m.a.mask.b <= UInt("h0")
; CHECK:       p <= UInt("h1")
; CHECK:       q <= UInt("h1")
; CHECK:       wire x : { a : UInt<4>,  b : UInt<4>}
; CHECK:       x.a <= UInt("h1")
; CHECK:       x.b <= UInt("h1")
; CHECK:       when p :
; CHECK:          m.a.addr <= UInt("h3")
; CHECK:          m.a.en <= UInt("h1")
; CHECK:          when q :
; CHECK:             m.a.data <= x
; CHECK:             m.a.mask.a <= UInt("h1")
; CHECK:             m.a.mask.b <= UInt("h1")   

; CHECK: Finished Remove CHIRRTL
; CHECK: Done!