aboutsummaryrefslogtreecommitdiff
path: root/test/passes/lower-to-ground/accessor.fir
blob: 4d55d0f61d5124f90e6247625b389a58dcf4add6 (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
; RUN: firrtl -i %s -o %s.v -X verilog -p cd 2>&1 | tee %s.out | FileCheck %s

; CHECK: Lower To Ground
circuit top :
   module top :
      input clk : Clock
      wire i : UInt<2>
      wire j : UInt<32>

      wire a : UInt<32>[4]
      ; CHECK: wire a{{[_$]+}}0 : UInt<32>
      ; CHECK: wire a{{[_$]+}}1 : UInt<32>
      ; CHECK: wire a{{[_$]+}}2 : UInt<32>
      ; CHECK: wire a{{[_$]+}}3 : UInt<32>

      infer accessor b = a[i]
      ; CHECK: indexer b = (a{{[_$]+}}0 a{{[_$]+}}1 a{{[_$]+}}2 a{{[_$]+}}3)[i] : UInt<32>
      j := b

      infer accessor c = a[i]
      ; CHECK: indexer (a{{[_$]+}}0 a{{[_$]+}}1 a{{[_$]+}}2 a{{[_$]+}}3)[i] = c : UInt<32>
      c := j
      
      cmem p : UInt<32>[4],clk
      infer accessor t = p[i]
      ; CHECK: read accessor t = p[i]
      j := t
      infer accessor r = p[i]
      ; CHECK: write accessor r = p[i]
      r := j

; CHECK: Finished Lower To Ground