blob: 32dfd33c33dd40472353f65c210c7a77b0b8537b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
library ieee;
use ieee.std_logic_1164.all;
entity tb_dut is
port(
clk_in: in std_logic;
dut1_a1_in: in std_logic;
dut1_b1_out: out std_logic;
dut1_a2_in: in std_logic;
dut1_b2_out: out std_logic;
dut2_a1_in: in std_logic;
dut2_b1_out: out std_logic;
dut2_a2_in: in std_logic;
dut2_b2_out: out std_logic
);
end;
architecture tb of tb_dut is
begin
dut_1: entity work.dut
port map(
clk_in => clk_in,
a1_in => dut1_a1_in,
b1_out => dut1_b1_out,
a2_in => dut1_a2_in,
b2_out => dut1_b2_out
);
dut_2: entity work.dut
port map(
clk_in => clk_in,
a1_in => dut2_a1_in,
b1_out => dut2_b1_out,
a2_in => dut2_a2_in,
b2_out => dut2_b2_out
);
default clock is rising_edge(clk_in);
-- stability_1: assert
-- {(dut1_a1_in = dut2_a1_in and dut1_a2_in = dut2_a2_in)[+];
-- {(dut1_a1_in = dut2_a1_in and dut1_a2_in = dut2_a2_in)[*1 to inf];
-- dut1_a1_in /= dut2_a1_in and dut1_a2_in = dut2_a2_in} |->
-- {dut1_b1_out = dut2_b1_out}!;
stability_2: assert
-- {(dut1_a1_in = dut2_a1_in and dut1_a2_in = dut2_a2_in)[+];
{(dut1_a1_in = dut2_a1_in and dut1_a2_in = dut2_a2_in)[*1 to inf];
dut1_a1_in = dut2_a1_in and dut1_a2_in /= dut2_a2_in} |->
{dut1_b2_out = dut2_b2_out}!;
end;
|