From 0c655ec98435f5d9bdfb51cab215002d794c263f Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 13 Dec 2014 13:35:52 +0100 Subject: Add ticket26 testcase. --- testsuite/gna/ticket26/Makefile | 12 +++++ .../gna/ticket26/psl_test_named_statement.vhd | 55 ++++++++++++++++++++++ testsuite/gna/ticket26/testsuite.sh | 17 +++++++ 3 files changed, 84 insertions(+) create mode 100644 testsuite/gna/ticket26/Makefile create mode 100644 testsuite/gna/ticket26/psl_test_named_statement.vhd create mode 100755 testsuite/gna/ticket26/testsuite.sh diff --git a/testsuite/gna/ticket26/Makefile b/testsuite/gna/ticket26/Makefile new file mode 100644 index 0000000..b008696 --- /dev/null +++ b/testsuite/gna/ticket26/Makefile @@ -0,0 +1,12 @@ +psl_test_cover: psl_test_named_statement.vhd + ghdl -a --std=02 -fpsl psl_test_named_statement.vhd + ghdl -e --std=02 -fpsl psl_test_named_statement + ./psl_test_named_statement --stop-time=200ns + +all: clean psl_test_named_statement + +.PHONY: clean +clean: + rm -f *.cf + rm -f *.o + rm -f psl_test_named_statement \ No newline at end of file diff --git a/testsuite/gna/ticket26/psl_test_named_statement.vhd b/testsuite/gna/ticket26/psl_test_named_statement.vhd new file mode 100644 index 0000000..d99626c --- /dev/null +++ b/testsuite/gna/ticket26/psl_test_named_statement.vhd @@ -0,0 +1,55 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + + + +entity psl_test_named_statement is +end entity psl_test_named_statement; + + +architecture test of psl_test_named_statement is + + + signal s_rst_n : std_logic := '0'; + signal s_clk : std_logic := '0'; + signal s_write : std_logic; + signal s_read : std_logic; + + +begin + + + s_rst_n <= '1' after 100 ns; + s_clk <= not s_clk after 10 ns; + + + TestP : process is + begin + report "RUNNING psl_test_named_statement test case"; + report "=========================================="; + s_write <= '0'; -- named assertion should hit + s_read <= '0'; + wait until s_rst_n = '1' and rising_edge(s_clk); + s_write <= '1'; + wait until rising_edge(s_clk); + s_read <= '1'; -- assertion should hit + wait until rising_edge(s_clk); + s_write <= '0'; + s_read <= '0'; + wait; + end process TestP; + + + -- -psl statements + + -- psl default clock is rising_edge(s_clk); + + -- named statements seems to be not supported (ignored by GHDL) + -- psl RESET_CHECK : assert always not(s_rst_n) -> s_write; + + -- statements without name work + -- - psl assert always s_write -> not(s_read); + + +end architecture test; diff --git a/testsuite/gna/ticket26/testsuite.sh b/testsuite/gna/ticket26/testsuite.sh new file mode 100755 index 0000000..4d1d395 --- /dev/null +++ b/testsuite/gna/ticket26/testsuite.sh @@ -0,0 +1,17 @@ +#! /bin/sh + +. ../../testenv.sh + +GHDL_STD_FLAGS="--std=02 -fpsl" +analyze psl_test_named_statement.vhd +elab_simulate psl_test_named_statement --stop-time=200ns 2>&1 | tee psl.out + +if ! grep -q "psl assertion error" psl.out; then + echo "missing psl error" + exit 1 +fi + +clean +rm -f psl.out + +echo "Test successful" -- cgit