3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-06 14:13:23 +00:00

sv: support wand and wor of data types

This enables the usage of declarations of wand or wor with a base type
of logic, integer, or a typename. Note that declarations of nets with
2-state base types is still permitted, in violation of the spec.
This commit is contained in:
Zachary Snow 2021-08-13 20:51:28 -07:00 committed by Zachary Snow
parent 6b7267b849
commit d6fe6d4fb6
4 changed files with 53 additions and 10 deletions

View file

@ -0,0 +1,34 @@
module top;
wire logic wire_logic_0; assign wire_logic_0 = 0;
wire logic wire_logic_1; assign wire_logic_1 = 1;
wand logic wand_logic_0; assign wand_logic_0 = 0; assign wand_logic_0 = 1;
wand logic wand_logic_1; assign wand_logic_1 = 1; assign wand_logic_1 = 1;
wor logic wor_logic_0; assign wor_logic_0 = 0; assign wor_logic_0 = 0;
wor logic wor_logic_1; assign wor_logic_1 = 1; assign wor_logic_1 = 0;
wire integer wire_integer; assign wire_integer = 4'b1001;
wand integer wand_integer; assign wand_integer = 4'b1001; assign wand_integer = 4'b1010;
wor integer wor_integer; assign wor_integer = 4'b1001; assign wor_integer = 4'b1010;
typedef logic [3:0] typename;
wire typename wire_typename; assign wire_typename = 4'b1001;
wand typename wand_typename; assign wand_typename = 4'b1001; assign wand_typename = 4'b1010;
wor typename wor_typename; assign wor_typename = 4'b1001; assign wor_typename = 4'b1010;
always @* begin
assert (wire_logic_0 == 0);
assert (wire_logic_1 == 1);
assert (wand_logic_0 == 0);
assert (wand_logic_1 == 1);
assert (wor_logic_0 == 0);
assert (wor_logic_1 == 1);
assert (wire_integer == 4'b1001);
assert (wand_integer == 4'b1000);
assert (wor_integer == 4'b1011);
assert (wire_typename == 4'b1001);
assert (wand_typename == 4'b1000);
assert (wor_typename == 4'b1011);
end
endmodule

View file

@ -0,0 +1,5 @@
read_verilog -sv net_types.sv
hierarchy
proc
opt -full
sat -verify -prove-asserts -show-all