📄 pkg_xilinx.vhd
字号:
--------------------------------------------------------------------------------- Package: PKG_XILINX.vhd---------------------------------------------------------------------------------**************************************************************************---- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"-- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR-- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION-- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION-- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS-- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,-- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE-- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY-- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE-- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR-- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF-- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS-- FOR A PARTICULAR PURPOSE.---- (c) Copyright 2004 Xilinx, Inc.-- All rights reserved.----**************************************************************************--------------------------------------------------------------------------------- Filename: PKG_XILINX.vhd---- Description:---- This package contains components that are commonly used in VHDL Design-- Use this package in place of std_logic_unsigned and std_logic_signed.-- This package should be used together with IEEE's numberic_std package.---- Design Notes:-- 1.-- 2.-- 3.--------------------------------------------------------------------------------- Owners: Jerry Chuang-- Revision: 2.0---- Modification History:-- Date Init Description-- --------- ------ ---------------------------------------------------------- 11/13/2004 JC Initial Release---------------------------------------------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.NUMERIC_STD.ALL;--use work.PKG_XILINX.all;package PKG_XILINX is -------------------------------------------------- -- SUBTYPES -------------------------------------------------- type lv2_array is array( natural range <> ) of std_logic_vector( 1 downto 0); type lv3_array is array( natural range <> ) of std_logic_vector( 2 downto 0); type lv4_array is array( natural range <> ) of std_logic_vector( 3 downto 0); type lv5_array is array( natural range <> ) of std_logic_vector( 4 downto 0); type lv6_array is array( natural range <> ) of std_logic_vector( 5 downto 0); type lv7_array is array( natural range <> ) of std_logic_vector( 6 downto 0); type lv8_array is array( natural range <> ) of std_logic_vector( 7 downto 0); type lv9_array is array( natural range <> ) of std_logic_vector( 8 downto 0); type lv10_array is array( natural range <> ) of std_logic_vector( 9 downto 0); type lv11_array is array( natural range <> ) of std_logic_vector(10 downto 0); type lv12_array is array( natural range <> ) of std_logic_vector(11 downto 0); type lv13_array is array( natural range <> ) of std_logic_vector(12 downto 0); type lv14_array is array( natural range <> ) of std_logic_vector(13 downto 0); type lv15_array is array( natural range <> ) of std_logic_vector(14 downto 0); type lv16_array is array( natural range <> ) of std_logic_vector(15 downto 0); type lv17_array is array( natural range <> ) of std_logic_vector(16 downto 0); type lv18_array is array( natural range <> ) of std_logic_vector(17 downto 0); type lv19_array is array( natural range <> ) of std_logic_vector(18 downto 0); type lv20_array is array( natural range <> ) of std_logic_vector(19 downto 0); type lv21_array is array( natural range <> ) of std_logic_vector(20 downto 0); type lv22_array is array( natural range <> ) of std_logic_vector(21 downto 0); type lv23_array is array( natural range <> ) of std_logic_vector(22 downto 0); type lv24_array is array( natural range <> ) of std_logic_vector(23 downto 0); type lv25_array is array( natural range <> ) of std_logic_vector(24 downto 0); type lv26_array is array( natural range <> ) of std_logic_vector(25 downto 0); type lv27_array is array( natural range <> ) of std_logic_vector(26 downto 0); type lv28_array is array( natural range <> ) of std_logic_vector(27 downto 0); type lv29_array is array( natural range <> ) of std_logic_vector(28 downto 0); type lv30_array is array( natural range <> ) of std_logic_vector(29 downto 0); type lv31_array is array( natural range <> ) of std_logic_vector(30 downto 0); type lv32_array is array( natural range <> ) of std_logic_vector(31 downto 0); type lv33_array is array( natural range <> ) of std_logic_vector(32 downto 0); type lv34_array is array( natural range <> ) of std_logic_vector(33 downto 0); type lv35_array is array( natural range <> ) of std_logic_vector(34 downto 0); type lv36_array is array( natural range <> ) of std_logic_vector(35 downto 0); type lv37_array is array( natural range <> ) of std_logic_vector(36 downto 0); type lv38_array is array( natural range <> ) of std_logic_vector(37 downto 0); type lv39_array is array( natural range <> ) of std_logic_vector(38 downto 0); type lv40_array is array( natural range <> ) of std_logic_vector(39 downto 0); type lv41_array is array( natural range <> ) of std_logic_vector(40 downto 0); type lv42_array is array( natural range <> ) of std_logic_vector(41 downto 0); type lv43_array is array( natural range <> ) of std_logic_vector(42 downto 0); type lv44_array is array( natural range <> ) of std_logic_vector(43 downto 0); type lv45_array is array( natural range <> ) of std_logic_vector(44 downto 0); type lv80_array is array( natural range <> ) of std_logic_vector(79 downto 0); type un2_array is array( natural range <> ) of unsigned( 1 downto 0); type un3_array is array( natural range <> ) of unsigned( 2 downto 0); type un4_array is array( natural range <> ) of unsigned( 3 downto 0); type un5_array is array( natural range <> ) of unsigned( 4 downto 0); type un6_array is array( natural range <> ) of unsigned( 5 downto 0); type un7_array is array( natural range <> ) of unsigned( 6 downto 0); type un8_array is array( natural range <> ) of unsigned( 7 downto 0); type un9_array is array( natural range <> ) of unsigned( 8 downto 0); type un10_array is array( natural range <> ) of unsigned( 9 downto 0); type un11_array is array( natural range <> ) of unsigned(10 downto 0); type un12_array is array( natural range <> ) of unsigned(11 downto 0); type un13_array is array( natural range <> ) of unsigned(12 downto 0); type un14_array is array( natural range <> ) of unsigned(13 downto 0); type un15_array is array( natural range <> ) of unsigned(14 downto 0); type un16_array is array( natural range <> ) of unsigned(15 downto 0); type un17_array is array( natural range <> ) of unsigned(16 downto 0); type un18_array is array( natural range <> ) of unsigned(17 downto 0); type un19_array is array( natural range <> ) of unsigned(18 downto 0); type un20_array is array( natural range <> ) of unsigned(19 downto 0); type un21_array is array( natural range <> ) of unsigned(20 downto 0); type un22_array is array( natural range <> ) of unsigned(21 downto 0); type un23_array is array( natural range <> ) of unsigned(22 downto 0); type un24_array is array( natural range <> ) of unsigned(23 downto 0); type un25_array is array( natural range <> ) of unsigned(24 downto 0); type un26_array is array( natural range <> ) of unsigned(25 downto 0); type un27_array is array( natural range <> ) of unsigned(26 downto 0); type un28_array is array( natural range <> ) of unsigned(27 downto 0); type un29_array is array( natural range <> ) of unsigned(28 downto 0); type un30_array is array( natural range <> ) of unsigned(29 downto 0); type un31_array is array( natural range <> ) of unsigned(30 downto 0); type un32_array is array( natural range <> ) of unsigned(31 downto 0); type un33_array is array( natural range <> ) of unsigned(32 downto 0); type un34_array is array( natural range <> ) of unsigned(33 downto 0); type un35_array is array( natural range <> ) of unsigned(34 downto 0); type un36_array is array( natural range <> ) of unsigned(35 downto 0); type un37_array is array( natural range <> ) of unsigned(36 downto 0); type un38_array is array( natural range <> ) of unsigned(37 downto 0); type un39_array is array( natural range <> ) of unsigned(38 downto 0); type un40_array is array( natural range <> ) of unsigned(39 downto 0); type un80_array is array( natural range <> ) of unsigned(79 downto 0); type sn2_array is array( natural range <> ) of signed( 1 downto 0); type sn3_array is array( natural range <> ) of signed( 2 downto 0); type sn4_array is array( natural range <> ) of signed( 3 downto 0); type sn5_array is array( natural range <> ) of signed( 4 downto 0); type sn6_array is array( natural range <> ) of signed( 5 downto 0); type sn7_array is array( natural range <> ) of signed( 6 downto 0); type sn8_array is array( natural range <> ) of signed( 7 downto 0); type sn9_array is array( natural range <> ) of signed( 8 downto 0); type sn10_array is array( natural range <> ) of signed( 9 downto 0); type sn11_array is array( natural range <> ) of signed(10 downto 0); type sn12_array is array( natural range <> ) of signed(11 downto 0); type sn13_array is array( natural range <> ) of signed(12 downto 0); type sn14_array is array( natural range <> ) of signed(13 downto 0); type sn15_array is array( natural range <> ) of signed(14 downto 0); type sn16_array is array( natural range <> ) of signed(15 downto 0); type sn17_array is array( natural range <> ) of signed(16 downto 0); type sn18_array is array( natural range <> ) of signed(17 downto 0); type sn19_array is array( natural range <> ) of signed(18 downto 0); type sn20_array is array( natural range <> ) of signed(19 downto 0); type sn21_array is array( natural range <> ) of signed(20 downto 0); type sn22_array is array( natural range <> ) of signed(21 downto 0); type sn23_array is array( natural range <> ) of signed(22 downto 0); type sn24_array is array( natural range <> ) of signed(23 downto 0); type sn25_array is array( natural range <> ) of signed(24 downto 0); type sn26_array is array( natural range <> ) of signed(25 downto 0); type sn27_array is array( natural range <> ) of signed(26 downto 0); type sn28_array is array( natural range <> ) of signed(27 downto 0); type sn29_array is array( natural range <> ) of signed(28 downto 0); type sn30_array is array( natural range <> ) of signed(29 downto 0); type sn31_array is array( natural range <> ) of signed(30 downto 0); type sn32_array is array( natural range <> ) of signed(31 downto 0); type sn33_array is array( natural range <> ) of signed(32 downto 0); type sn34_array is array( natural range <> ) of signed(33 downto 0); type sn35_array is array( natural range <> ) of signed(34 downto 0); type sn36_array is array( natural range <> ) of signed(35 downto 0); type sn37_array is array( natural range <> ) of signed(36 downto 0); type sn38_array is array( natural range <> ) of signed(37 downto 0); type sn39_array is array( natural range <> ) of signed(38 downto 0); type sn40_array is array( natural range <> ) of signed(39 downto 0); type sn80_array is array( natural range <> ) of signed(79 downto 0); type char_array is array( natural range <> ) of character; type int_array is array (natural range <> ) of integer; -- 3D -- type lv16_8_array is array (natural range <>) of lv16_array(7 downto 0); type lv16_4_array is array (natural range <>) of lv16_array(3 downto 0); type lv16_matrix is array(natural range <>, natural range <>) of std_logic_vector(15 downto 0); type lv8_matrix is array(natural range <>, natural range <>) of std_logic_vector(7 downto 0); type int_matrix is array (natural range <>, natural range <>) of integer; type sn8_matrix is array(natural range <>, natural range <>) of signed(7 downto 0); type time_array is array (natural range <> ) of time; -------------------------------------------------- -- FUNCTIONS -------------------------------------------------- --------------------------------------------------------------------------- -- Type Conversions -- -- convert an integer into a std_logic_vector function int_to_lv (inp, width, arith : integer) return std_logic_vector; -- Convert std_logic or std_logic_vector to an integer function lv_to_int (inp : std_logic_vector; arith : integer) return integer; -- Convert real to unsigned function real_to_un( r : real; INT_W : integer; DEC_W : integer ) return unsigned; -- String Operations -- function int_to_h_1( inp : integer range 0 to 15 ) return string; function lv_to_h_1( inp : std_logic_vector(3 downto 0) ) return string; function lv_to_h(inp : std_logic_vector; N_CHAR : integer) return string; function int_to_h( inp : integer range 0 to 9999; N_CHAR : integer ) return string; function int_to_a_1 ( inp : integer range 0 to 9) return string; function int_to_a ( inp : integer range -9999 to 9999 ) return string; ------------------------------------------------ -- Other Functions -- Find the max & min integer. function max(L, R: INTEGER) return INTEGER; function min(L, R: INTEGER) return INTEGER; -- same as max and min, except this operates on std_logic_vectors function max_lv(L, R: std_logic_vector) return std_logic_vector; function min_lv(L, R: std_logic_vector) return std_logic_vector; -- arithmic function for counter increment and decrement -- these overloaded operators only work with unsigned numbers function "+" (L : std_logic_vector; R : integer) return std_logic_vector; function "-" (L : std_logic_vector; R : integer) return std_logic_vector; function "=" (L : std_logic_vector; R : integer) return boolean; function "+" (L : std_logic_vector; R : std_logic_vector) return std_logic_vector; function add_wrap( inpA, inpB, ceiling : integer ) return integer; function add_wrap( inpA : std_logic_vector; inpB, ceiling : integer ) return std_logic_vector; function sub_wrap( inpA, inpB, ceiling : integer ) return integer; -- Bus Fucntion function busInv( din : std_logic_vector; inv : std_logic ) return std_logic_vector; function bitToBus( din : std_logic; width : integer ) return std_logic_vector; -- RLOC Operations -- function GET_RLOC( x : integer; y : integer; orig_x : integer := 0; orig_y : integer := 0 ) return string; function Get_RLOC32 ( inp : integer; orig_x : integer := 0; orig_y : integer := 0 ) return string; function Get_RLOC16 ( inp : integer; orig_x : integer := 0; orig_y : integer := 0 ) return string; function Get_RLOC8 ( inp : integer; orig_x : integer := 0; orig_y : integer := 0 ) return string;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -