lustrec-tests / vhdl_json / vhdl_files / 2-exportOK / ghdl / ghdl / testsuite / vests / vhdl-93 / billowitch / compliant / tc1911.vhd @ 3fd18385
History | View | Annotate | Download (4.35 KB)
1 | 3fd18385 | Arnaud Dieumegard | |
---|---|---|---|
2 | -- Copyright (C) 2001 Bill Billowitch. |
||
3 | |||
4 | -- Some of the work to develop this test suite was done with Air Force |
||
5 | -- support. The Air Force and Bill Billowitch assume no |
||
6 | -- responsibilities for this software. |
||
7 | |||
8 | -- This file is part of VESTs (Vhdl tESTs). |
||
9 | |||
10 | -- VESTs is free software; you can redistribute it and/or modify it |
||
11 | -- under the terms of the GNU General Public License as published by the |
||
12 | -- Free Software Foundation; either version 2 of the License, or (at |
||
13 | -- your option) any later version. |
||
14 | |||
15 | -- VESTs is distributed in the hope that it will be useful, but WITHOUT |
||
16 | -- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
||
17 | -- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
||
18 | -- for more details. |
||
19 | |||
20 | -- You should have received a copy of the GNU General Public License |
||
21 | -- along with VESTs; if not, write to the Free Software Foundation, |
||
22 | -- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
||
23 | |||
24 | -- --------------------------------------------------------------------- |
||
25 | -- |
||
26 | -- $Id: tc1911.vhd,v 1.2 2001-10-26 16:29:43 paw Exp $ |
||
27 | -- $Revision: 1.2 $ |
||
28 | -- |
||
29 | -- --------------------------------------------------------------------- |
||
30 | |||
31 | ENTITY c07s02b00x00p09n02i01911ent IS |
||
32 | END c07s02b00x00p09n02i01911ent; |
||
33 | |||
34 | ARCHITECTURE c07s02b00x00p09n02i01911arch OF c07s02b00x00p09n02i01911ent IS |
||
35 | |||
36 | BEGIN |
||
37 | TESTING: PROCESS |
||
38 | variable ValueI1, SameValueI1, DifferentValueI1 : INTEGER; |
||
39 | variable ValueI2, SameValueI2, DifferentValueI2 : INTEGER; |
||
40 | variable ValueI3, SameValueI3, DifferentValueI3 : INTEGER; |
||
41 | variable ValueI4, SameValueI4, DifferentValueI4 : INTEGER; |
||
42 | BEGIN |
||
43 | -- adding operators. |
||
44 | -- Cannot compare the "&" operator against either the "+" or |
||
45 | -- "-" operators. The only two we can compare are the "+" |
||
46 | -- and the "-" operators. |
||
47 | -- "+", "-" |
||
48 | ValueI1 := 14 + 1 - 9 - 7; |
||
49 | SameValueI1 := ((14 + 1) - 9) - 7; |
||
50 | DifferentValueI1:= 14 + (1 - (9 - 7)); |
||
51 | assert (ValueI1 = SameValueI1) |
||
52 | report "Values of same precedence are not evaluated left to right."; |
||
53 | assert (ValueI1 /= DifferentValueI1) |
||
54 | report "Values of same precedence are not evaluated left to right."; |
||
55 | |||
56 | -- multiplying operators. |
||
57 | -- "*", "/" |
||
58 | ValueI2 := 14 / 7 * 3; |
||
59 | SameValueI2 := (14 / 7) * 3; -- 6 |
||
60 | DifferentValueI2 := 14 / (7 * 3); -- 0 |
||
61 | assert (ValueI2 = SameValueI2) |
||
62 | report "Values of same precedence are not evaluated left to right."; |
||
63 | assert (ValueI2 /= DifferentValueI2) |
||
64 | report "Values of same precedence are not evaluated left to right."; |
||
65 | |||
66 | -- "*", "mod" |
||
67 | ValueI3 := 14 mod 7 * 3; |
||
68 | SameValueI3 := (14 mod 7) * 3; -- 0 |
||
69 | DifferentValueI3 := 14 mod (7 * 3); -- 14 |
||
70 | assert (ValueI3 = SameValueI3) |
||
71 | report "Values of same precedence are not evaluated left to right."; |
||
72 | assert (ValueI3 /= DifferentValueI3) |
||
73 | report "Values of same precedence are not evaluated left to right."; |
||
74 | |||
75 | -- "*", "rem" |
||
76 | ValueI4 := 14 rem 7 * 3; |
||
77 | SameValueI4 := (14 rem 7) * 3; -- 0 |
||
78 | DifferentValueI4 := 14 rem (7 * 3); -- 14 |
||
79 | assert (ValueI4 = SameValueI4) |
||
80 | report "Values of same precedence are not evaluated left to right."; |
||
81 | assert (ValueI4 /= DifferentValueI4) |
||
82 | report "Values of same precedence are not evaluated left to right."; |
||
83 | |||
84 | wait for 5 ns; |
||
85 | assert NOT( (ValueI1 = SameValueI1) and |
||
86 | (ValueI1 /= DifferentValueI1) and |
||
87 | (ValueI2 = SameValueI2) and |
||
88 | (ValueI2 /= DifferentValueI2) and |
||
89 | (ValueI3 = SameValueI3) and |
||
90 | (ValueI3 /= DifferentValueI3) and |
||
91 | (ValueI4 = SameValueI4) and |
||
92 | (ValueI4 /= DifferentValueI4) ) |
||
93 | report "***PASSED TEST: c07s02b00x00p09n02i01911" |
||
94 | severity NOTE; |
||
95 | assert ( (ValueI1 = SameValueI1) and |
||
96 | (ValueI1 /= DifferentValueI1) and |
||
97 | (ValueI2 = SameValueI2) and |
||
98 | (ValueI2 /= DifferentValueI2) and |
||
99 | (ValueI3 = SameValueI3) and |
||
100 | (ValueI3 /= DifferentValueI3) and |
||
101 | (ValueI4 = SameValueI4) and |
||
102 | (ValueI4 /= DifferentValueI4) ) |
||
103 | report "***FAILED TEST: c07s02b00x00p09n02i01911 - Operators are not associated with their operands in textual order." |
||
104 | severity ERROR; |
||
105 | wait; |
||
106 | END PROCESS TESTING; |
||
107 | |||
108 | END c07s02b00x00p09n02i01911arch; |