@@ -6,9 +6,12 @@ hw.module @simple_triggered(in %clock : !seq.clock) {
66 " some.user" () : () -> ()
77 }
88
9- // CHECK: %[[CLOCK:.*]] = seq.from_clock %clock
10- // CHECK-NEXT: sv.always posedge %[[CLOCK]] {
11- // CHECK-NEXT: "some.user"() : () -> ()
9+ // CHECK: sv.ifdef @SYNTHESIS {
10+ // CHECK-NEXT: } else {
11+ // CHECK-NEXT: %[[CLOCK:.*]] = seq.from_clock %clock
12+ // CHECK-NEXT: sv.always posedge %[[CLOCK]] {
13+ // CHECK-NEXT: "some.user"() : () -> ()
14+ // CHECK-NEXT: }
1215 // CHECK-NEXT: }
1316}
1417
@@ -19,34 +22,43 @@ hw.module @conditional_triggered(
1922 " some.user" () : () -> ()
2023 }
2124
22- // CHECK: %[[CLOCK:.*]] = seq.from_clock %clock
23- // CHECK-NEXT: sv.always posedge %[[CLOCK]] {
24- // CHECK-NEXT: sv.if %en {
25- // CHECK-NEXT: "some.user"() : () -> ()
25+ // CHECK: sv.ifdef @SYNTHESIS {
26+ // CHECK-NEXT: } else {
27+ // CHECK-NEXT: %[[CLOCK:.*]] = seq.from_clock %clock
28+ // CHECK-NEXT: sv.always posedge %[[CLOCK]] {
29+ // CHECK-NEXT: sv.if %en {
30+ // CHECK-NEXT: "some.user"() : () -> ()
31+ // CHECK-NEXT: }
2632 // CHECK-NEXT: }
2733 // CHECK-NEXT: }
2834}
2935
3036// CHECK-LABEL: hw.module @multiple_triggered
3137hw.module @multiple_triggered (
32- in %clock : !seq.clock , in %en : i1 ) {
38+ in %clock : !seq.clock ) {
3339
3440 sim.triggered %clock {
3541 " some.user" () : () -> ()
3642 }
3743
38- sim.triggered %clock if %en {
44+ %late_cond = " some.value" () : () -> i1
45+
46+ sim.triggered %clock if %late_cond {
3947 " some.user" () : () -> ()
4048 }
4149
42- // CHECK: %[[CLOCK0:.*]] = seq.from_clock %clock
43- // CHECK-NEXT: sv.always posedge %[[CLOCK0]] {
44- // CHECK-NEXT: "some.user"() : () -> ()
45- // CHECK-NEXT: }
46- // CHECK: %[[CLOCK1:.*]] = seq.from_clock %clock
47- // CHECK-NEXT: sv.always posedge %[[CLOCK1]] {
48- // CHECK-NEXT: sv.if %en {
50+ // CHECK: %[[LATE:.*]] = "some.value"() : () -> i1
51+ // CHECK-NEXT: sv.ifdef @SYNTHESIS {
52+ // CHECK-NEXT: } else {
53+ // CHECK-NEXT: %[[CLOCK0:.*]] = seq.from_clock %clock
54+ // CHECK-NEXT: sv.always posedge %[[CLOCK0]] {
4955 // CHECK-NEXT: "some.user"() : () -> ()
5056 // CHECK-NEXT: }
57+ // CHECK-NEXT: %[[CLOCK1:.*]] = seq.from_clock %clock
58+ // CHECK-NEXT: sv.always posedge %[[CLOCK1]] {
59+ // CHECK-NEXT: sv.if %[[LATE]] {
60+ // CHECK-NEXT: "some.user"() : () -> ()
61+ // CHECK-NEXT: }
62+ // CHECK-NEXT: }
5163 // CHECK-NEXT: }
5264}
0 commit comments