1
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: tc996.vhd,v 1.2 2001-10-26 16:30:04 paw Exp $
27-- $Revision: 1.2 $
28--
29-- ---------------------------------------------------------------------
30
31-- too mangled up to fix for me
32
33PACKAGE c06s03b00x00p08n01i00996pkg IS
34--
35--  This packages contains declarations of User attributes
36--
37-- ----------------------------------------------------------------------
38--
39  TYPE RESISTANCE IS RANGE 0 TO 1E9
40    UNITS
41      pf;
42      nf = 1000 pf;
43      mf = 1000 nf;
44    END UNITS;
45
46  TYPE t_logic IS (
47    U,  D,
48    Z0, Z1, ZDX, DZX, ZX,
49    W0, W1, WZ0, WZ1, WDX, DWX, WZX, ZWX, WX,
50    R0, R1, RW0, RW1, RZ0, RZ1, RDX, DRX, RZX, ZRX, RWX, WRX, RX,
51    F0, F1, FR0, FR1, FW0, FW1, FZ0, FZ1, FDX, DFX, FZX, ZFX, FWX, WFX, FRX, RFX, FX
52    );
53--
54--          Scalar types Declarations
55--
56  SUBTYPE st_scl1 IS BOOLEAN;
57  SUBTYPE st_scl2 IS BIT;
58  SUBTYPE st_scl3 IS CHARACTER;
59  SUBTYPE st_scl4 IS INTEGER;
60  SUBTYPE st_scl5 IS REAL;
61  SUBTYPE st_scl6 IS TIME;
62  SUBTYPE st_scl7 IS RESISTANCE;
63  SUBTYPE st_scl8 IS t_logic;
64--
65--          character string types
66--
67  SUBTYPE st_str1 IS STRING;
68  SUBTYPE st_str2 IS STRING (1 TO 4);
69
70-- ---------------------------------------------------------------------
71--      Attribute Declarations
72-- ---------------------------------------------------------------------
73--
74  ATTRIBUTE atr_scl1 : st_scl1;
75  ATTRIBUTE atr_scl2 : st_scl2;
76  ATTRIBUTE atr_scl3 : st_scl3;
77  ATTRIBUTE atr_scl4 : st_scl4;
78  ATTRIBUTE atr_scl5 : st_scl5;
79  ATTRIBUTE atr_scl6 : st_scl6;
80  ATTRIBUTE atr_scl7 : st_scl7;
81  ATTRIBUTE atr_scl8 : st_scl8;
82  ATTRIBUTE atr_str1 : st_str1;
83  ATTRIBUTE atr_str2 : st_str2;
84
85END;
86
87USE WORK.c06s03b00x00p08n01i00996pkg.all;
88ENTITY c06s03b00x00p08n01i00996ent IS
89  GENERIC (
90    p_scl1 : st_scl1;
91    p_scl2 : st_scl2;
92    p_scl3 : st_scl3;
93    p_scl4 : st_scl4;
94    p_scl5 : st_scl5;
95    p_scl6 : st_scl6;
96    p_scl7 : st_scl7;
97    p_scl8 : st_scl8;
98    p_str1 : st_str1;
99    p_str2 : st_str2;
100    labelid : STRING );
101END c06s03b00x00p08n01i00996ent;
102
103ARCHITECTURE c06s03b00x00p08n01i00996arch OF c06s03b00x00p08n01i00996ent IS
104--  This entity behavior checks the values of attributes referenced at the configuration.
105BEGIN
106  PROCESS
107  BEGIN
108    ASSERT p_scl1 =      TRUE
109      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl1" SEVERITY FAILURE;
110    ASSERT p_scl2 =       '0'
111      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl2" SEVERITY FAILURE;
112    ASSERT p_scl3 =       'z'
113      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl3" SEVERITY FAILURE;
114    ASSERT p_scl4 =         0
115      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl4" SEVERITY FAILURE;
116    ASSERT p_scl5 =      10.0
117      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl5" SEVERITY FAILURE;
118    ASSERT p_scl6 =     10 ns
119      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl6" SEVERITY FAILURE;
120    ASSERT p_scl7 =  10000 pf
121      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl7" SEVERITY FAILURE;
122    ASSERT p_scl8 =        FX
123      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl8" SEVERITY FAILURE;
124    ASSERT p_str1 =  "signal"
125      REPORT "ERROR: Wrong value for " & labelid & "'atr_str1" SEVERITY FAILURE;
126    ASSERT p_str2 =    "XXXX"
127      REPORT "ERROR: Wrong value for " & labelid & "'atr_str2" SEVERITY FAILURE;
128
129    assert NOT( p_scl1 =      TRUE
130                and p_scl2 =       '0'
131                and p_scl3 =       'z'
132                and p_scl4 =         0
133                and p_scl5 =      10.0
134                and p_scl6 =     10 ns
135                and p_scl7 =  10000 pf
136                and p_scl8 =        FX
137                and p_str1 =  "signal"
138                and p_str2 =    "XXXX")
139      report "***PASSED TEST: c06s03b00x00p08n01i00996"
140      severity NOTE;
141    assert    ( p_scl1 =      TRUE
142                and p_scl2 =       '0'
143                and p_scl3 =       'z'
144                and p_scl4 =         0
145                and p_scl5 =      10.0
146                and p_scl6 =     10 ns
147                and p_scl7 =  10000 pf
148                and p_scl8 =        FX
149                and p_str1 =  "signal"
150                and p_str2 =    "XXXX")
151      report "***FAILED TEST: c06s03b00x00p08n01i00996 - Expanded name denotes a primary unit contained in design library test failed."
152      severity ERROR;
153    wait;
154  END PROCESS;
155END;
156
157
158USE WORK.c06s03b00x00p08n01i00996pkg.all;
159ENTITY c06s03b00x00p08n01i00996ent_a IS
160END c06s03b00x00p08n01i00996ent_a;
161
162ARCHITECTURE c06s03b00x00p08n01i00996arch OF c06s03b00x00p08n01i00996ent IS
163--
164  COMPONENT c06s03b00x00p08n01i00996ent_a
165  END COMPONENT;
166
167BEGIN
168  check  : c06s03b00x00p08n01i00996ent_a;
169END c06s03b00x00p08n01i00996arch;
170
171USE WORK.c06s03b00x00p08n01i00996pkg.all;
172CONFIGURATION c06s03b00x00p08n01i00996cfg OF c06s03b00x00p08n01i00996ent IS
173  ATTRIBUTE atr_scl1 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS      TRUE;
174  ATTRIBUTE atr_scl2 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS       '0';
175  ATTRIBUTE atr_scl3 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS       'z';
176  ATTRIBUTE atr_scl4 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS         0;
177  ATTRIBUTE atr_scl5 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS      10.0;
178  ATTRIBUTE atr_scl6 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS     10 ns;
179  ATTRIBUTE atr_scl7 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS  10000 pf;
180  ATTRIBUTE atr_scl8 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS        FX;
181  ATTRIBUTE atr_str1 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS  "signal";
182  ATTRIBUTE atr_str2 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS    "XXXX";
183
184  FOR c06s03b00x00p08n01i00996arch
185    FOR check : c06s03b00x00p08n01i00996ent_a  USE ENTITY WORK.c06s03b00x00p08n01i00996ent_a(c06s03b00x00p08n01i00996arch_a)
186                                                 GENERIC MAP (
187                                                   c06s03b00x00p08n01i00996cfg'atr_scl1,
188                                                   c06s03b00x00p08n01i00996cfg'atr_scl2,
189                                                   c06s03b00x00p08n01i00996cfg'atr_scl3,
190                                                   c06s03b00x00p08n01i00996cfg'atr_scl4,
191                                                   c06s03b00x00p08n01i00996cfg'atr_scl5,
192                                                   c06s03b00x00p08n01i00996cfg'atr_scl6,
193                                                   c06s03b00x00p08n01i00996cfg'atr_scl7,
194                                                   c06s03b00x00p08n01i00996cfg'atr_scl8,
195                                                   c06s03b00x00p08n01i00996cfg'atr_str1,
196                                                   c06s03b00x00p08n01i00996cfg'atr_str2,
197                                                   "work.c06s03b00x00p08n01i00996cfg" );
198    END FOR;
199  END FOR;
200END c06s03b00x00p08n01i00996cfg;
201