mirror of https://github.com/llvm/circt.git
30 lines
904 B
MLIR
30 lines
904 B
MLIR
// RUN: circt-opt --lower-sim-to-sv %s | FileCheck %s
|
|
|
|
// CHECK-LABEL: hw.module @finish
|
|
hw.module @finish(in %clock : !seq.clock, in %cond : i1) {
|
|
// CHECK: [[CLK_SV:%.+]] = seq.from_clock %clock
|
|
// CHECK-NEXT: sv.ifdef @SYNTHESIS {
|
|
// CHECK-NEXT: } else {
|
|
// CHECK-NEXT: sv.always posedge [[CLK_SV]] {
|
|
// CHECK-NEXT: sv.if %cond {
|
|
// CHECK-NEXT: sv.finish 1
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: }
|
|
sim.finish %clock, %cond
|
|
}
|
|
|
|
// CHECK-LABEL: hw.module @fatal
|
|
hw.module @fatal(in %clock : !seq.clock, in %cond : i1) {
|
|
// CHECK: [[CLK_SV:%.+]] = seq.from_clock %clock
|
|
// CHECK-NEXT: sv.ifdef @SYNTHESIS {
|
|
// CHECK-NEXT: } else {
|
|
// CHECK-NEXT: sv.always posedge [[CLK_SV]] {
|
|
// CHECK-NEXT: sv.if %cond {
|
|
// CHECK-NEXT: sv.fatal 1
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: }
|
|
sim.fatal %clock, %cond
|
|
}
|