aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-07-22 16:35:46 +0200
committerClifford Wolf <clifford@clifford.at>2017-07-22 16:35:46 +0200
commit84f15260b5f3d328c75ee385d2fdc2861b4e8f59 (patch)
tree87917cc11e9d0d69751ffaed5836ed970d532e26 /tests
parent5be535517cfe9ce4c664e95eb02684305fc268e3 (diff)
downloadyosys-84f15260b5f3d328c75ee385d2fdc2861b4e8f59.tar.gz
yosys-84f15260b5f3d328c75ee385d2fdc2861b4e8f59.tar.bz2
yosys-84f15260b5f3d328c75ee385d2fdc2861b4e8f59.zip
Add more SVA test cases for future Verific work
Diffstat (limited to 'tests')
-rw-r--r--tests/sva/basic02.sv2
-rw-r--r--tests/sva/basic04.sv6
-rw-r--r--tests/sva/basic04.vhd26
-rw-r--r--tests/sva/basic05.sv15
-rw-r--r--tests/sva/basic05.vhd26
5 files changed, 74 insertions, 1 deletions
diff --git a/tests/sva/basic02.sv b/tests/sva/basic02.sv
index 6100c50ae..cf2d72ae7 100644
--- a/tests/sva/basic02.sv
+++ b/tests/sva/basic02.sv
@@ -13,4 +13,4 @@ module top_properties (input logic clock, read, write, ready);
a_wr: assert property ( @(posedge clock) write |-> ready );
endmodule
-bind top top_properties inst (.*);
+bind top top_properties properties_inst (.*);
diff --git a/tests/sva/basic04.sv b/tests/sva/basic04.sv
new file mode 100644
index 000000000..6f02f3c19
--- /dev/null
+++ b/tests/sva/basic04.sv
@@ -0,0 +1,6 @@
+module top_properties (input logic clock, read, write, ready);
+ a_rw: assert property ( @(posedge clock) !(read && write) );
+ a_wr: assert property ( @(posedge clock) write |-> ready );
+endmodule
+
+bind top top_properties properties_inst (.*);
diff --git a/tests/sva/basic04.vhd b/tests/sva/basic04.vhd
new file mode 100644
index 000000000..889bef0d2
--- /dev/null
+++ b/tests/sva/basic04.vhd
@@ -0,0 +1,26 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity top is
+ port (
+ clock : in std_logic;
+ ctrl : in std_logic;
+ x : out std_logic
+ );
+end entity;
+
+architecture rtl of top is
+ signal read : std_logic;
+ signal write : std_logic;
+ signal ready : std_logic;
+begin
+ process (clock) begin
+ if (rising_edge(clock)) then
+ read <= not ctrl;
+ write <= ctrl;
+ ready <= write;
+ end if;
+ end process;
+
+ x <= read xor write xor ready;
+end architecture;
diff --git a/tests/sva/basic05.sv b/tests/sva/basic05.sv
new file mode 100644
index 000000000..03854aaac
--- /dev/null
+++ b/tests/sva/basic05.sv
@@ -0,0 +1,15 @@
+module top (input logic clock, ctrl);
+ logic read, write, ready;
+
+ demo uut (
+ .clock(clock),
+ .ctrl(ctrl)
+ );
+
+ assign read = uut.read;
+ assign write = uut.write;
+ assign ready = uut.ready;
+
+ a_rw: assert property ( @(posedge clock) !(read && write) );
+ a_wr: assert property ( @(posedge clock) write |-> ready );
+endmodule
diff --git a/tests/sva/basic05.vhd b/tests/sva/basic05.vhd
new file mode 100644
index 000000000..930f1ba22
--- /dev/null
+++ b/tests/sva/basic05.vhd
@@ -0,0 +1,26 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity demo is
+ port (
+ clock : in std_logic;
+ ctrl : in std_logic;
+ x : out std_logic
+ );
+end entity;
+
+architecture rtl of demo is
+ signal read : std_logic;
+ signal write : std_logic;
+ signal ready : std_logic;
+begin
+ process (clock) begin
+ if (rising_edge(clock)) then
+ read <= not ctrl;
+ write <= ctrl;
+ ready <= write;
+ end if;
+ end process;
+
+ x <= read xor write xor ready;
+end architecture;