forked from llvm/circt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
standards-vlog.mlir
38 lines (32 loc) · 1.13 KB
/
standards-vlog.mlir
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
// REQUIRES: questa
// RUN: firtool --verilog %s > %t1.1995.v
// RUN: firtool --verilog %s > %t1.2001.v
// RUN: firtool --verilog %s > %t1.2005.v
// RUN: firtool --verilog %s > %t1.2005.sv
// RUN: firtool --verilog %s > %t1.2009.sv
// RUN: firtool --verilog %s > %t1.2012.sv
// RUN: firtool --verilog %s> %t1.2017.sv
// RUN: vlog -lint %t1.1995.v -vlog95compat || true
// RUN: vlog -lint %t1.2001.v -vlog01compat || true
// RUN: vlog -lint %t1.2005.v || true
// RUN: vlog -lint -sv -sv05compat %t1.2005.sv
// RUN: vlog -lint -sv -sv09compat %t1.2009.sv
// RUN: vlog -lint -sv -sv12compat %t1.2012.sv
// RUN: vlog -lint -sv -sv17compat %t1.2017.sv
hw.module @top(in %clock : i1, in %reset: i1,
in %a: i4,
in %s: !hw.struct<foo: i2, bar: i4>,
in %parray: !hw.array<10xi4>,
in %uarray: !hw.uarray<16xi8>,
out r0: i4,
out r1: i4) {
%0 = comb.or %a, %a : i4
%1 = comb.and %a, %a : i4
sv.always posedge %clock, negedge %reset {
}
sv.alwaysff(posedge %clock) {
%fd = hw.constant 0x80000002 : i32
sv.fwrite %fd, "Yo\n"
}
hw.output %0, %1 : i4, i4
}