aboutsummaryrefslogtreecommitdiffstats
path: root/tests/verific/enum_values.sv
diff options
context:
space:
mode:
Diffstat (limited to 'tests/verific/enum_values.sv')
-rw-r--r--tests/verific/enum_values.sv37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/verific/enum_values.sv b/tests/verific/enum_values.sv
new file mode 100644
index 000000000..69b53fd8e
--- /dev/null
+++ b/tests/verific/enum_values.sv
@@ -0,0 +1,37 @@
+typedef enum {
+ WA, WB, WC, WD
+} wide_state_t;
+
+typedef enum logic [1:0] {
+ A = 3, B = 0, C, D
+} state_t;
+
+module top(input clk, output z);
+
+ wide_state_t wide_state = WA;
+
+ always @(posedge clk) begin
+ case (wide_state)
+ WA: wide_state <= WB;
+ WB: wide_state <= WC;
+ WC: wide_state <= WD;
+ default: wide_state <= WA;
+ endcase
+ end
+
+ (* some_attribute = shortint'(42) *)
+ (* another_attribute = -1 *)
+ state_t state = A;
+
+ always @(posedge clk) begin
+ case (state)
+ A: state <= B;
+ B: state <= C;
+ C: state <= D;
+ default: state <= A;
+ endcase
+ end
+
+ assign z = (wide_state == WB) ^ (state == B);
+
+endmodule