⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numeric_std.vhdl

📁 vhdl集成电路设计软件.需要用gcc-4.0.2版本编译.
💻 VHDL
📖 第 1 页 / 共 3 页
字号:
-- ------------------------------------------------------------------------ Copyright 1995 by IEEE. All rights reserved.---- This source file is considered by the IEEE to be an essential part of the use-- of the standard 1076.3 and as such may be distributed without change, except-- as permitted by the standard. This source file may not be sold or distributed-- for profit. This package may be modified to include additional data required-- by tools, but must in no way change the external interfaces or simulation-- behaviour of the description. It is permissible to add comments and/or-- attributes to the package declarations, but not to change or delete any-- original lines of the approved package declaration. The package body may be-- changed only in accordance with the terms of clauses 7.1 and 7.2 of the-- standard.---- Title      : Standard VHDL Synthesis Package (1076.3, NUMERIC_STD)---- Library    : This package shall be compiled into a library symbolically--            : named IEEE.---- Developers : IEEE DASC Synthesis Working Group, PAR 1076.3---- Purpose    : This package defines numeric types and arithmetic functions--            : for use with synthesis tools. Two numeric types are defined:--            : -- > UNSIGNED: represents UNSIGNED number in vector form--            : -- > SIGNED: represents a SIGNED number in vector form--            : The base element type is type STD_LOGIC.--            : The leftmost bit is treated as the most significant bit.--            : Signed vectors are represented in two's complement form.--            : This package contains overloaded arithmetic operators on--            : the SIGNED and UNSIGNED types. The package also contains--            : useful type conversions functions.--            :--            : If any argument to a function is a null array, a null array is--            : returned (exceptions, if any, are noted individually).---- Limitation :---- Note       : No declarations or definitions shall be included in,--            : or excluded from this package. The "package declaration"--            : defines the types, subtypes and declarations of--            : NUMERIC_STD. The NUMERIC_STD package body shall be--            : considered the formal definition of the semantics of--            : this package. Tool developers may choose to implement--            : the package body in the most efficient manner available--            : to them.---- ----------------------------------------------------------------------   modification history :-- ----------------------------------------------------------------------   Version:  2.4--   Date   :  12 April 1995-- -----------------------------------------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.all;package NUMERIC_STD is  constant CopyRightNotice: STRING      := "Copyright 1995 IEEE. All rights reserved.";  --============================================================================  -- Numeric array type definitions  --============================================================================  type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;  type SIGNED is array (NATURAL range <>) of STD_LOGIC;  --============================================================================  -- Arithmetic Operators:  --===========================================================================  -- Id: A.1  function "abs" (ARG: SIGNED) return SIGNED;  -- Result subtype: SIGNED(ARG'LENGTH-1 downto 0).  -- Result: Returns the absolute value of a SIGNED vector ARG.  -- Id: A.2  function "-" (ARG: SIGNED) return SIGNED;  -- Result subtype: SIGNED(ARG'LENGTH-1 downto 0).  -- Result: Returns the value of the unary minus operation on a  --         SIGNED vector ARG.  --============================================================================  -- Id: A.3  function "+" (L, R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(MAX(L'LENGTH, R'LENGTH)-1 downto 0).  -- Result: Adds two UNSIGNED vectors that may be of different lengths.  -- Id: A.4  function "+" (L, R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(MAX(L'LENGTH, R'LENGTH)-1 downto 0).  -- Result: Adds two SIGNED vectors that may be of different lengths.  -- Id: A.5  function "+" (L: UNSIGNED; R: NATURAL) return UNSIGNED;  -- Result subtype: UNSIGNED(L'LENGTH-1 downto 0).  -- Result: Adds an UNSIGNED vector, L, with a non-negative INTEGER, R.  -- Id: A.6  function "+" (L: NATURAL; R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0).  -- Result: Adds a non-negative INTEGER, L, with an UNSIGNED vector, R.  -- Id: A.7  function "+" (L: INTEGER; R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(R'LENGTH-1 downto 0).  -- Result: Adds an INTEGER, L(may be positive or negative), to a SIGNED  --         vector, R.  -- Id: A.8  function "+" (L: SIGNED; R: INTEGER) return SIGNED;  -- Result subtype: SIGNED(L'LENGTH-1 downto 0).  -- Result: Adds a SIGNED vector, L, to an INTEGER, R.  --============================================================================  -- Id: A.9  function "-" (L, R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(MAX(L'LENGTH, R'LENGTH)-1 downto 0).  -- Result: Subtracts two UNSIGNED vectors that may be of different lengths.  -- Id: A.10  function "-" (L, R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(MAX(L'LENGTH, R'LENGTH)-1 downto 0).  -- Result: Subtracts a SIGNED vector, R, from another SIGNED vector, L,  --         that may possibly be of different lengths.  -- Id: A.11  function "-" (L: UNSIGNED;R: NATURAL) return UNSIGNED;  -- Result subtype: UNSIGNED(L'LENGTH-1 downto 0).  -- Result: Subtracts a non-negative INTEGER, R, from an UNSIGNED vector, L.  -- Id: A.12  function "-" (L: NATURAL; R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0).  -- Result: Subtracts an UNSIGNED vector, R, from a non-negative INTEGER, L.  -- Id: A.13  function "-" (L: SIGNED; R: INTEGER) return SIGNED;  -- Result subtype: SIGNED(L'LENGTH-1 downto 0).  -- Result: Subtracts an INTEGER, R, from a SIGNED vector, L.  -- Id: A.14  function "-" (L: INTEGER; R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(R'LENGTH-1 downto 0).  -- Result: Subtracts a SIGNED vector, R, from an INTEGER, L.  --============================================================================  -- Id: A.15  function "*" (L, R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED((L'LENGTH+R'LENGTH-1) downto 0).  -- Result: Performs the multiplication operation on two UNSIGNED vectors  --         that may possibly be of different lengths.  -- Id: A.16  function "*" (L, R: SIGNED) return SIGNED;  -- Result subtype: SIGNED((L'LENGTH+R'LENGTH-1) downto 0)  -- Result: Multiplies two SIGNED vectors that may possibly be of  --         different lengths.  -- Id: A.17  function "*" (L: UNSIGNED; R: NATURAL) return UNSIGNED;  -- Result subtype: UNSIGNED((L'LENGTH+L'LENGTH-1) downto 0).  -- Result: Multiplies an UNSIGNED vector, L, with a non-negative  --         INTEGER, R. R is converted to an UNSIGNED vector of  --         SIZE L'LENGTH before multiplication.  -- Id: A.18  function "*" (L: NATURAL; R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED((R'LENGTH+R'LENGTH-1) downto 0).  -- Result: Multiplies an UNSIGNED vector, R, with a non-negative  --         INTEGER, L. L is converted to an UNSIGNED vector of  --         SIZE R'LENGTH before multiplication.  -- Id: A.19  function "*" (L: SIGNED; R: INTEGER) return SIGNED;  -- Result subtype: SIGNED((L'LENGTH+L'LENGTH-1) downto 0)  -- Result: Multiplies a SIGNED vector, L, with an INTEGER, R. R is  --         converted to a SIGNED vector of SIZE L'LENGTH before  --         multiplication.  -- Id: A.20  function "*" (L: INTEGER; R: SIGNED) return SIGNED;  -- Result subtype: SIGNED((R'LENGTH+R'LENGTH-1) downto 0)  -- Result: Multiplies a SIGNED vector, R, with an INTEGER, L. L is  --         converted to a SIGNED vector of SIZE R'LENGTH before  --         multiplication.  --============================================================================  --  -- NOTE: If second argument is zero for "/" operator, a severity level  --       of ERROR is issued.  -- Id: A.21  function "/" (L, R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(L'LENGTH-1 downto 0)  -- Result: Divides an UNSIGNED vector, L, by another UNSIGNED vector, R.  -- Id: A.22  function "/" (L, R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(L'LENGTH-1 downto 0)  -- Result: Divides an SIGNED vector, L, by another SIGNED vector, R.  -- Id: A.23  function "/" (L: UNSIGNED; R: NATURAL) return UNSIGNED;  -- Result subtype: UNSIGNED(L'LENGTH-1 downto 0)  -- Result: Divides an UNSIGNED vector, L, by a non-negative INTEGER, R.  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.  -- Id: A.24  function "/" (L: NATURAL; R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0)  -- Result: Divides a non-negative INTEGER, L, by an UNSIGNED vector, R.  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.  -- Id: A.25  function "/" (L: SIGNED; R: INTEGER) return SIGNED;  -- Result subtype: SIGNED(L'LENGTH-1 downto 0)  -- Result: Divides a SIGNED vector, L, by an INTEGER, R.  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.  -- Id: A.26  function "/" (L: INTEGER; R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(R'LENGTH-1 downto 0)  -- Result: Divides an INTEGER, L, by a SIGNED vector, R.  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.  --============================================================================  --  -- NOTE: If second argument is zero for "rem" operator, a severity level  --       of ERROR is issued.  -- Id: A.27  function "rem" (L, R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0)  -- Result: Computes "L rem R" where L and R are UNSIGNED vectors.  -- Id: A.28  function "rem" (L, R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(R'LENGTH-1 downto 0)  -- Result: Computes "L rem R" where L and R are SIGNED vectors.  -- Id: A.29  function "rem" (L: UNSIGNED; R: NATURAL) return UNSIGNED;  -- Result subtype: UNSIGNED(L'LENGTH-1 downto 0)  -- Result: Computes "L rem R" where L is an UNSIGNED vector and R is a  --         non-negative INTEGER.  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.  -- Id: A.30  function "rem" (L: NATURAL; R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0)  -- Result: Computes "L rem R" where R is an UNSIGNED vector and L is a  --         non-negative INTEGER.  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.  -- Id: A.31  function "rem" (L: SIGNED; R: INTEGER) return SIGNED;  -- Result subtype: SIGNED(L'LENGTH-1 downto 0)  -- Result: Computes "L rem R" where L is SIGNED vector and R is an INTEGER.  --         If NO_OF_BITS(R) > L'LENGTH, result is truncated to L'LENGTH.  -- Id: A.32  function "rem" (L: INTEGER; R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(R'LENGTH-1 downto 0)  -- Result: Computes "L rem R" where R is SIGNED vector and L is an INTEGER.  --         If NO_OF_BITS(L) > R'LENGTH, result is truncated to R'LENGTH.  --============================================================================  --  -- NOTE: If second argument is zero for "mod" operator, a severity level  --       of ERROR is issued.  -- Id: A.33  function "mod" (L, R: UNSIGNED) return UNSIGNED;  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0)  -- Result: Computes "L mod R" where L and R are UNSIGNED vectors.  -- Id: A.34  function "mod" (L, R: SIGNED) return SIGNED;  -- Result subtype: SIGNED(R'LENGTH-1 downto 0)  -- Result: Computes "L mod R" where L and R are SIGNED vectors.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -