summaryrefslogtreecommitdiff
path: root/testsuite/vests/vhdl-93/billowitch/disputed/tc996.vhd
blob: cd08a7156f233f1bbcd40b4faa608d6f8900c9bd (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200

-- Copyright (C) 2001 Bill Billowitch.

-- Some of the work to develop this test suite was done with Air Force
-- support.  The Air Force and Bill Billowitch assume no
-- responsibilities for this software.

-- This file is part of VESTs (Vhdl tESTs).

-- VESTs is free software; you can redistribute it and/or modify it
-- under the terms of the GNU General Public License as published by the
-- Free Software Foundation; either version 2 of the License, or (at
-- your option) any later version. 

-- VESTs is distributed in the hope that it will be useful, but WITHOUT
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-- for more details. 

-- You should have received a copy of the GNU General Public License
-- along with VESTs; if not, write to the Free Software Foundation,
-- Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 

-- ---------------------------------------------------------------------
--
-- $Id: tc996.vhd,v 1.2 2001-10-26 16:30:04 paw Exp $
-- $Revision: 1.2 $
--
-- ---------------------------------------------------------------------

-- too mangled up to fix for me

PACKAGE c06s03b00x00p08n01i00996pkg IS
--
--  This packages contains declarations of User attributes
--
-- ----------------------------------------------------------------------
--
  TYPE RESISTANCE IS RANGE 0 TO 1E9
    UNITS
      pf;
      nf = 1000 pf;
      mf = 1000 nf;
    END UNITS;

  TYPE t_logic IS (
    U,  D,
    Z0, Z1, ZDX, DZX, ZX,
    W0, W1, WZ0, WZ1, WDX, DWX, WZX, ZWX, WX,
    R0, R1, RW0, RW1, RZ0, RZ1, RDX, DRX, RZX, ZRX, RWX, WRX, RX,
    F0, F1, FR0, FR1, FW0, FW1, FZ0, FZ1, FDX, DFX, FZX, ZFX, FWX, WFX, FRX, RFX, FX
    );
--
--          Scalar types Declarations
--
  SUBTYPE st_scl1 IS BOOLEAN;
  SUBTYPE st_scl2 IS BIT;
  SUBTYPE st_scl3 IS CHARACTER;
  SUBTYPE st_scl4 IS INTEGER;
  SUBTYPE st_scl5 IS REAL;
  SUBTYPE st_scl6 IS TIME;
  SUBTYPE st_scl7 IS RESISTANCE;
  SUBTYPE st_scl8 IS t_logic;
--
--          character string types
--
  SUBTYPE st_str1 IS STRING;
  SUBTYPE st_str2 IS STRING (1 TO 4);
  
-- ---------------------------------------------------------------------
--      Attribute Declarations
-- ---------------------------------------------------------------------
--
  ATTRIBUTE atr_scl1 : st_scl1;
  ATTRIBUTE atr_scl2 : st_scl2;
  ATTRIBUTE atr_scl3 : st_scl3;
  ATTRIBUTE atr_scl4 : st_scl4;
  ATTRIBUTE atr_scl5 : st_scl5;
  ATTRIBUTE atr_scl6 : st_scl6;
  ATTRIBUTE atr_scl7 : st_scl7;
  ATTRIBUTE atr_scl8 : st_scl8;
  ATTRIBUTE atr_str1 : st_str1;
  ATTRIBUTE atr_str2 : st_str2;
  
END;

USE WORK.c06s03b00x00p08n01i00996pkg.all;
ENTITY c06s03b00x00p08n01i00996ent IS
  GENERIC (
    p_scl1 : st_scl1;
    p_scl2 : st_scl2;
    p_scl3 : st_scl3;
    p_scl4 : st_scl4;
    p_scl5 : st_scl5;
    p_scl6 : st_scl6;
    p_scl7 : st_scl7;
    p_scl8 : st_scl8;
    p_str1 : st_str1;
    p_str2 : st_str2;
    labelid : STRING );
END c06s03b00x00p08n01i00996ent;

ARCHITECTURE c06s03b00x00p08n01i00996arch OF c06s03b00x00p08n01i00996ent IS
--  This entity behavior checks the values of attributes referenced at the configuration.
BEGIN
  PROCESS
  BEGIN
    ASSERT p_scl1 =      TRUE 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl1" SEVERITY FAILURE;
    ASSERT p_scl2 =       '0' 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl2" SEVERITY FAILURE;
    ASSERT p_scl3 =       'z' 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl3" SEVERITY FAILURE;
    ASSERT p_scl4 =         0 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl4" SEVERITY FAILURE;
    ASSERT p_scl5 =      10.0 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl5" SEVERITY FAILURE;
    ASSERT p_scl6 =     10 ns 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl6" SEVERITY FAILURE;
    ASSERT p_scl7 =  10000 pf 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl7" SEVERITY FAILURE;
    ASSERT p_scl8 =        FX 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_scl8" SEVERITY FAILURE;
    ASSERT p_str1 =  "signal" 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_str1" SEVERITY FAILURE;
    ASSERT p_str2 =    "XXXX" 
      REPORT "ERROR: Wrong value for " & labelid & "'atr_str2" SEVERITY FAILURE;
    
    assert NOT( p_scl1 =      TRUE 
                and p_scl2 =       '0' 
                and p_scl3 =       'z' 
                and p_scl4 =         0 
                and p_scl5 =      10.0 
                and p_scl6 =     10 ns 
                and p_scl7 =  10000 pf 
                and p_scl8 =        FX 
                and p_str1 =  "signal" 
                and p_str2 =    "XXXX") 
      report "***PASSED TEST: c06s03b00x00p08n01i00996"
      severity NOTE;
    assert    ( p_scl1 =      TRUE 
                and p_scl2 =       '0' 
                and p_scl3 =       'z' 
                and p_scl4 =         0 
                and p_scl5 =      10.0 
                and p_scl6 =     10 ns 
                and p_scl7 =  10000 pf 
                and p_scl8 =        FX 
                and p_str1 =  "signal" 
                and p_str2 =    "XXXX") 
      report "***FAILED TEST: c06s03b00x00p08n01i00996 - Expanded name denotes a primary unit contained in design library test failed."
      severity ERROR;
    wait;
  END PROCESS;
END;


USE WORK.c06s03b00x00p08n01i00996pkg.all;
ENTITY c06s03b00x00p08n01i00996ent_a IS
END c06s03b00x00p08n01i00996ent_a;

ARCHITECTURE c06s03b00x00p08n01i00996arch OF c06s03b00x00p08n01i00996ent IS
--
  COMPONENT c06s03b00x00p08n01i00996ent_a
  END COMPONENT;
  
BEGIN
  check  : c06s03b00x00p08n01i00996ent_a;
END c06s03b00x00p08n01i00996arch;

USE WORK.c06s03b00x00p08n01i00996pkg.all;
CONFIGURATION c06s03b00x00p08n01i00996cfg OF c06s03b00x00p08n01i00996ent IS
  ATTRIBUTE atr_scl1 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS      TRUE;
  ATTRIBUTE atr_scl2 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS       '0';
  ATTRIBUTE atr_scl3 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS       'z';
  ATTRIBUTE atr_scl4 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS         0;
  ATTRIBUTE atr_scl5 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS      10.0;
  ATTRIBUTE atr_scl6 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS     10 ns;
  ATTRIBUTE atr_scl7 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS  10000 pf;
  ATTRIBUTE atr_scl8 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS        FX;
  ATTRIBUTE atr_str1 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS  "signal";
  ATTRIBUTE atr_str2 OF c06s03b00x00p08n01i00996cfg: CONFIGURATION IS    "XXXX";
  
  FOR c06s03b00x00p08n01i00996arch
    FOR check : c06s03b00x00p08n01i00996ent_a  USE ENTITY WORK.c06s03b00x00p08n01i00996ent_a(c06s03b00x00p08n01i00996arch_a)
                                                 GENERIC MAP (
                                                   c06s03b00x00p08n01i00996cfg'atr_scl1,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl2,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl3,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl4,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl5,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl6,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl7,
                                                   c06s03b00x00p08n01i00996cfg'atr_scl8,
                                                   c06s03b00x00p08n01i00996cfg'atr_str1,
                                                   c06s03b00x00p08n01i00996cfg'atr_str2,
                                                   "work.c06s03b00x00p08n01i00996cfg" );
    END FOR;
  END FOR;
END c06s03b00x00p08n01i00996cfg;