diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-03-22 08:24:54 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-03-22 08:25:18 +0100 |
commit | 8a35846d7e91f26d22cb059cfbf21d9e5645314d (patch) | |
tree | 342f6a8e2730c9f6a3997a505a6d848d0da45c49 | |
parent | 283a032e58d32a72873c647e017da3760bdedb53 (diff) | |
download | ghdl-8a35846d7e91f26d22cb059cfbf21d9e5645314d.tar.gz ghdl-8a35846d7e91f26d22cb059cfbf21d9e5645314d.tar.bz2 ghdl-8a35846d7e91f26d22cb059cfbf21d9e5645314d.zip |
testsuite/synth: add tests for previous commit.
-rw-r--r-- | testsuite/synth/dff01/dff14.vhdl | 20 | ||||
-rw-r--r-- | testsuite/synth/dff01/dff15.vhdl | 20 | ||||
-rw-r--r-- | testsuite/synth/dff01/tb_dff14.vhdl | 40 | ||||
-rw-r--r-- | testsuite/synth/dff01/tb_dff15.vhdl | 40 | ||||
-rwxr-xr-x | testsuite/synth/dff01/testsuite.sh | 11 | ||||
-rw-r--r-- | testsuite/synth/synth93/a.vhdl | 28 | ||||
-rwxr-xr-x | testsuite/synth/synth93/testsuite.sh | 8 |
7 files changed, 158 insertions, 9 deletions
diff --git a/testsuite/synth/dff01/dff14.vhdl b/testsuite/synth/dff01/dff14.vhdl new file mode 100644 index 000000000..daab02246 --- /dev/null +++ b/testsuite/synth/dff01/dff14.vhdl @@ -0,0 +1,20 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity dff14 is + port (q : out std_logic; + d : std_logic; + clk : std_logic); +end dff14; + +architecture behav of dff14 is +begin + process (clk) is + variable m : std_logic; + begin + if rising_edge (clk) then + m := d; + end if; + q <= m; + end process; +end behav; diff --git a/testsuite/synth/dff01/dff15.vhdl b/testsuite/synth/dff01/dff15.vhdl new file mode 100644 index 000000000..258c263c1 --- /dev/null +++ b/testsuite/synth/dff01/dff15.vhdl @@ -0,0 +1,20 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity dff15 is + port (q : out std_logic; + d : std_logic; + clk : std_logic); +end dff15; + +architecture behav of dff15 is +begin + process (clk) is + variable m : std_logic; + begin + if rising_edge (clk) then + m := d; + end if; + q <= not m; + end process; +end behav; diff --git a/testsuite/synth/dff01/tb_dff14.vhdl b/testsuite/synth/dff01/tb_dff14.vhdl new file mode 100644 index 000000000..61d17dfc5 --- /dev/null +++ b/testsuite/synth/dff01/tb_dff14.vhdl @@ -0,0 +1,40 @@ +entity tb_dff14 is +end tb_dff14; + +library ieee; +use ieee.std_logic_1164.all; + +architecture behav of tb_dff14 is + signal clk : std_logic; + signal din : std_logic; + signal dout : std_logic; +begin + dut: entity work.dff14 + port map ( + q => dout, + d => din, + clk => clk); + + process + procedure pulse is + begin + clk <= '0'; + wait for 1 ns; + clk <= '1'; + wait for 1 ns; + end pulse; + begin + din <= '0'; + pulse; + assert dout = '0' severity failure; + din <= '1'; + pulse; + assert dout = '1' severity failure; + pulse; + assert dout = '1' severity failure; + din <= '0'; + pulse; + assert dout = '0' severity failure; + wait; + end process; +end behav; diff --git a/testsuite/synth/dff01/tb_dff15.vhdl b/testsuite/synth/dff01/tb_dff15.vhdl new file mode 100644 index 000000000..c8c82cdd1 --- /dev/null +++ b/testsuite/synth/dff01/tb_dff15.vhdl @@ -0,0 +1,40 @@ +entity tb_dff15 is +end tb_dff15; + +library ieee; +use ieee.std_logic_1164.all; + +architecture behav of tb_dff15 is + signal clk : std_logic; + signal din : std_logic; + signal dout : std_logic; +begin + dut: entity work.dff15 + port map ( + q => dout, + d => din, + clk => clk); + + process + procedure pulse is + begin + clk <= '0'; + wait for 1 ns; + clk <= '1'; + wait for 1 ns; + end pulse; + begin + din <= '0'; + pulse; + assert dout = '1' severity failure; + din <= '1'; + pulse; + assert dout = '0' severity failure; + pulse; + assert dout = '0' severity failure; + din <= '0'; + pulse; + assert dout = '1' severity failure; + wait; + end process; +end behav; diff --git a/testsuite/synth/dff01/testsuite.sh b/testsuite/synth/dff01/testsuite.sh index d77be3b3d..d3352c4e0 100755 --- a/testsuite/synth/dff01/testsuite.sh +++ b/testsuite/synth/dff01/testsuite.sh @@ -3,15 +3,8 @@ . ../../testenv.sh for t in dff01 dff02 dff03 dff04 dff05 dff06 dff07 dff08 dff09 \ - dff10 dff11 dff12 dff13; do - analyze $t.vhdl tb_$t.vhdl - elab_simulate tb_$t - clean - - synth $t.vhdl -e $t > syn_$t.vhdl - analyze syn_$t.vhdl tb_$t.vhdl - elab_simulate tb_$t - clean + dff10 dff11 dff12 dff13 dff14 dff15; do + synth_tb $t done echo "Test successful" diff --git a/testsuite/synth/synth93/a.vhdl b/testsuite/synth/synth93/a.vhdl new file mode 100644 index 000000000..0b2b5b6b2 --- /dev/null +++ b/testsuite/synth/synth93/a.vhdl @@ -0,0 +1,28 @@ +library IEEE; +use IEEE.std_logic_1164.ALL; + +entity A is + port ( + clk : in std_logic; + input : in std_logic; + output : out std_logic + ); + +end entity A; + + +architecture RTL of A is +begin + + not_proc : process (clk) + + variable not_input : std_logic := '0'; + + begin + if rising_edge(clk) then + not_input := not input; + end if; + + output <= not_input; + end process; +end RTL; diff --git a/testsuite/synth/synth93/testsuite.sh b/testsuite/synth/synth93/testsuite.sh new file mode 100755 index 000000000..f5bc3653e --- /dev/null +++ b/testsuite/synth/synth93/testsuite.sh @@ -0,0 +1,8 @@ +#! /bin/sh + +. ../../testenv.sh + +synth_analyze a +clean + +echo "Test successful" |