1-- -----------------------------------------------------------------
2--
3-- Copyright 2019 IEEE P1076 WG Authors
4--
5-- See the LICENSE file distributed with this work for copyright and
6-- licensing information and the AUTHORS file.
7--
8-- This file to you under the Apache License, Version 2.0 (the "License").
9-- You may obtain a copy of the License at
10--
11--     http://www.apache.org/licenses/LICENSE-2.0
12--
13-- Unless required by applicable law or agreed to in writing, software
14-- distributed under the License is distributed on an "AS IS" BASIS,
15-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16-- implied.  See the License for the specific language governing
17-- permissions and limitations under the License.
18--
19--   Title     :  Standard VHDL Synthesis Packages
20--             :  (NUMERIC_STD package declaration)
21--             :
22--   Library   :  This package shall be compiled into a library
23--             :  symbolically named IEEE.
24--             :
25--   Developers:  IEEE DASC Synthesis Working Group,
26--             :  Accellera VHDL-TC, and IEEE P1076 Working Group
27--             :
28--   Purpose   :  This package defines numeric types and arithmetic functions
29--             :  for use with synthesis tools. Two numeric types are defined:
30--             :  -- > UNRESOLVED_UNSIGNED: represents an UNSIGNED number
31--             :       in vector form
32--             :  -- > UNRESOLVED_SIGNED: represents a SIGNED number
33--             :       in vector form
34--             :  The base element type is type STD_ULOGIC.
35--             :  Aliases U_UNSIGNED and U_SIGNED are defined for the types
36--             :  UNRESOLVED_UNSIGNED and UNRESOLVED_SIGNED, respectively.
37--             :  Two numeric subtypes are defined:
38--             :  -- > UNSIGNED: represents UNSIGNED number in vector form
39--             :  -- > SIGNED: represents a SIGNED number in vector form
40--             :  The element subtypes are the same subtype as STD_LOGIC.
41--             :  The leftmost bit is treated as the most significant bit.
42--             :  Signed vectors are represented in two's complement form.
43--             :  This package contains overloaded arithmetic operators on
44--             :  the SIGNED and UNSIGNED types. The package also contains
45--             :  useful type conversions functions, clock detection
46--             :  functions, and other utility functions.
47--             :
48--             :  If any argument to a function is a null array, a null array
49--             :  is returned (exceptions, if any, are noted individually).
50--
51--   Note      :  This package may be modified to include additional data
52--             :  required by tools, but it must in no way change the
53--             :  external interfaces or simulation behavior of the
54--             :  description. It is permissible to add comments and/or
55--             :  attributes to the package declarations, but not to change
56--             :  or delete any original lines of the package declaration.
57--             :  The package body may be changed only in accordance with
58--             :  the terms of Clause 16 of this standard.
59--             :
60-- --------------------------------------------------------------------
61-- $Revision: 1220 $
62-- $Date: 2008-04-10 17:16:09 +0930 (Thu, 10 Apr 2008) $
63-- --------------------------------------------------------------------
64
65use STD.TEXTIO.all;
66library IEEE;
67use IEEE.STD_LOGIC_1164.all;
68
69package NUMERIC_STD is
70  constant CopyRightNotice : STRING
71    := "Copyright � 2008 IEEE. All rights reserved.";
72
73
74  --============================================================================
75  -- Numeric Array Type Definitions
76  --============================================================================
77
78  type UNRESOLVED_UNSIGNED is array (NATURAL range <>) of STD_ULOGIC;
79  type UNRESOLVED_SIGNED is array (NATURAL range <>) of STD_ULOGIC;
80
81  subtype U_UNSIGNED is UNRESOLVED_UNSIGNED;
82  subtype U_SIGNED is UNRESOLVED_SIGNED;
83
84  subtype UNSIGNED is (resolved) UNRESOLVED_UNSIGNED;
85  subtype SIGNED is (resolved) UNRESOLVED_SIGNED;
86
87  --============================================================================
88  -- Arithmetic Operators:
89  --===========================================================================
90
91  -- Id: A.1
92  function "abs" (ARG : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
93  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
94  -- Result: Returns the absolute value of an UNRESOLVED_SIGNED vector ARG.
95
96  -- Id: A.2
97  function "-" (ARG : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
98  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
99  -- Result: Returns the value of the unary minus operation on a
100  --         UNRESOLVED_SIGNED vector ARG.
101
102  --============================================================================
103
104  -- Id: A.3
105  function "+" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
106  -- Result subtype: UNRESOLVED_UNSIGNED(MAXIMUM(L'LENGTH, R'LENGTH)-1 downto 0)
107  -- Result: Adds two UNRESOLVED_UNSIGNED vectors that may be of different lengths.
108
109  -- Id: A.3R
110  function "+"(L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
111  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
112  -- Result: Similar to A.3 where R is a one bit UNRESOLVED_UNSIGNED
113
114  -- Id: A.3L
115  function "+"(L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
116  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
117  -- Result: Similar to A.3 where L is a one bit UNRESOLVED_UNSIGNED
118
119  -- Id: A.4
120  function "+" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
121  -- Result subtype: UNRESOLVED_SIGNED(MAXIMUM(L'LENGTH, R'LENGTH)-1 downto 0)
122  -- Result: Adds two UNRESOLVED_SIGNED vectors that may be of different lengths.
123
124  -- Id: A.4R
125  function "+"(L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
126  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
127  -- Result: Similar to A.4 where R is bit 0 of a non-negative.
128
129  -- Id: A.4L
130  function "+"(L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
131  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
132  -- Result: Similar to A.4 where L is bit 0 of a non-negative.
133
134  -- Id: A.5
135  function "+" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
136  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
137  -- Result: Adds an UNRESOLVED_UNSIGNED vector, L, with a nonnegative INTEGER, R.
138
139  -- Id: A.6
140  function "+" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
141  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
142  -- Result: Adds a nonnegative INTEGER, L, with an UNRESOLVED_UNSIGNED vector, R.
143
144  -- Id: A.7
145  function "+" (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
146  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
147  -- Result: Adds an INTEGER, L(may be positive or negative), to an UNRESOLVED_SIGNED
148  --         vector, R.
149
150  -- Id: A.8
151  function "+" (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
152  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
153  -- Result: Adds an UNRESOLVED_SIGNED vector, L, to an INTEGER, R.
154
155  --============================================================================
156
157  -- Id: A.9
158  function "-" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
159  -- Result subtype: UNRESOLVED_UNSIGNED(MAXIMUM(L'LENGTH, R'LENGTH)-1 downto 0)
160  -- Result: Subtracts two UNRESOLVED_UNSIGNED vectors that may be of different lengths.
161
162  -- Id: A.9R
163  function "-"(L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
164  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
165  -- Result: Similar to A.9 where R is a one bit UNRESOLVED_UNSIGNED
166
167  -- Id: A.9L
168  function "-"(L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
169  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
170  -- Result: Similar to A.9 where L is a one bit UNRESOLVED_UNSIGNED
171
172  -- Id: A.10
173  function "-" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
174  -- Result subtype: UNRESOLVED_SIGNED(MAXIMUM(L'LENGTH, R'LENGTH)-1 downto 0)
175  -- Result: Subtracts an UNRESOLVED_SIGNED vector, R, from another UNRESOLVED_SIGNED vector, L,
176  --         that may possibly be of different lengths.
177
178  -- Id: A.10R
179  function "-"(L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
180  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
181  -- Result: Similar to A.10 where R is bit 0 of a non-negative.
182
183  -- Id: A.10L
184  function "-"(L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
185  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
186  -- Result: Similar to A.10 where R is bit 0 of a non-negative.
187
188  -- Id: A.11
189  function "-" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
190  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
191  -- Result: Subtracts a nonnegative INTEGER, R, from an UNRESOLVED_UNSIGNED vector, L.
192
193  -- Id: A.12
194  function "-" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
195  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
196  -- Result: Subtracts an UNRESOLVED_UNSIGNED vector, R, from a nonnegative INTEGER, L.
197
198  -- Id: A.13
199  function "-" (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
200  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
201  -- Result: Subtracts an INTEGER, R, from an UNRESOLVED_SIGNED vector, L.
202
203  -- Id: A.14
204  function "-" (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
205  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
206  -- Result: Subtracts an UNRESOLVED_SIGNED vector, R, from an INTEGER, L.
207
208  --============================================================================
209
210  -- Id: A.15
211  function "*" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
212  -- Result subtype: UNRESOLVED_UNSIGNED((L'LENGTH+R'LENGTH-1) downto 0)
213  -- Result: Performs the multiplication operation on two UNRESOLVED_UNSIGNED vectors
214  --         that may possibly be of different lengths.
215
216  -- Id: A.16
217  function "*" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
218  -- Result subtype: UNRESOLVED_SIGNED((L'LENGTH+R'LENGTH-1) downto 0)
219  -- Result: Multiplies two UNRESOLVED_SIGNED vectors that may possibly be of
220  --         different lengths.
221
222  -- Id: A.17
223  function "*" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
224  -- Result subtype: UNRESOLVED_UNSIGNED((L'LENGTH+L'LENGTH-1) downto 0)
225  -- Result: Multiplies an UNRESOLVED_UNSIGNED vector, L, with a nonnegative
226  --         INTEGER, R. R is converted to an UNRESOLVED_UNSIGNED vector of
227  --         SIZE L'LENGTH before multiplication.
228
229  -- Id: A.18
230  function "*" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
231  -- Result subtype: UNRESOLVED_UNSIGNED((R'LENGTH+R'LENGTH-1) downto 0)
232  -- Result: Multiplies an UNRESOLVED_UNSIGNED vector, R, with a nonnegative
233  --         INTEGER, L. L is converted to an UNRESOLVED_UNSIGNED vector of
234  --         SIZE R'LENGTH before multiplication.
235
236  -- Id: A.19
237  function "*" (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
238  -- Result subtype: UNRESOLVED_SIGNED((L'LENGTH+L'LENGTH-1) downto 0)
239  -- Result: Multiplies an UNRESOLVED_SIGNED vector, L, with an INTEGER, R. R is
240  --         converted to an UNRESOLVED_SIGNED vector of SIZE L'LENGTH before
241  --         multiplication.
242
243  -- Id: A.20
244  function "*" (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
245  -- Result subtype: UNRESOLVED_SIGNED((R'LENGTH+R'LENGTH-1) downto 0)
246  -- Result: Multiplies an UNRESOLVED_SIGNED vector, R, with an INTEGER, L. L is
247  --         converted to an UNRESOLVED_SIGNED vector of SIZE R'LENGTH before
248  --         multiplication.
249
250  --============================================================================
251  --
252  -- NOTE: If second argument is zero for "/" operator, a severity level
253  --       of ERROR is issued.
254
255  -- Id: A.21
256  function "/" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
257  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
258  -- Result: Divides an UNRESOLVED_UNSIGNED vector, L, by another UNRESOLVED_UNSIGNED vector, R.
259
260  -- Id: A.22
261  function "/" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
262  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
263  -- Result: Divides an UNRESOLVED_SIGNED vector, L, by another UNRESOLVED_SIGNED vector, R.
264
265  -- Id: A.23
266  function "/" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
267  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
268  -- Result: Divides an UNRESOLVED_UNSIGNED vector, L, by a nonnegative INTEGER, R.
269  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.
270
271  -- Id: A.24
272  function "/" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
273  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
274  -- Result: Divides a nonnegative INTEGER, L, by an UNRESOLVED_UNSIGNED vector, R.
275  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.
276
277  -- Id: A.25
278  function "/" (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
279  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
280  -- Result: Divides an UNRESOLVED_SIGNED vector, L, by an INTEGER, R.
281  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.
282
283  -- Id: A.26
284  function "/" (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
285  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
286  -- Result: Divides an INTEGER, L, by an UNRESOLVED_SIGNED vector, R.
287  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.
288
289  --============================================================================
290  --
291  -- NOTE: If second argument is zero for "rem" operator, a severity level
292  --       of ERROR is issued.
293
294  -- Id: A.27
295  function "rem" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
296  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
297  -- Result: Computes "L rem R" where L and R are UNRESOLVED_UNSIGNED vectors.
298
299  -- Id: A.28
300  function "rem" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
301  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
302  -- Result: Computes "L rem R" where L and R are UNRESOLVED_SIGNED vectors.
303
304  -- Id: A.29
305  function "rem" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
306  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
307  -- Result: Computes "L rem R" where L is an UNRESOLVED_UNSIGNED vector and R is a
308  --         nonnegative INTEGER.
309  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.
310
311  -- Id: A.30
312  function "rem" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
313  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
314  -- Result: Computes "L rem R" where R is an UNRESOLVED_UNSIGNED vector and L is a
315  --         nonnegative INTEGER.
316  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.
317
318  -- Id: A.31
319  function "rem" (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
320  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
321  -- Result: Computes "L rem R" where L is UNRESOLVED_SIGNED vector and R is an INTEGER.
322  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.
323
324  -- Id: A.32
325  function "rem" (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
326  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
327  -- Result: Computes "L rem R" where R is UNRESOLVED_SIGNED vector and L is an INTEGER.
328  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.
329
330  --============================================================================
331  --
332  -- NOTE: If second argument is zero for "mod" operator, a severity level
333  --       of ERROR is issued.
334
335  -- Id: A.33
336  function "mod" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
337  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
338  -- Result: Computes "L mod R" where L and R are UNRESOLVED_UNSIGNED vectors.
339
340  -- Id: A.34
341  function "mod" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
342  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
343  -- Result: Computes "L mod R" where L and R are UNRESOLVED_SIGNED vectors.
344
345  -- Id: A.35
346  function "mod" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
347  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
348  -- Result: Computes "L mod R" where L is an UNRESOLVED_UNSIGNED vector and R
349  --         is a nonnegative INTEGER.
350  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.
351
352  -- Id: A.36
353  function "mod" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
354  -- Result subtype: UNRESOLVED_UNSIGNED(R'LENGTH-1 downto 0)
355  -- Result: Computes "L mod R" where R is an UNRESOLVED_UNSIGNED vector and L
356  --         is a nonnegative INTEGER.
357  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.
358
359  -- Id: A.37
360  function "mod" (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
361  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
362  -- Result: Computes "L mod R" where L is an UNRESOLVED_SIGNED vector and
363  --         R is an INTEGER.
364  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.
365
366  -- Id: A.38
367  function "mod" (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
368  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
369  -- Result: Computes "L mod R" where L is an INTEGER and
370  --         R is an UNRESOLVED_SIGNED vector.
371  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.
372
373  --============================================================================
374  -- Id: A.39
375  function find_leftmost (ARG : UNRESOLVED_UNSIGNED; Y : STD_ULOGIC) return INTEGER;
376  -- Result subtype: INTEGER
377  -- Result: Finds the leftmost occurrence of the value of Y in ARG.
378  --         Returns the index of the occurrence if it exists, or -1 otherwise.
379
380  -- Id: A.40
381  function find_leftmost (ARG : UNRESOLVED_SIGNED; Y : STD_ULOGIC) return INTEGER;
382  -- Result subtype: INTEGER
383  -- Result: Finds the leftmost occurrence of the value of Y in ARG.
384  --         Returns the index of the occurrence if it exists, or -1 otherwise.
385
386  -- Id: A.41
387  function find_rightmost (ARG : UNRESOLVED_UNSIGNED; Y : STD_ULOGIC) return INTEGER;
388  -- Result subtype: INTEGER
389  -- Result: Finds the leftmost occurrence of the value of Y in ARG.
390  --         Returns the index of the occurrence if it exists, or -1 otherwise.
391
392  -- Id: A.42
393  function find_rightmost (ARG : UNRESOLVED_SIGNED; Y : STD_ULOGIC) return INTEGER;
394  -- Result subtype: INTEGER
395  -- Result: Finds the leftmost occurrence of the value of Y in ARG.
396  --         Returns the index of the occurrence if it exists, or -1 otherwise.
397
398  --============================================================================
399  -- Comparison Operators
400  --============================================================================
401
402  -- Id: C.1
403  function ">" (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
404  -- Result subtype: BOOLEAN
405  -- Result: Computes "L > R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
406  --         of different lengths.
407
408  -- Id: C.2
409  function ">" (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
410  -- Result subtype: BOOLEAN
411  -- Result: Computes "L > R" where L and R are UNRESOLVED_SIGNED vectors possibly
412  --         of different lengths.
413
414  -- Id: C.3
415  function ">" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return BOOLEAN;
416  -- Result subtype: BOOLEAN
417  -- Result: Computes "L > R" where L is a nonnegative INTEGER and
418  --         R is an UNRESOLVED_UNSIGNED vector.
419
420  -- Id: C.4
421  function ">" (L : INTEGER; R : UNRESOLVED_SIGNED) return BOOLEAN;
422  -- Result subtype: BOOLEAN
423  -- Result: Computes "L > R" where L is a INTEGER and
424  --         R is an UNRESOLVED_SIGNED vector.
425
426  -- Id: C.5
427  function ">" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return BOOLEAN;
428  -- Result subtype: BOOLEAN
429  -- Result: Computes "L > R" where L is an UNRESOLVED_UNSIGNED vector and
430  --         R is a nonnegative INTEGER.
431
432  -- Id: C.6
433  function ">" (L : UNRESOLVED_SIGNED; R : INTEGER) return BOOLEAN;
434  -- Result subtype: BOOLEAN
435  -- Result: Computes "L > R" where L is an UNRESOLVED_SIGNED vector and
436  --         R is a INTEGER.
437
438  --============================================================================
439
440  -- Id: C.7
441  function "<" (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
442  -- Result subtype: BOOLEAN
443  -- Result: Computes "L < R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
444  --         of different lengths.
445
446  -- Id: C.8
447  function "<" (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
448  -- Result subtype: BOOLEAN
449  -- Result: Computes "L < R" where L and R are UNRESOLVED_SIGNED vectors possibly
450  --         of different lengths.
451
452  -- Id: C.9
453  function "<" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return BOOLEAN;
454  -- Result subtype: BOOLEAN
455  -- Result: Computes "L < R" where L is a nonnegative INTEGER and
456  --         R is an UNRESOLVED_UNSIGNED vector.
457
458  -- Id: C.10
459  function "<" (L : INTEGER; R : UNRESOLVED_SIGNED) return BOOLEAN;
460  -- Result subtype: BOOLEAN
461  -- Result: Computes "L < R" where L is an INTEGER and
462  --         R is an UNRESOLVED_SIGNED vector.
463
464  -- Id: C.11
465  function "<" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return BOOLEAN;
466  -- Result subtype: BOOLEAN
467  -- Result: Computes "L < R" where L is an UNRESOLVED_UNSIGNED vector and
468  --         R is a nonnegative INTEGER.
469
470  -- Id: C.12
471  function "<" (L : UNRESOLVED_SIGNED; R : INTEGER) return BOOLEAN;
472  -- Result subtype: BOOLEAN
473  -- Result: Computes "L < R" where L is an UNRESOLVED_SIGNED vector and
474  --         R is an INTEGER.
475
476  --============================================================================
477
478  -- Id: C.13
479  function "<=" (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
480  -- Result subtype: BOOLEAN
481  -- Result: Computes "L <= R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
482  --         of different lengths.
483
484  -- Id: C.14
485  function "<=" (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
486  -- Result subtype: BOOLEAN
487  -- Result: Computes "L <= R" where L and R are UNRESOLVED_SIGNED vectors possibly
488  --         of different lengths.
489
490  -- Id: C.15
491  function "<=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return BOOLEAN;
492  -- Result subtype: BOOLEAN
493  -- Result: Computes "L <= R" where L is a nonnegative INTEGER and
494  --         R is an UNRESOLVED_UNSIGNED vector.
495
496  -- Id: C.16
497  function "<=" (L : INTEGER; R : UNRESOLVED_SIGNED) return BOOLEAN;
498  -- Result subtype: BOOLEAN
499  -- Result: Computes "L <= R" where L is an INTEGER and
500  --         R is an UNRESOLVED_SIGNED vector.
501
502  -- Id: C.17
503  function "<=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return BOOLEAN;
504  -- Result subtype: BOOLEAN
505  -- Result: Computes "L <= R" where L is an UNRESOLVED_UNSIGNED vector and
506  --         R is a nonnegative INTEGER.
507
508  -- Id: C.18
509  function "<=" (L : UNRESOLVED_SIGNED; R : INTEGER) return BOOLEAN;
510  -- Result subtype: BOOLEAN
511  -- Result: Computes "L <= R" where L is an UNRESOLVED_SIGNED vector and
512  --         R is an INTEGER.
513
514  --============================================================================
515
516  -- Id: C.19
517  function ">=" (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
518  -- Result subtype: BOOLEAN
519  -- Result: Computes "L >= R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
520  --         of different lengths.
521
522  -- Id: C.20
523  function ">=" (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
524  -- Result subtype: BOOLEAN
525  -- Result: Computes "L >= R" where L and R are UNRESOLVED_SIGNED vectors possibly
526  --         of different lengths.
527
528  -- Id: C.21
529  function ">=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return BOOLEAN;
530  -- Result subtype: BOOLEAN
531  -- Result: Computes "L >= R" where L is a nonnegative INTEGER and
532  --         R is an UNRESOLVED_UNSIGNED vector.
533
534  -- Id: C.22
535  function ">=" (L : INTEGER; R : UNRESOLVED_SIGNED) return BOOLEAN;
536  -- Result subtype: BOOLEAN
537  -- Result: Computes "L >= R" where L is an INTEGER and
538  --         R is an UNRESOLVED_SIGNED vector.
539
540  -- Id: C.23
541  function ">=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return BOOLEAN;
542  -- Result subtype: BOOLEAN
543  -- Result: Computes "L >= R" where L is an UNRESOLVED_UNSIGNED vector and
544  --         R is a nonnegative INTEGER.
545
546  -- Id: C.24
547  function ">=" (L : UNRESOLVED_SIGNED; R : INTEGER) return BOOLEAN;
548  -- Result subtype: BOOLEAN
549  -- Result: Computes "L >= R" where L is an UNRESOLVED_SIGNED vector and
550  --         R is an INTEGER.
551
552  --============================================================================
553
554  -- Id: C.25
555  function "=" (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
556  -- Result subtype: BOOLEAN
557  -- Result: Computes "L = R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
558  --         of different lengths.
559
560  -- Id: C.26
561  function "=" (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
562  -- Result subtype: BOOLEAN
563  -- Result: Computes "L = R" where L and R are UNRESOLVED_SIGNED vectors possibly
564  --         of different lengths.
565
566  -- Id: C.27
567  function "=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return BOOLEAN;
568  -- Result subtype: BOOLEAN
569  -- Result: Computes "L = R" where L is a nonnegative INTEGER and
570  --         R is an UNRESOLVED_UNSIGNED vector.
571
572  -- Id: C.28
573  function "=" (L : INTEGER; R : UNRESOLVED_SIGNED) return BOOLEAN;
574  -- Result subtype: BOOLEAN
575  -- Result: Computes "L = R" where L is an INTEGER and
576  --         R is an UNRESOLVED_SIGNED vector.
577
578  -- Id: C.29
579  function "=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return BOOLEAN;
580  -- Result subtype: BOOLEAN
581  -- Result: Computes "L = R" where L is an UNRESOLVED_UNSIGNED vector and
582  --         R is a nonnegative INTEGER.
583
584  -- Id: C.30
585  function "=" (L : UNRESOLVED_SIGNED; R : INTEGER) return BOOLEAN;
586  -- Result subtype: BOOLEAN
587  -- Result: Computes "L = R" where L is an UNRESOLVED_SIGNED vector and
588  --         R is an INTEGER.
589
590  --============================================================================
591
592  -- Id: C.31
593  function "/=" (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
594  -- Result subtype: BOOLEAN
595  -- Result: Computes "L /= R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
596  --         of different lengths.
597
598  -- Id: C.32
599  function "/=" (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
600  -- Result subtype: BOOLEAN
601  -- Result: Computes "L /= R" where L and R are UNRESOLVED_SIGNED vectors possibly
602  --         of different lengths.
603
604  -- Id: C.33
605  function "/=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return BOOLEAN;
606  -- Result subtype: BOOLEAN
607  -- Result: Computes "L /= R" where L is a nonnegative INTEGER and
608  --         R is an UNRESOLVED_UNSIGNED vector.
609
610  -- Id: C.34
611  function "/=" (L : INTEGER; R : UNRESOLVED_SIGNED) return BOOLEAN;
612  -- Result subtype: BOOLEAN
613  -- Result: Computes "L /= R" where L is an INTEGER and
614  --         R is an UNRESOLVED_SIGNED vector.
615
616  -- Id: C.35
617  function "/=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return BOOLEAN;
618  -- Result subtype: BOOLEAN
619  -- Result: Computes "L /= R" where L is an UNRESOLVED_UNSIGNED vector and
620  --         R is a nonnegative INTEGER.
621
622  -- Id: C.36
623  function "/=" (L : UNRESOLVED_SIGNED; R : INTEGER) return BOOLEAN;
624  -- Result subtype: BOOLEAN
625  -- Result: Computes "L /= R" where L is an UNRESOLVED_SIGNED vector and
626  --         R is an INTEGER.
627
628  --============================================================================
629
630  -- Id: C.37
631  function MINIMUM (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
632  -- Result subtype: UNRESOLVED_UNSIGNED
633  -- Result: Returns the lesser of two UNRESOLVED_UNSIGNED vectors that may be
634  --         of different lengths.
635
636  -- Id: C.38
637  function MINIMUM (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
638  -- Result subtype: UNRESOLVED_SIGNED
639  -- Result: Returns the lesser of two UNRESOLVED_SIGNED vectors that may be
640  --         of different lengths.
641
642  -- Id: C.39
643  function MINIMUM (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
644  -- Result subtype: UNRESOLVED_UNSIGNED
645  -- Result: Returns the lesser of a nonnegative INTEGER, L, and
646  --         an UNRESOLVED_UNSIGNED vector, R.
647
648  -- Id: C.40
649  function MINIMUM (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
650  -- Result subtype: UNRESOLVED_SIGNED
651  -- Result: Returns the lesser of an INTEGER, L, and an UNRESOLVED_SIGNED
652  --         vector, R.
653
654  -- Id: C.41
655  function MINIMUM (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
656  -- Result subtype: UNRESOLVED_UNSIGNED
657  -- Result: Returns the lesser of an UNRESOLVED_UNSIGNED vector, L, and
658  --         a nonnegative INTEGER, R.
659
660  -- Id: C.42
661  function MINIMUM (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
662  -- Result subtype: UNRESOLVED_SIGNED
663  -- Result: Returns the lesser of an UNRESOLVED_SIGNED vector, L, and
664  --         an INTEGER, R.
665
666  --============================================================================
667
668  -- Id: C.43
669  function MAXIMUM (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
670  -- Result subtype: UNRESOLVED_UNSIGNED
671  -- Result: Returns the greater of two UNRESOLVED_UNSIGNED vectors that may be
672  --         of different lengths.
673
674  -- Id: C.44
675  function MAXIMUM (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
676  -- Result subtype: UNRESOLVED_SIGNED
677  -- Result: Returns the greater of two UNRESOLVED_SIGNED vectors that may be
678  --         of different lengths.
679
680  -- Id: C.45
681  function MAXIMUM (L : NATURAL; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
682  -- Result subtype: UNRESOLVED_UNSIGNED
683  -- Result: Returns the greater of a nonnegative INTEGER, L, and
684  --         an UNRESOLVED_UNSIGNED vector, R.
685
686  -- Id: C.46
687  function MAXIMUM (L : INTEGER; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
688  -- Result subtype: UNRESOLVED_SIGNED
689  -- Result: Returns the greater of an INTEGER, L, and an UNRESOLVED_SIGNED
690  --         vector, R.
691
692  -- Id: C.47
693  function MAXIMUM (L : UNRESOLVED_UNSIGNED; R : NATURAL) return UNRESOLVED_UNSIGNED;
694  -- Result subtype: UNRESOLVED_UNSIGNED
695  -- Result: Returns the greater of an UNRESOLVED_UNSIGNED vector, L, and
696  --         a nonnegative INTEGER, R.
697
698  -- Id: C.48
699  function MAXIMUM (L : UNRESOLVED_SIGNED; R : INTEGER) return UNRESOLVED_SIGNED;
700  -- Result subtype: UNRESOLVED_SIGNED
701  -- Result: Returns the greater of an UNRESOLVED_SIGNED vector, L, and
702  --         an INTEGER, R.
703
704  --============================================================================
705
706  -- Id: C.49
707  function "?>" (L, R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
708  -- Result subtype: STD_ULOGIC
709  -- Result: Computes "L > R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
710  --         of different lengths.
711
712  -- Id: C.50
713  function "?>" (L, R : UNRESOLVED_SIGNED) return STD_ULOGIC;
714  -- Result subtype: STD_ULOGIC
715  -- Result: Computes "L > R" where L and R are UNRESOLVED_SIGNED vectors possibly
716  --         of different lengths.
717
718  -- Id: C.51
719  function "?>" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
720  -- Result subtype: STD_ULOGIC
721  -- Result: Computes "L > R" where L is a nonnegative INTEGER and
722  --         R is an UNRESOLVED_UNSIGNED vector.
723
724  -- Id: C.52
725  function "?>" (L : INTEGER; R : UNRESOLVED_SIGNED) return STD_ULOGIC;
726  -- Result subtype: STD_ULOGIC
727  -- Result: Computes "L > R" where L is a INTEGER and
728  --         R is an UNRESOLVED_SIGNED vector.
729
730  -- Id: C.53
731  function "?>" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return STD_ULOGIC;
732  -- Result subtype: STD_ULOGIC
733  -- Result: Computes "L > R" where L is an UNRESOLVED_UNSIGNED vector and
734  --         R is a nonnegative INTEGER.
735
736  -- Id: C.54
737  function "?>" (L : UNRESOLVED_SIGNED; R : INTEGER) return STD_ULOGIC;
738  -- Result subtype: STD_ULOGIC
739  -- Result: Computes "L > R" where L is an UNRESOLVED_SIGNED vector and
740  --         R is a INTEGER.
741
742  --============================================================================
743
744  -- Id: C.55
745  function "?<" (L, R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
746  -- Result subtype: STD_ULOGIC
747  -- Result: Computes "L < R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
748  --         of different lengths.
749
750  -- Id: C.56
751  function "?<" (L, R : UNRESOLVED_SIGNED) return STD_ULOGIC;
752  -- Result subtype: STD_ULOGIC
753  -- Result: Computes "L < R" where L and R are UNRESOLVED_SIGNED vectors possibly
754  --         of different lengths.
755
756  -- Id: C.57
757  function "?<" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
758  -- Result subtype: STD_ULOGIC
759  -- Result: Computes "L < R" where L is a nonnegative INTEGER and
760  --         R is an UNRESOLVED_UNSIGNED vector.
761
762  -- Id: C.58
763  function "?<" (L : INTEGER; R : UNRESOLVED_SIGNED) return STD_ULOGIC;
764  -- Result subtype: STD_ULOGIC
765  -- Result: Computes "L < R" where L is an INTEGER and
766  --         R is an UNRESOLVED_SIGNED vector.
767
768  -- Id: C.59
769  function "?<" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return STD_ULOGIC;
770  -- Result subtype: STD_ULOGIC
771  -- Result: Computes "L < R" where L is an UNRESOLVED_UNSIGNED vector and
772  --         R is a nonnegative INTEGER.
773
774  -- Id: C.60
775  function "?<" (L : UNRESOLVED_SIGNED; R : INTEGER) return STD_ULOGIC;
776  -- Result subtype: STD_ULOGIC
777  -- Result: Computes "L < R" where L is an UNRESOLVED_SIGNED vector and
778  --         R is an INTEGER.
779
780  --============================================================================
781
782  -- Id: C.61
783  function "?<=" (L, R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
784  -- Result subtype: STD_ULOGIC
785  -- Result: Computes "L <= R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
786  --         of different lengths.
787
788  -- Id: C.62
789  function "?<=" (L, R : UNRESOLVED_SIGNED) return STD_ULOGIC;
790  -- Result subtype: STD_ULOGIC
791  -- Result: Computes "L <= R" where L and R are UNRESOLVED_SIGNED vectors possibly
792  --         of different lengths.
793
794  -- Id: C.63
795  function "?<=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
796  -- Result subtype: STD_ULOGIC
797  -- Result: Computes "L <= R" where L is a nonnegative INTEGER and
798  --         R is an UNRESOLVED_UNSIGNED vector.
799
800  -- Id: C.64
801  function "?<=" (L : INTEGER; R : UNRESOLVED_SIGNED) return STD_ULOGIC;
802  -- Result subtype: STD_ULOGIC
803  -- Result: Computes "L <= R" where L is an INTEGER and
804  --         R is an UNRESOLVED_SIGNED vector.
805
806  -- Id: C.65
807  function "?<=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return STD_ULOGIC;
808  -- Result subtype: STD_ULOGIC
809  -- Result: Computes "L <= R" where L is an UNRESOLVED_UNSIGNED vector and
810  --         R is a nonnegative INTEGER.
811
812  -- Id: C.66
813  function "?<=" (L : UNRESOLVED_SIGNED; R : INTEGER) return STD_ULOGIC;
814  -- Result subtype: STD_ULOGIC
815  -- Result: Computes "L <= R" where L is an UNRESOLVED_SIGNED vector and
816  --         R is an INTEGER.
817
818  --============================================================================
819
820  -- Id: C.67
821  function "?>=" (L, R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
822  -- Result subtype: STD_ULOGIC
823  -- Result: Computes "L >= R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
824  --         of different lengths.
825
826  -- Id: C.68
827  function "?>=" (L, R : UNRESOLVED_SIGNED) return STD_ULOGIC;
828  -- Result subtype: STD_ULOGIC
829  -- Result: Computes "L >= R" where L and R are UNRESOLVED_SIGNED vectors possibly
830  --         of different lengths.
831
832  -- Id: C.69
833  function "?>=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
834  -- Result subtype: STD_ULOGIC
835  -- Result: Computes "L >= R" where L is a nonnegative INTEGER and
836  --         R is an UNRESOLVED_UNSIGNED vector.
837
838  -- Id: C.70
839  function "?>=" (L : INTEGER; R : UNRESOLVED_SIGNED) return STD_ULOGIC;
840  -- Result subtype: STD_ULOGIC
841  -- Result: Computes "L >= R" where L is an INTEGER and
842  --         R is an UNRESOLVED_SIGNED vector.
843
844  -- Id: C.71
845  function "?>=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return STD_ULOGIC;
846  -- Result subtype: STD_ULOGIC
847  -- Result: Computes "L >= R" where L is an UNRESOLVED_UNSIGNED vector and
848  --         R is a nonnegative INTEGER.
849
850  -- Id: C.72
851  function "?>=" (L : UNRESOLVED_SIGNED; R : INTEGER) return STD_ULOGIC;
852  -- Result subtype: STD_ULOGIC
853  -- Result: Computes "L >= R" where L is an UNRESOLVED_SIGNED vector and
854  --         R is an INTEGER.
855
856  --============================================================================
857
858  -- Id: C.73
859  function "?=" (L, R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
860  -- Result subtype: STD_ULOGIC
861  -- Result: Computes "L = R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
862  --         of different lengths.
863
864  -- Id: C.74
865  function "?=" (L, R : UNRESOLVED_SIGNED) return STD_ULOGIC;
866  -- Result subtype: STD_ULOGIC
867  -- Result: Computes "L = R" where L and R are UNRESOLVED_SIGNED vectors possibly
868  --         of different lengths.
869
870  -- Id: C.75
871  function "?=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
872  -- Result subtype: STD_ULOGIC
873  -- Result: Computes "L = R" where L is a nonnegative INTEGER and
874  --         R is an UNRESOLVED_UNSIGNED vector.
875
876  -- Id: C.76
877  function "?=" (L : INTEGER; R : UNRESOLVED_SIGNED) return STD_ULOGIC;
878  -- Result subtype: STD_ULOGIC
879  -- Result: Computes "L = R" where L is an INTEGER and
880  --         R is an UNRESOLVED_SIGNED vector.
881
882  -- Id: C.77
883  function "?=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return STD_ULOGIC;
884  -- Result subtype: STD_ULOGIC
885  -- Result: Computes "L = R" where L is an UNRESOLVED_UNSIGNED vector and
886  --         R is a nonnegative INTEGER.
887
888  -- Id: C.78
889  function "?=" (L : UNRESOLVED_SIGNED; R : INTEGER) return STD_ULOGIC;
890  -- Result subtype: STD_ULOGIC
891  -- Result: Computes "L = R" where L is an UNRESOLVED_SIGNED vector and
892  --         R is an INTEGER.
893
894  --============================================================================
895
896  -- Id: C.79
897  function "?/=" (L, R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
898  -- Result subtype: STD_ULOGIC
899  -- Result: Computes "L /= R" where L and R are UNRESOLVED_UNSIGNED vectors possibly
900  --         of different lengths.
901
902  -- Id: C.80
903  function "?/=" (L, R : UNRESOLVED_SIGNED) return STD_ULOGIC;
904  -- Result subtype: STD_ULOGIC
905  -- Result: Computes "L /= R" where L and R are UNRESOLVED_SIGNED vectors possibly
906  --         of different lengths.
907
908  -- Id: C.81
909  function "?/=" (L : NATURAL; R : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
910  -- Result subtype: STD_ULOGIC
911  -- Result: Computes "L /= R" where L is a nonnegative INTEGER and
912  --         R is an UNRESOLVED_UNSIGNED vector.
913
914  -- Id: C.82
915  function "?/=" (L : INTEGER; R : UNRESOLVED_SIGNED) return STD_ULOGIC;
916  -- Result subtype: STD_ULOGIC
917  -- Result: Computes "L /= R" where L is an INTEGER and
918  --         R is an UNRESOLVED_SIGNED vector.
919
920  -- Id: C.83
921  function "?/=" (L : UNRESOLVED_UNSIGNED; R : NATURAL) return STD_ULOGIC;
922  -- Result subtype: STD_ULOGIC
923  -- Result: Computes "L /= R" where L is an UNRESOLVED_UNSIGNED vector and
924  --         R is a nonnegative INTEGER.
925
926  -- Id: C.84
927  function "?/=" (L : UNRESOLVED_SIGNED; R : INTEGER) return STD_ULOGIC;
928  -- Result subtype: STD_ULOGIC
929  -- Result: Computes "L /= R" where L is an UNRESOLVED_SIGNED vector and
930  --         R is an INTEGER.
931
932  --============================================================================
933  -- Shift and Rotate Functions
934  --============================================================================
935
936  -- Id: S.1
937  function SHIFT_LEFT (ARG : UNRESOLVED_UNSIGNED; COUNT : NATURAL) return UNRESOLVED_UNSIGNED;
938  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
939  -- Result: Performs a shift-left on an UNRESOLVED_UNSIGNED vector COUNT times.
940  --         The vacated positions are filled with '0'.
941  --         The COUNT leftmost elements are lost.
942
943  -- Id: S.2
944  function SHIFT_RIGHT (ARG : UNRESOLVED_UNSIGNED; COUNT : NATURAL) return UNRESOLVED_UNSIGNED;
945  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
946  -- Result: Performs a shift-right on an UNRESOLVED_UNSIGNED vector COUNT times.
947  --         The vacated positions are filled with '0'.
948  --         The COUNT rightmost elements are lost.
949
950  -- Id: S.3
951  function SHIFT_LEFT (ARG : UNRESOLVED_SIGNED; COUNT : NATURAL) return UNRESOLVED_SIGNED;
952  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
953  -- Result: Performs a shift-left on an UNRESOLVED_SIGNED vector COUNT times.
954  --         The vacated positions are filled with '0'.
955  --         The COUNT leftmost elements are lost.
956
957  -- Id: S.4
958  function SHIFT_RIGHT (ARG : UNRESOLVED_SIGNED; COUNT : NATURAL) return UNRESOLVED_SIGNED;
959  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
960  -- Result: Performs a shift-right on an UNRESOLVED_SIGNED vector COUNT times.
961  --         The vacated positions are filled with the leftmost
962  --         element, ARG'LEFT. The COUNT rightmost elements are lost.
963
964  --============================================================================
965
966  -- Id: S.5
967  function ROTATE_LEFT (ARG : UNRESOLVED_UNSIGNED; COUNT : NATURAL) return UNRESOLVED_UNSIGNED;
968  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
969  -- Result: Performs a rotate-left of an UNRESOLVED_UNSIGNED vector COUNT times.
970
971  -- Id: S.6
972  function ROTATE_RIGHT (ARG : UNRESOLVED_UNSIGNED; COUNT : NATURAL) return UNRESOLVED_UNSIGNED;
973  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
974  -- Result: Performs a rotate-right of an UNRESOLVED_UNSIGNED vector COUNT times.
975
976  -- Id: S.7
977  function ROTATE_LEFT (ARG : UNRESOLVED_SIGNED; COUNT : NATURAL) return UNRESOLVED_SIGNED;
978  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
979  -- Result: Performs a logical rotate-left of an UNRESOLVED_SIGNED
980  --         vector COUNT times.
981
982  -- Id: S.8
983  function ROTATE_RIGHT (ARG : UNRESOLVED_SIGNED; COUNT : NATURAL) return UNRESOLVED_SIGNED;
984  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
985  -- Result: Performs a logical rotate-right of an UNRESOLVED_SIGNED
986  --         vector COUNT times.
987
988  --============================================================================
989
990  --============================================================================
991
992  ------------------------------------------------------------------------------
993  --   Note: Function S.9 is not compatible with IEEE Std 1076-1987. Comment
994  --   out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
995  ------------------------------------------------------------------------------
996  -- Id: S.9
997  function "sll" (ARG : UNRESOLVED_UNSIGNED; COUNT : INTEGER) return UNRESOLVED_UNSIGNED;
998  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
999  -- Result: SHIFT_LEFT(ARG, COUNT)
1000
1001  ------------------------------------------------------------------------------
1002  -- Note: Function S.10 is not compatible with IEEE Std 1076-1987. Comment
1003  --   out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1004  ------------------------------------------------------------------------------
1005  -- Id: S.10
1006  function "sll" (ARG : UNRESOLVED_SIGNED; COUNT : INTEGER) return UNRESOLVED_SIGNED;
1007  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
1008  -- Result: SHIFT_LEFT(ARG, COUNT)
1009
1010  ------------------------------------------------------------------------------
1011  --   Note: Function S.11 is not compatible with IEEE Std 1076-1987. Comment
1012  --   out the function (declaration and body) for IEEE StdL 1076-1987 compatibility.
1013  ------------------------------------------------------------------------------
1014  -- Id: S.11
1015  function "srl" (ARG : UNRESOLVED_UNSIGNED; COUNT : INTEGER) return UNRESOLVED_UNSIGNED;
1016  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
1017  -- Result: SHIFT_RIGHT(ARG, COUNT)
1018
1019  ------------------------------------------------------------------------------
1020  --   Note: Function S.12 is not compatible with IEEE Std 1076-1987. Comment
1021  --   out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1022  ------------------------------------------------------------------------------
1023  -- Id: S.12
1024  function "srl" (ARG : UNRESOLVED_SIGNED; COUNT : INTEGER) return UNRESOLVED_SIGNED;
1025  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
1026  -- Result: UNRESOLVED_SIGNED(SHIFT_RIGHT(UNRESOLVED_UNSIGNED(ARG), COUNT))
1027
1028  ------------------------------------------------------------------------------
1029  --   Note: Function S.13 is not compatible with IEEE Std 1076-1987. Comment
1030  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1031  ------------------------------------------------------------------------------
1032  -- Id: S.13
1033  function "rol" (ARG : UNRESOLVED_UNSIGNED; COUNT : INTEGER) return UNRESOLVED_UNSIGNED;
1034  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
1035  -- Result: ROTATE_LEFT(ARG, COUNT)
1036
1037  ------------------------------------------------------------------------------
1038  --   Note: Function S.14 is not compatible with IEEE Std 1076-1987. Comment
1039  --   out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1040  ------------------------------------------------------------------------------
1041  -- Id: S.14
1042  function "rol" (ARG : UNRESOLVED_SIGNED; COUNT : INTEGER) return UNRESOLVED_SIGNED;
1043  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
1044  -- Result: ROTATE_LEFT(ARG, COUNT)
1045
1046  ------------------------------------------------------------------------------
1047  -- Note: Function S.15 is not compatible with IEEE Std 1076-1987. Comment
1048  --   out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1049  ------------------------------------------------------------------------------
1050  -- Id: S.15
1051  function "ror" (ARG : UNRESOLVED_UNSIGNED; COUNT : INTEGER) return UNRESOLVED_UNSIGNED;
1052  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
1053  -- Result: ROTATE_RIGHT(ARG, COUNT)
1054
1055  ------------------------------------------------------------------------------
1056  --   Note: Function S.16 is not compatible with IEEE Std 1076-1987. Comment
1057  --   out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1058  ------------------------------------------------------------------------------
1059  -- Id: S.16
1060  function "ror" (ARG : UNRESOLVED_SIGNED; COUNT : INTEGER) return UNRESOLVED_SIGNED;
1061  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
1062  -- Result: ROTATE_RIGHT(ARG, COUNT)
1063
1064  ------------------------------------------------------------------------------
1065  -- Note: Function S.17 is not compatible with IEEE Std 1076-1987. Comment
1066  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1067  ------------------------------------------------------------------------------
1068  -- Id: S.17
1069  function "sla" (ARG : UNRESOLVED_UNSIGNED; COUNT : INTEGER) return UNRESOLVED_UNSIGNED;
1070  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
1071  -- Result: SHIFT_LEFT(ARG, COUNT)
1072
1073  ------------------------------------------------------------------------------
1074  -- Note: Function S.18 is not compatible with IEEE Std 1076-1987. Comment
1075  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1076  ------------------------------------------------------------------------------
1077  -- Id: S.18
1078  function "sla" (ARG : UNRESOLVED_SIGNED; COUNT : INTEGER) return UNRESOLVED_SIGNED;
1079  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
1080  -- Result: SHIFT_LEFT(ARG, COUNT)
1081
1082  ------------------------------------------------------------------------------
1083  -- Note: Function S.19 is not compatible with IEEE Std 1076-1987. Comment
1084  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1085  ------------------------------------------------------------------------------
1086  -- Id: S.19
1087  function "sra" (ARG : UNRESOLVED_UNSIGNED; COUNT : INTEGER) return UNRESOLVED_UNSIGNED;
1088  -- Result subtype: UNRESOLVED_UNSIGNED(ARG'LENGTH-1 downto 0)
1089  -- Result: SHIFT_RIGHT(ARG, COUNT)
1090
1091  ------------------------------------------------------------------------------
1092  -- Note: Function S.20 is not compatible with IEEE Std 1076-1987. Comment
1093  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1094  ------------------------------------------------------------------------------
1095  -- Id: S.20
1096  function "sra" (ARG : UNRESOLVED_SIGNED; COUNT : INTEGER) return UNRESOLVED_SIGNED;
1097  -- Result subtype: UNRESOLVED_SIGNED(ARG'LENGTH-1 downto 0)
1098  -- Result: SHIFT_RIGHT(ARG, COUNT)
1099
1100  --============================================================================
1101  --   RESIZE Functions
1102  --============================================================================
1103
1104  -- Id: R.1
1105  function RESIZE (ARG : UNRESOLVED_SIGNED; NEW_SIZE : NATURAL) return UNRESOLVED_SIGNED;
1106  -- Result subtype: UNRESOLVED_SIGNED(NEW_SIZE-1 downto 0)
1107  -- Result: Resizes the UNRESOLVED_SIGNED vector ARG to the specified size.
1108  --         To create a larger vector, the new [leftmost] bit positions
1109  --         are filled with the sign bit (ARG'LEFT). When truncating,
1110  --         the sign bit is retained along with the rightmost part.
1111
1112  -- Id: R.2
1113  function RESIZE (ARG : UNRESOLVED_UNSIGNED; NEW_SIZE : NATURAL) return UNRESOLVED_UNSIGNED;
1114  -- Result subtype: UNRESOLVED_UNSIGNED(NEW_SIZE-1 downto 0)
1115  -- Result: Resizes the UNRESOLVED_SIGNED vector ARG to the specified size.
1116  --         To create a larger vector, the new [leftmost] bit positions
1117  --         are filled with '0'. When truncating, the leftmost bits
1118  --         are dropped.
1119
1120  function RESIZE (ARG, SIZE_RES : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1121  -- Result subtype: UNRESOLVED_UNSIGNED (SIZE_RES'length-1 downto 0)
1122
1123  function RESIZE (ARG, SIZE_RES : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1124  -- Result subtype: UNRESOLVED_SIGNED (SIZE_RES'length-1 downto 0)
1125
1126  --============================================================================
1127  -- Conversion Functions
1128  --============================================================================
1129
1130  -- Id: D.1
1131  function TO_INTEGER (ARG : UNRESOLVED_UNSIGNED) return NATURAL;
1132  -- Result subtype: NATURAL. Value cannot be negative since parameter is an
1133  --             UNRESOLVED_UNSIGNED vector.
1134  -- Result: Converts the UNRESOLVED_UNSIGNED vector to an INTEGER.
1135
1136  -- Id: D.2
1137  function TO_INTEGER (ARG : UNRESOLVED_SIGNED) return INTEGER;
1138  -- Result subtype: INTEGER
1139  -- Result: Converts an UNRESOLVED_SIGNED vector to an INTEGER.
1140
1141  -- Id: D.3
1142  function TO_UNSIGNED (ARG, SIZE : NATURAL) return UNRESOLVED_UNSIGNED;
1143  -- Result subtype: UNRESOLVED_UNSIGNED(SIZE-1 downto 0)
1144  -- Result: Converts a nonnegative INTEGER to an UNRESOLVED_UNSIGNED vector with
1145  --         the specified SIZE.
1146
1147  -- Id: D.4
1148  function TO_SIGNED (ARG : INTEGER; SIZE : NATURAL) return UNRESOLVED_SIGNED;
1149  -- Result subtype: UNRESOLVED_SIGNED(SIZE-1 downto 0)
1150  -- Result: Converts an INTEGER to a UNRESOLVED_SIGNED vector of the specified SIZE.
1151
1152  function TO_UNSIGNED (ARG : NATURAL; SIZE_RES : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1153  -- Result subtype: UNRESOLVED_UNSIGNED(SIZE_RES'length-1 downto 0)
1154
1155  function TO_SIGNED (ARG : INTEGER; SIZE_RES : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1156  -- Result subtype: UNRESOLVED_SIGNED(SIZE_RES'length-1 downto 0)
1157
1158  --============================================================================
1159  -- Logical Operators
1160  --============================================================================
1161
1162  -- Id: L.1
1163  function "not" (L : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1164  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1165  -- Result: Termwise inversion
1166
1167  -- Id: L.2
1168  function "and" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1169  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1170  -- Result: Vector AND operation
1171
1172  -- Id: L.3
1173  function "or" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1174  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1175  -- Result: Vector OR operation
1176
1177  -- Id: L.4
1178  function "nand" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1179  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1180  -- Result: Vector NAND operation
1181
1182  -- Id: L.5
1183  function "nor" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1184  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1185  -- Result: Vector NOR operation
1186
1187  -- Id: L.6
1188  function "xor" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1189  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1190  -- Result: Vector XOR operation
1191
1192  -- ---------------------------------------------------------------------------
1193  -- Note: Function L.7 is not compatible with IEEE Std 1076-1987. Comment
1194  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1195  -- ---------------------------------------------------------------------------
1196  -- Id: L.7
1197  function "xnor" (L, R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1198  -- Result subtype: UNRESOLVED_UNSIGNED(L'LENGTH-1 downto 0)
1199  -- Result: Vector XNOR operation
1200
1201  -- Id: L.8
1202  function "not" (L : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1203  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1204  -- Result: Termwise inversion
1205
1206  -- Id: L.9
1207  function "and" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1208  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1209  -- Result: Vector AND operation
1210
1211  -- Id: L.10
1212  function "or" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1213  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1214  -- Result: Vector OR operation
1215
1216  -- Id: L.11
1217  function "nand" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1218  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1219  -- Result: Vector NAND operation
1220
1221  -- Id: L.12
1222  function "nor" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1223  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1224  -- Result: Vector NOR operation
1225
1226  -- Id: L.13
1227  function "xor" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1228  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1229  -- Result: Vector XOR operation
1230
1231  -- ---------------------------------------------------------------------------
1232  -- Note: Function L.14 is not compatible with IEEE Std 1076-1987. Comment
1233  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1234  -- ---------------------------------------------------------------------------
1235  -- Id: L.14
1236  function "xnor" (L, R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1237  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1238  -- Result: Vector XNOR operation
1239
1240  -- Id: L.15
1241  function "and" (L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1242  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1243  -- Result: Scalar/Vector AND operation
1244
1245  -- Id: L.16
1246  function "and" (L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
1247  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1248  -- Result: Vector/Scalar AND operation
1249
1250  -- Id: L.17
1251  function "or" (L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1252  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1253  -- Result: Scalar/Vector OR operation
1254
1255  -- Id: L.18
1256  function "or" (L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
1257  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1258  -- Result: Vector/Scalar OR operation
1259
1260  -- Id: L.19
1261  function "nand" (L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1262  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1263  -- Result: Scalar/Vector NAND operation
1264
1265  -- Id: L.20
1266  function "nand" (L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
1267  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1268  -- Result: Vector/Scalar NAND operation
1269
1270  -- Id: L.21
1271  function "nor" (L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1272  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1273  -- Result: Scalar/Vector NOR operation
1274
1275  -- Id: L.22
1276  function "nor" (L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
1277  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1278  -- Result: Vector/Scalar NOR operation
1279
1280  -- Id: L.23
1281  function "xor" (L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1282  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1283  -- Result: Scalar/Vector XOR operation
1284
1285  -- Id: L.24
1286  function "xor" (L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
1287  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1288  -- Result: Vector/Scalar XOR operation
1289
1290  ------------------------------------------------------------------------------
1291  -- Note: Function L.25 is not compatible with IEEE Std 1076-1987. Comment
1292  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1293  ------------------------------------------------------------------------------
1294  -- Id: L.25
1295  function "xnor" (L : STD_ULOGIC; R : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1296  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1297  -- Result: Scalar/Vector XNOR operation
1298
1299  ------------------------------------------------------------------------------
1300  -- Note: Function L.26 is not compatible with IEEE Std 1076-1987. Comment
1301  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1302  ------------------------------------------------------------------------------
1303  -- Id: L.26
1304  function "xnor" (L : UNRESOLVED_UNSIGNED; R : STD_ULOGIC) return UNRESOLVED_UNSIGNED;
1305  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1306  -- Result: Vector/Scalar XNOR operation
1307
1308  -- Id: L.27
1309  function "and" (L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1310  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1311  -- Result: Scalar/Vector AND operation
1312
1313  -- Id: L.28
1314  function "and" (L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
1315  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1316  -- Result: Vector/Scalar AND operation
1317
1318  -- Id: L.29
1319  function "or" (L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1320  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1321  -- Result: Scalar/Vector OR operation
1322
1323  -- Id: L.30
1324  function "or" (L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
1325  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1326  -- Result: Vector/Scalar OR operation
1327
1328  -- Id: L.31
1329  function "nand" (L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1330  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1331  -- Result: Scalar/Vector NAND operation
1332
1333  -- Id: L.32
1334  function "nand" (L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
1335  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1336  -- Result: Vector/Scalar NAND operation
1337
1338  -- Id: L.33
1339  function "nor" (L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1340  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1341  -- Result: Scalar/Vector NOR operation
1342
1343  -- Id: L.34
1344  function "nor" (L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
1345  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1346  -- Result: Vector/Scalar NOR operation
1347
1348  -- Id: L.35
1349  function "xor" (L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1350  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1351  -- Result: Scalar/Vector XOR operation
1352
1353  -- Id: L.36
1354  function "xor" (L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
1355  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1356  -- Result: Vector/Scalar XOR operation
1357
1358  ------------------------------------------------------------------------------
1359  -- Note: Function L.37 is not compatible with IEEE Std 1076-1987. Comment
1360  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1361  ------------------------------------------------------------------------------
1362  -- Id: L.37
1363  function "xnor" (L : STD_ULOGIC; R : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1364  -- Result subtype: UNRESOLVED_SIGNED(R'LENGTH-1 downto 0)
1365  -- Result: Scalar/Vector XNOR operation
1366
1367  ------------------------------------------------------------------------------
1368  -- Note: Function L.38 is not compatible with IEEE Std 1076-1987. Comment
1369  -- out the function (declaration and body) for IEEE Std 1076-1987 compatibility.
1370  ------------------------------------------------------------------------------
1371  -- Id: L.38
1372  function "xnor" (L : UNRESOLVED_SIGNED; R : STD_ULOGIC) return UNRESOLVED_SIGNED;
1373  -- Result subtype: UNRESOLVED_SIGNED(L'LENGTH-1 downto 0)
1374  -- Result: Vector/Scalar XNOR operation
1375
1376  ------------------------------------------------------------------------------
1377  -- Note: Function L.39 is not compatible with editions of IEEE Std 1076 from
1378  -- 1987 through 2002. Comment out the function (declaration and body) for
1379  -- compatibility with these editions.
1380  ------------------------------------------------------------------------------
1381  -- Id: L.39
1382  function "and" (L : UNRESOLVED_SIGNED) return STD_ULOGIC;
1383  -- Result subtype: STD_ULOGIC.
1384  -- Result: Result of and'ing all of the bits of the vector.
1385
1386  ------------------------------------------------------------------------------
1387  -- Note: Function L.40 is not compatible with editions of IEEE Std 1076 from
1388  -- 1987 through 2002. Comment out the function (declaration and body) for
1389  -- compatibility with these editions.
1390  ------------------------------------------------------------------------------
1391  -- Id: L.40
1392  function "nand" (L : UNRESOLVED_SIGNED) return STD_ULOGIC;
1393  -- Result subtype: STD_ULOGIC.
1394  -- Result: Result of nand'ing all of the bits of the vector.
1395
1396  ------------------------------------------------------------------------------
1397  -- Note: Function L.41 is not compatible with editions of IEEE Std 1076 from
1398  -- 1987 through 2002. Comment out the function (declaration and body) for
1399  -- compatibility with these editions.
1400  ------------------------------------------------------------------------------
1401  -- Id: L.41
1402  function "or" (L : UNRESOLVED_SIGNED) return STD_ULOGIC;
1403  -- Result subtype: STD_ULOGIC.
1404  -- Result: Result of or'ing all of the bits of the vector.
1405
1406  ------------------------------------------------------------------------------
1407  -- Note: Function L.42 is not compatible with editions of IEEE Std 1076 from
1408  -- 1987 through 2002. Comment out the function (declaration and body) for
1409  -- compatibility with these editions.
1410  ------------------------------------------------------------------------------
1411  -- Id: L.42
1412  function "nor" (L : UNRESOLVED_SIGNED) return STD_ULOGIC;
1413  -- Result subtype: STD_ULOGIC.
1414  -- Result: Result of nor'ing all of the bits of the vector.
1415
1416  ------------------------------------------------------------------------------
1417  -- Note: Function L.43 is not compatible with editions of IEEE Std 1076 from
1418  -- 1987 through 2002. Comment out the function (declaration and body) for
1419  -- compatibility with these editions.
1420  ------------------------------------------------------------------------------
1421  -- Id: L.43
1422  function "xor" (L : UNRESOLVED_SIGNED) return STD_ULOGIC;
1423  -- Result subtype: STD_ULOGIC.
1424  -- Result: Result of xor'ing all of the bits of the vector.
1425
1426  ------------------------------------------------------------------------------
1427  -- Note: Function L.44 is not compatible with editions of IEEE Std 1076 from
1428  -- 1987 through 2002. Comment out the function (declaration and body) for
1429  -- compatibility with these editions.
1430  ------------------------------------------------------------------------------
1431  -- Id: L.44
1432  function "xnor" (L : UNRESOLVED_SIGNED) return STD_ULOGIC;
1433  -- Result subtype: STD_ULOGIC.
1434  -- Result: Result of xnor'ing all of the bits of the vector.
1435
1436  ------------------------------------------------------------------------------
1437  -- Note: Function L.45 is not compatible with editions of IEEE Std 1076 from
1438  -- 1987 through 2002. Comment out the function (declaration and body) for
1439  -- compatibility with these editions.
1440  ------------------------------------------------------------------------------
1441  -- Id: L.45
1442  function "and" (L : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
1443  -- Result subtype: STD_ULOGIC.
1444  -- Result: Result of and'ing all of the bits of the vector.
1445
1446  ------------------------------------------------------------------------------
1447  -- Note: Function L.46 is not compatible with editions of IEEE Std 1076 from
1448  -- 1987 through 2002. Comment out the function (declaration and body) for
1449  -- compatibility with these editions.
1450  ------------------------------------------------------------------------------
1451  -- Id: L.46
1452  function "nand" (L : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
1453  -- Result subtype: STD_ULOGIC.
1454  -- Result: Result of nand'ing all of the bits of the vector.
1455
1456  ------------------------------------------------------------------------------
1457  -- Note: Function L.47 is not compatible with editions of IEEE Std 1076 from
1458  -- 1987 through 2002. Comment out the function (declaration and body) for
1459  -- compatibility with these editions.
1460  ------------------------------------------------------------------------------
1461  -- Id: L.47
1462  function "or" (L : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
1463  -- Result subtype: STD_ULOGIC.
1464  -- Result: Result of or'ing all of the bits of the vector.
1465
1466  ------------------------------------------------------------------------------
1467  -- Note: Function L.48 is not compatible with editions of IEEE Std 1076 from
1468  -- 1987 through 2002. Comment out the function (declaration and body) for
1469  -- compatibility with these editions.
1470  ------------------------------------------------------------------------------
1471  -- Id: L.48
1472  function "nor" (L : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
1473  -- Result subtype: STD_ULOGIC.
1474  -- Result: Result of nor'ing all of the bits of the vector.
1475
1476  ------------------------------------------------------------------------------
1477  -- Note: Function L.49 is not compatible with editions of IEEE Std 1076 from
1478  -- 1987 through 2002. Comment out the function (declaration and body) for
1479  -- compatibility with these editions.
1480  ------------------------------------------------------------------------------
1481  -- Id: L.49
1482  function "xor" (L : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
1483  -- Result subtype: STD_ULOGIC.
1484  -- Result: Result of xor'ing all of the bits of the vector.
1485
1486  ------------------------------------------------------------------------------
1487  -- Note: Function L.50 is not compatible with editions of IEEE Std 1076 from
1488  -- 1987 through 2002. Comment out the function (declaration and body) for
1489  -- compatibility with these editions.
1490  ------------------------------------------------------------------------------
1491  -- Id: L.50
1492  function "xnor" (L : UNRESOLVED_UNSIGNED) return STD_ULOGIC;
1493  -- Result subtype: STD_ULOGIC.
1494  -- Result: Result of xnor'ing all of the bits of the vector.
1495
1496  --============================================================================
1497  -- Match Functions
1498  --============================================================================
1499
1500  -- Id: M.1
1501  function STD_MATCH (L, R : STD_ULOGIC) return BOOLEAN;
1502  -- Result subtype: BOOLEAN
1503  -- Result: terms compared per STD_LOGIC_1164 intent
1504
1505  -- Id: M.2
1506  function STD_MATCH (L, R : UNRESOLVED_UNSIGNED) return BOOLEAN;
1507  -- Result subtype: BOOLEAN
1508  -- Result: terms compared per STD_LOGIC_1164 intent
1509
1510  -- Id: M.3
1511  function STD_MATCH (L, R : UNRESOLVED_SIGNED) return BOOLEAN;
1512  -- Result subtype: BOOLEAN
1513  -- Result: terms compared per STD_LOGIC_1164 intent
1514
1515  -- Id: M.5
1516  function STD_MATCH (L, R : STD_ULOGIC_VECTOR) return BOOLEAN;
1517  -- Result subtype: BOOLEAN
1518  -- Result: terms compared per STD_LOGIC_1164 intent
1519
1520  --============================================================================
1521  -- Translation Functions
1522  --============================================================================
1523
1524  -- Id: T.1
1525  function TO_01 (S : UNRESOLVED_UNSIGNED; XMAP : STD_ULOGIC := '0') return UNRESOLVED_UNSIGNED;
1526  -- Result subtype: UNRESOLVED_UNSIGNED(S'RANGE)
1527  -- Result: Termwise, 'H' is translated to '1', and 'L' is translated
1528  --         to '0'. If a value other than '0'|'1'|'H'|'L' is found,
1529  --         the array is set to (others => XMAP), and a warning is
1530  --         issued.
1531
1532  -- Id: T.2
1533  function TO_01 (S : UNRESOLVED_SIGNED; XMAP : STD_ULOGIC := '0') return UNRESOLVED_SIGNED;
1534  -- Result subtype: UNRESOLVED_SIGNED(S'RANGE)
1535  -- Result: Termwise, 'H' is translated to '1', and 'L' is translated
1536  --         to '0'. If a value other than '0'|'1'|'H'|'L' is found,
1537  --         the array is set to (others => XMAP), and a warning is
1538  --         issued.
1539
1540  -- Id: T.3
1541  function TO_X01 (S : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1542  -- Result subtype: UNRESOLVED_UNSIGNED(S'RANGE)
1543  -- Result: Termwise, 'H' is translated to '1', 'L' is translated to '0',
1544  --         and values other than '0'|'1'|'H'|'L' are translated to 'X'.
1545
1546  -- Id: T.4
1547  function TO_X01 (S : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1548  -- Result subtype: UNRESOLVED_SIGNED(S'RANGE)
1549  -- Result: Termwise, 'H' is translated to '1', 'L' is translated to '0',
1550  --         and values other than '0'|'1'|'H'|'L' are translated to 'X'.
1551
1552  -- Id: T.5
1553  function TO_X01Z (S : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1554  -- Result subtype: UNRESOLVED_UNSIGNED(S'RANGE)
1555  -- Result: Termwise, 'H' is translated to '1', 'L' is translated to '0',
1556  --         and values other than '0'|'1'|'H'|'L'|'Z' are translated to 'X'.
1557
1558  -- Id: T.6
1559  function TO_X01Z (S : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1560  -- Result subtype: UNRESOLVED_SIGNED(S'RANGE)
1561  -- Result: Termwise, 'H' is translated to '1', 'L' is translated to '0',
1562  --         and values other than '0'|'1'|'H'|'L'|'Z' are translated to 'X'.
1563
1564  -- Id: T.7
1565  function TO_UX01 (S : UNRESOLVED_UNSIGNED) return UNRESOLVED_UNSIGNED;
1566  -- Result subtype: UNRESOLVED_UNSIGNED(S'RANGE)
1567  -- Result: Termwise, 'H' is translated to '1', 'L' is translated to '0',
1568  --         and values other than 'U'|'0'|'1'|'H'|'L' are translated to 'X'.
1569
1570  -- Id: T.8
1571  function TO_UX01 (S : UNRESOLVED_SIGNED) return UNRESOLVED_SIGNED;
1572  -- Result subtype: UNRESOLVED_SIGNED(S'RANGE)
1573  -- Result: Termwise, 'H' is translated to '1', 'L' is translated to '0',
1574  --         and values other than 'U'|'0'|'1'|'H'|'L' are translated to 'X'.
1575
1576  -- Id: T.9
1577  function IS_X (S : UNRESOLVED_UNSIGNED) return BOOLEAN;
1578  -- Result subtype: BOOLEAN
1579  -- Result: TRUE if S contains a 'U'|'X'|'Z'|'W'|'-' value, FALSE otherwise.
1580
1581  -- Id: T.10
1582  function IS_X (S : UNRESOLVED_SIGNED) return BOOLEAN;
1583  -- Result subtype: BOOLEAN
1584  -- Result: TRUE if S contains a 'U'|'X'|'Z'|'W'|'-' value, FALSE otherwise.
1585
1586  --============================================================================
1587  -- string conversion and write operations
1588  --============================================================================
1589  -- the following operations are predefined
1590
1591  -- function TO_STRING (value : UNRESOLVED_UNSIGNED) return STRING;
1592  -- function TO_STRING (value : UNRESOLVED_SIGNED) return STRING;
1593
1594  -- explicitly defined operations
1595
1596  alias TO_BSTRING is TO_STRING [UNRESOLVED_UNSIGNED return STRING];
1597  alias TO_BSTRING is TO_STRING [UNRESOLVED_SIGNED return STRING];
1598  alias to_binary_string is TO_STRING [UNRESOLVED_UNSIGNED return STRING];
1599  alias to_binary_string is TO_STRING [UNRESOLVED_SIGNED return STRING];
1600
1601  function TO_OSTRING (value : UNRESOLVED_UNSIGNED) return STRING;
1602  function TO_OSTRING (value : UNRESOLVED_SIGNED) return STRING;
1603  alias to_octal_string is TO_OSTRING [UNRESOLVED_UNSIGNED return STRING];
1604  alias to_octal_string is TO_OSTRING [UNRESOLVED_SIGNED return STRING];
1605
1606  function to_hstring (value : UNRESOLVED_UNSIGNED) return STRING;
1607  function to_hstring (value : UNRESOLVED_SIGNED) return STRING;
1608  alias to_hex_string is to_hstring [UNRESOLVED_UNSIGNED return STRING];
1609  alias to_hex_string is to_hstring [UNRESOLVED_SIGNED return STRING];
1610
1611  procedure READ(L : inout LINE; VALUE : out UNRESOLVED_UNSIGNED; GOOD : out BOOLEAN);
1612
1613  procedure READ(L : inout LINE; VALUE : out UNRESOLVED_UNSIGNED);
1614
1615  procedure READ(L : inout LINE; VALUE : out UNRESOLVED_SIGNED; GOOD : out BOOLEAN);
1616
1617  procedure READ(L : inout LINE; VALUE : out UNRESOLVED_SIGNED);
1618
1619  procedure WRITE (L         : inout LINE; VALUE : in UNRESOLVED_UNSIGNED;
1620                   JUSTIFIED : in    SIDE := right; FIELD : in WIDTH := 0);
1621
1622  procedure WRITE (L         : inout LINE; VALUE : in UNRESOLVED_SIGNED;
1623                   JUSTIFIED : in    SIDE := right; FIELD : in WIDTH := 0);
1624
1625  alias BREAD is READ [LINE, UNRESOLVED_UNSIGNED, BOOLEAN];
1626  alias BREAD is READ [LINE, UNRESOLVED_SIGNED, BOOLEAN];
1627
1628  alias BREAD is READ [LINE, UNRESOLVED_UNSIGNED];
1629  alias BREAD is READ [LINE, UNRESOLVED_SIGNED];
1630
1631  alias BINARY_READ is READ [LINE, UNRESOLVED_UNSIGNED, BOOLEAN];
1632  alias BINARY_READ is READ [LINE, UNRESOLVED_SIGNED, BOOLEAN];
1633
1634  alias BINARY_READ is READ [LINE, UNRESOLVED_UNSIGNED];
1635  alias BINARY_READ is READ [LINE, UNRESOLVED_SIGNED];
1636
1637  procedure OREAD (L : inout LINE; VALUE : out UNRESOLVED_UNSIGNED; GOOD : out BOOLEAN);
1638  procedure OREAD (L : inout LINE; VALUE : out UNRESOLVED_SIGNED; GOOD : out BOOLEAN);
1639
1640  procedure OREAD (L : inout LINE; VALUE : out UNRESOLVED_UNSIGNED);
1641  procedure OREAD (L : inout LINE; VALUE : out UNRESOLVED_SIGNED);
1642
1643  alias OCTAL_READ is OREAD [LINE, UNRESOLVED_UNSIGNED, BOOLEAN];
1644  alias OCTAL_READ is OREAD [LINE, UNRESOLVED_SIGNED, BOOLEAN];
1645
1646  alias OCTAL_READ is OREAD [LINE, UNRESOLVED_UNSIGNED];
1647  alias OCTAL_READ is OREAD [LINE, UNRESOLVED_SIGNED];
1648
1649  procedure HREAD (L : inout LINE; VALUE : out UNRESOLVED_UNSIGNED; GOOD : out BOOLEAN);
1650  procedure HREAD (L : inout LINE; VALUE : out UNRESOLVED_SIGNED; GOOD : out BOOLEAN);
1651
1652  procedure HREAD (L : inout LINE; VALUE : out UNRESOLVED_UNSIGNED);
1653  procedure HREAD (L : inout LINE; VALUE : out UNRESOLVED_SIGNED);
1654
1655  alias HEX_READ is HREAD [LINE, UNRESOLVED_UNSIGNED, BOOLEAN];
1656  alias HEX_READ is HREAD [LINE, UNRESOLVED_SIGNED, BOOLEAN];
1657
1658  alias HEX_READ is HREAD [LINE, UNRESOLVED_UNSIGNED];
1659  alias HEX_READ is HREAD [LINE, UNRESOLVED_SIGNED];
1660
1661  alias BWRITE is WRITE [LINE, UNRESOLVED_UNSIGNED, SIDE, WIDTH];
1662  alias BWRITE is WRITE [LINE, UNRESOLVED_SIGNED, SIDE, WIDTH];
1663
1664  alias BINARY_WRITE is WRITE [LINE, UNRESOLVED_UNSIGNED, SIDE, WIDTH];
1665  alias BINARY_WRITE is WRITE [LINE, UNRESOLVED_SIGNED, SIDE, WIDTH];
1666
1667  procedure OWRITE (L         : inout LINE; VALUE : in UNRESOLVED_UNSIGNED;
1668                    JUSTIFIED : in    SIDE := right; FIELD : in WIDTH := 0);
1669
1670  procedure OWRITE (L         : inout LINE; VALUE : in UNRESOLVED_SIGNED;
1671                    JUSTIFIED : in    SIDE := right; FIELD : in WIDTH := 0);
1672
1673  alias OCTAL_WRITE is OWRITE [LINE, UNRESOLVED_UNSIGNED, SIDE, WIDTH];
1674  alias OCTAL_WRITE is OWRITE [LINE, UNRESOLVED_SIGNED, SIDE, WIDTH];
1675
1676  procedure HWRITE (L         : inout LINE; VALUE : in UNRESOLVED_UNSIGNED;
1677                    JUSTIFIED : in    SIDE := right; FIELD : in WIDTH := 0);
1678
1679  procedure HWRITE (L         : inout LINE; VALUE : in UNRESOLVED_SIGNED;
1680                    JUSTIFIED : in    SIDE := right; FIELD : in WIDTH := 0);
1681
1682  alias HEX_WRITE is HWRITE [LINE, UNRESOLVED_UNSIGNED, SIDE, WIDTH];
1683  alias HEX_WRITE is HWRITE [LINE, UNRESOLVED_SIGNED, SIDE, WIDTH];
1684
1685end package NUMERIC_STD;
1686