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