aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue880/psl.vhdl
diff options
context:
space:
mode:
authorPepijn de Vos <pepijndevos@gmail.com>2019-08-07 04:20:14 +0200
committertgingold <tgingold@users.noreply.github.com>2019-08-07 04:20:14 +0200
commit0331772c3ef05bad40b748542939ccafab2a9c68 (patch)
treeca0dd705571b8a031c02b6934d9e9fe85151b042 /testsuite/gna/issue880/psl.vhdl
parentce416ec62d20f1a592835efe5cbe49856d7085a2 (diff)
downloadghdl-0331772c3ef05bad40b748542939ccafab2a9c68.tar.gz
ghdl-0331772c3ef05bad40b748542939ccafab2a9c68.tar.bz2
ghdl-0331772c3ef05bad40b748542939ccafab2a9c68.zip
Add support for PSL assumptions, used in formal verification (#880)
* vhdl: make the parser understand PSL assume * assume does not actually have report according to the spec. Just a property. * add SPL assume to semantic analysis * canonicalise PSL assume * add assume to annotations * add PSL assume to simulation code * statement -> directive * add assume to translation files * update ticked24 testcase * correctly parse assume * add assume testcase * refactor chunk of duplicated code
Diffstat (limited to 'testsuite/gna/issue880/psl.vhdl')
-rw-r--r--testsuite/gna/issue880/psl.vhdl30
1 files changed, 30 insertions, 0 deletions
diff --git a/testsuite/gna/issue880/psl.vhdl b/testsuite/gna/issue880/psl.vhdl
new file mode 100644
index 000000000..a1e203f5f
--- /dev/null
+++ b/testsuite/gna/issue880/psl.vhdl
@@ -0,0 +1,30 @@
+entity psl is
+end;
+
+architecture behav of psl is
+ signal a, b, c : bit;
+ signal clk : bit;
+ subtype wf_type is bit_vector (0 to 7);
+ constant wave_a : wf_type := "10010100";
+ constant wave_b : wf_type := "01001010";
+ constant wave_c : wf_type := "00100101";
+begin
+ process
+ begin
+ for i in wf_type'range loop
+ clk <= '0';
+ wait for 1 ns;
+ a <= wave_a (i);
+ b <= wave_b (i);
+ c <= wave_c (i);
+ clk <= '1';
+ wait for 1 ns;
+ end loop;
+ wait;
+ end process;
+
+ -- psl default clock is (clk'event and clk = '1');
+ -- psl a1: assume always a |=> b;
+ -- psl a2: assume always a -> eventually! c;
+ -- psl c1: cover {a;b;c};
+end behav;