803 lines
52 KiB
VHDL
803 lines
52 KiB
VHDL
--**************************************************************
|
|
-- Copyright (c) 2008 Xilinx, Inc. All rights reserved.
|
|
-- File Name : unimacro_VCOMP.vhd
|
|
-- Library : unisim
|
|
-- Release : 11.1
|
|
-- Entity Count : 12
|
|
-- Time : Fri Mar 2 10:51:46 2012
|
|
-- Generated by : gencomp.pl
|
|
--**************************************************************
|
|
|
|
library IEEE;
|
|
use IEEE.STD_LOGIC_1164.all;
|
|
package VCOMPONENTS is
|
|
|
|
FUNCTION xil_UNM_GCW (
|
|
d_width : in integer;
|
|
fifo_size : in string;
|
|
device : in string
|
|
) return integer;
|
|
|
|
-- START COMPONENT
|
|
----- component ADDMACC_MACRO -----
|
|
component ADDMACC_MACRO
|
|
generic (
|
|
DEVICE : string := "VIRTEX6";
|
|
LATENCY : integer := 4;
|
|
WIDTH_MULTIPLIER : integer := 18;
|
|
WIDTH_PREADD : integer := 25;
|
|
WIDTH_PRODUCT : integer := 48
|
|
);
|
|
port (
|
|
PRODUCT : out std_logic_vector(WIDTH_PRODUCT-1 downto 0);
|
|
CARRYIN : in std_logic;
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
LOAD : in std_logic;
|
|
LOAD_DATA : in std_logic_vector(WIDTH_PRODUCT-1 downto 0);
|
|
MULTIPLIER : in std_logic_vector(WIDTH_MULTIPLIER-1 downto 0);
|
|
PREADD1 : in std_logic_vector(WIDTH_PREADD-1 downto 0);
|
|
PREADD2 : in std_logic_vector(WIDTH_PREADD-1 downto 0);
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component ADDSUB_MACRO -----
|
|
component ADDSUB_MACRO
|
|
generic (
|
|
DEVICE : string := "VIRTEX5";
|
|
LATENCY : integer := 2;
|
|
MODEL_TYPE : integer := 0;
|
|
STYLE : string := "DSP";
|
|
VERBOSITY : integer := 0;
|
|
WIDTH : integer := 48;
|
|
WIDTH_B : integer := 48;
|
|
WIDTH_RESULT : integer := 48
|
|
);
|
|
port (
|
|
CARRYOUT : out std_logic;
|
|
RESULT : out std_logic_vector(WIDTH-1 downto 0);
|
|
A : in std_logic_vector(WIDTH-1 downto 0);
|
|
ADD_SUB : in std_logic;
|
|
B : in std_logic_vector(WIDTH-1 downto 0);
|
|
CARRYIN : in std_logic;
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component BRAM_SDP_MACRO -----
|
|
component BRAM_SDP_MACRO
|
|
generic (
|
|
BRAM_SIZE : string := "18Kb";
|
|
DEVICE : string := "VIRTEX5";
|
|
DO_REG : integer := 0;
|
|
INIT : bit_vector := X"000000000000000000";
|
|
INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_40 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_41 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_42 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_43 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_44 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_45 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_46 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_47 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_48 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_49 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_50 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_51 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_52 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_53 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_54 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_55 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_56 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_57 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_58 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_59 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_60 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_61 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_62 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_63 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_64 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_65 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_66 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_67 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_68 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_69 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_70 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_71 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_72 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_73 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_74 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_75 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_76 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_77 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_78 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_79 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_FILE : string := "NONE";
|
|
READ_WIDTH : integer := 0;
|
|
SIM_COLLISION_CHECK : string := "ALL";
|
|
SIM_MODE : string := "SAFE";
|
|
SRVAL : bit_vector := X"000000000000000000";
|
|
WRITE_MODE : string := "WRITE_FIRST";
|
|
WRITE_WIDTH : integer := 0
|
|
);
|
|
port (
|
|
DO : out std_logic_vector(READ_WIDTH-1 downto 0);
|
|
DI : in std_logic_vector(WRITE_WIDTH-1 downto 0);
|
|
RDADDR : in std_logic_vector;
|
|
RDCLK : in std_ulogic;
|
|
RDEN : in std_ulogic;
|
|
REGCE : in std_ulogic;
|
|
RST : in std_ulogic;
|
|
WE : in std_logic_vector;
|
|
WRADDR : in std_logic_vector;
|
|
WRCLK : in std_ulogic;
|
|
WREN : in std_ulogic
|
|
);
|
|
end component;
|
|
|
|
----- component BRAM_SINGLE_MACRO -----
|
|
component BRAM_SINGLE_MACRO
|
|
generic (
|
|
BRAM_SIZE : string := "18Kb";
|
|
DEVICE : string := "VIRTEX5";
|
|
DO_REG : integer := 0;
|
|
INIT : bit_vector := X"000000000000000000";
|
|
INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_40 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_41 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_42 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_43 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_44 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_45 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_46 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_47 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_48 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_49 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_50 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_51 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_52 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_53 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_54 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_55 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_56 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_57 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_58 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_59 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_60 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_61 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_62 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_63 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_64 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_65 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_66 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_67 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_68 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_69 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_70 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_71 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_72 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_73 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_74 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_75 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_76 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_77 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_78 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_79 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_FILE : string := "NONE";
|
|
READ_WIDTH : integer := 1;
|
|
SIM_MODE : string := "SAFE";
|
|
SRVAL : bit_vector := X"000000000000000000";
|
|
WRITE_MODE : string := "WRITE_FIRST";
|
|
WRITE_WIDTH : integer := 1
|
|
);
|
|
port (
|
|
DO : out std_logic_vector(READ_WIDTH-1 downto 0);
|
|
ADDR : in std_logic_vector;
|
|
CLK : in std_ulogic;
|
|
DI : in std_logic_vector(WRITE_WIDTH-1 downto 0);
|
|
EN : in std_ulogic;
|
|
REGCE : in std_ulogic;
|
|
RST : in std_ulogic;
|
|
WE : in std_logic_vector
|
|
);
|
|
end component;
|
|
|
|
----- component BRAM_TDP_MACRO -----
|
|
component BRAM_TDP_MACRO
|
|
generic (
|
|
BRAM_SIZE : string := "18Kb";
|
|
DEVICE : string := "VIRTEX5";
|
|
DOA_REG : integer := 0;
|
|
DOB_REG : integer := 0;
|
|
INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INITP_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_40 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_41 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_42 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_43 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_44 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_45 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_46 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_47 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_48 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_49 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_4F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_50 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_51 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_52 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_53 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_54 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_55 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_56 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_57 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_58 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_59 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_5F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_60 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_61 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_62 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_63 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_64 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_65 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_66 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_67 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_68 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_69 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_6F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_70 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_71 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_72 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_73 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_74 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_75 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_76 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_77 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_78 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_79 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_7F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";
|
|
INIT_A : bit_vector := X"000000000";
|
|
INIT_B : bit_vector := X"000000000";
|
|
INIT_FILE : string := "NONE";
|
|
READ_WIDTH_A : integer := 1;
|
|
READ_WIDTH_B : integer := 1;
|
|
SIM_COLLISION_CHECK : string := "ALL";
|
|
SIM_MODE : string := "SAFE";
|
|
SRVAL_A : bit_vector := X"000000000";
|
|
SRVAL_B : bit_vector := X"000000000";
|
|
WRITE_MODE_A : string := "WRITE_FIRST";
|
|
WRITE_MODE_B : string := "WRITE_FIRST";
|
|
WRITE_WIDTH_A : integer := 1;
|
|
WRITE_WIDTH_B : integer := 1
|
|
);
|
|
port (
|
|
DOA : out std_logic_vector(READ_WIDTH_A-1 downto 0);
|
|
DOB : out std_logic_vector(READ_WIDTH_B-1 downto 0);
|
|
ADDRA : in std_logic_vector;
|
|
ADDRB : in std_logic_vector;
|
|
CLKA : in std_ulogic;
|
|
CLKB : in std_ulogic;
|
|
DIA : in std_logic_vector(WRITE_WIDTH_A-1 downto 0);
|
|
DIB : in std_logic_vector(WRITE_WIDTH_B-1 downto 0);
|
|
ENA : in std_ulogic;
|
|
ENB : in std_ulogic;
|
|
REGCEA : in std_ulogic;
|
|
REGCEB : in std_ulogic;
|
|
RSTA : in std_ulogic;
|
|
RSTB : in std_ulogic;
|
|
WEA : in std_logic_vector;
|
|
WEB : in std_logic_vector
|
|
);
|
|
end component;
|
|
|
|
----- component COUNTER_LOAD_MACRO -----
|
|
component COUNTER_LOAD_MACRO
|
|
generic (
|
|
COUNT_BY : std_logic_vector := X"000000000001";
|
|
DEVICE : string := "VIRTEX5";
|
|
STYLE : string := "AUTO";
|
|
WIDTH_DATA : integer := 48
|
|
);
|
|
port (
|
|
Q : out std_logic_vector(WIDTH_DATA-1 downto 0);
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
DIRECTION : in std_logic;
|
|
LOAD : in std_logic;
|
|
LOAD_DATA : in std_logic_vector(WIDTH_DATA-1 downto 0);
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component COUNTER_TC_MACRO -----
|
|
component COUNTER_TC_MACRO
|
|
generic (
|
|
COUNT_BY : std_logic_vector := X"000000000001";
|
|
DEVICE : string := "VIRTEX5";
|
|
DIRECTION : string := "UP";
|
|
RESET_UPON_TC : string := "FALSE";
|
|
STYLE : string := "AUTO";
|
|
TC_VALUE : std_logic_vector := X"000000000000";
|
|
WIDTH_DATA : integer := 48
|
|
);
|
|
port (
|
|
Q : out std_logic_vector(WIDTH_DATA-1 downto 0);
|
|
TC : out std_logic;
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component EQ_COMPARE_MACRO -----
|
|
component EQ_COMPARE_MACRO
|
|
generic (
|
|
DEVICE : string := "VIRTEX5";
|
|
LATENCY : integer := 2;
|
|
MASK : bit_vector := X"000000000000";
|
|
SEL_MASK : string := "MASK";
|
|
SEL_PATTERN : string := "DYNAMIC_PATTERN";
|
|
STATIC_PATTERN : bit_vector := X"000000000000";
|
|
WIDTH : integer := 48
|
|
);
|
|
port (
|
|
Q : out std_logic;
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
DATA_IN : in std_logic_vector(WIDTH-1 downto 0);
|
|
DYNAMIC_PATTERN : in std_logic_vector(WIDTH-1 downto 0);
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component FIFO_DUALCLOCK_MACRO -----
|
|
component FIFO_DUALCLOCK_MACRO
|
|
generic (
|
|
ALMOST_EMPTY_OFFSET : bit_vector := X"0080";
|
|
ALMOST_FULL_OFFSET : bit_vector := X"0080";
|
|
DATA_WIDTH : integer := 4;
|
|
DEVICE : string := "VIRTEX5";
|
|
FIFO_SIZE : string := "18Kb";
|
|
FIRST_WORD_FALL_THROUGH : boolean := FALSE;
|
|
INIT : bit_vector := X"000000000000000000";
|
|
SIM_MODE : string := "SAFE";
|
|
SRVAL : bit_vector := X"000000000000000000"
|
|
);
|
|
port (
|
|
ALMOSTEMPTY : out std_logic;
|
|
ALMOSTFULL : out std_logic;
|
|
DO : out std_logic_vector(DATA_WIDTH-1 downto 0);
|
|
EMPTY : out std_logic;
|
|
FULL : out std_logic;
|
|
RDCOUNT : out std_logic_vector (xil_UNM_GCW(DATA_WIDTH, FIFO_SIZE, DEVICE)-1 downto 0);
|
|
RDERR : out std_logic;
|
|
WRCOUNT : out std_logic_vector (xil_UNM_GCW(DATA_WIDTH, FIFO_SIZE, DEVICE)-1 downto 0);
|
|
WRERR : out std_logic;
|
|
DI : in std_logic_vector(DATA_WIDTH-1 downto 0);
|
|
RDCLK : in std_logic;
|
|
RDEN : in std_logic;
|
|
RST : in std_logic;
|
|
WRCLK : in std_logic;
|
|
WREN : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component FIFO_SYNC_MACRO -----
|
|
component FIFO_SYNC_MACRO
|
|
generic (
|
|
ALMOST_EMPTY_OFFSET : bit_vector := X"0080";
|
|
ALMOST_FULL_OFFSET : bit_vector := X"0080";
|
|
DATA_WIDTH : integer := 4;
|
|
DEVICE : string := "VIRTEX5";
|
|
DO_REG : integer := 0;
|
|
FIFO_SIZE : string := "18Kb";
|
|
INIT : bit_vector := X"000000000000000000";
|
|
SIM_MODE : string := "SAFE";
|
|
SRVAL : bit_vector := X"000000000000000000"
|
|
);
|
|
port (
|
|
ALMOSTEMPTY : out std_logic;
|
|
ALMOSTFULL : out std_logic;
|
|
DO : out std_logic_vector(DATA_WIDTH-1 downto 0);
|
|
EMPTY : out std_logic;
|
|
FULL : out std_logic;
|
|
RDCOUNT : out std_logic_vector (xil_UNM_GCW(DATA_WIDTH, FIFO_SIZE, DEVICE)-1 downto 0);
|
|
RDERR : out std_logic;
|
|
WRCOUNT : out std_logic_vector (xil_UNM_GCW(DATA_WIDTH, FIFO_SIZE, DEVICE)-1 downto 0);
|
|
WRERR : out std_logic;
|
|
CLK : in std_logic;
|
|
DI : in std_logic_vector(DATA_WIDTH-1 downto 0);
|
|
RDEN : in std_logic;
|
|
RST : in std_logic;
|
|
WREN : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component MACC_MACRO -----
|
|
component MACC_MACRO
|
|
generic (
|
|
DEVICE : string := "VIRTEX5";
|
|
LATENCY : integer := 3;
|
|
WIDTH_A : integer := 25;
|
|
WIDTH_B : integer := 18;
|
|
WIDTH_P : integer := 48
|
|
);
|
|
port (
|
|
P : out std_logic_vector(WIDTH_P-1 downto 0);
|
|
A : in std_logic_vector(WIDTH_A-1 downto 0);
|
|
ADDSUB : in std_logic;
|
|
B : in std_logic_vector(WIDTH_B-1 downto 0);
|
|
CARRYIN : in std_logic;
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
LOAD : in std_logic;
|
|
LOAD_DATA : in std_logic_vector(WIDTH_P-1 downto 0);
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
----- component MULT_MACRO -----
|
|
component MULT_MACRO
|
|
generic (
|
|
DEVICE : string := "VIRTEX5";
|
|
LATENCY : integer := 3;
|
|
STYLE : string := "DSP";
|
|
WIDTH_A : integer := 18;
|
|
WIDTH_B : integer := 18
|
|
);
|
|
port (
|
|
P : out std_logic_vector((WIDTH_A+WIDTH_B)-1 downto 0);
|
|
A : in std_logic_vector(WIDTH_A-1 downto 0);
|
|
B : in std_logic_vector(WIDTH_B-1 downto 0);
|
|
CE : in std_logic;
|
|
CLK : in std_logic;
|
|
RST : in std_logic
|
|
);
|
|
end component;
|
|
|
|
-- END COMPONENT
|
|
|
|
end VCOMPONENTS;
|
|
|
|
package body VCOMPONENTS is
|
|
|
|
FUNCTION xil_UNM_GCW (
|
|
d_width : in integer;
|
|
fifo_size : in string;
|
|
device : in string
|
|
) return integer is
|
|
variable func_width : integer;
|
|
begin
|
|
if(device = "VIRTEX5" or device = "VIRTEX6" or device = "7SERIES") then
|
|
if(fifo_size = "18Kb") then
|
|
case d_width is
|
|
when 0|1|2|3|4 => func_width := 12;
|
|
when 5|6|7|8|9 => func_width := 11;
|
|
when 10 to 18 => func_width := 10;
|
|
when 19 to 36 => func_width := 9;
|
|
when others => func_width := 12;
|
|
end case;
|
|
elsif(fifo_size = "36Kb") then
|
|
case d_width is
|
|
when 0|1|2|3|4 => func_width := 13;
|
|
when 5|6|7|8|9 => func_width := 12;
|
|
when 10 to 18 => func_width := 11;
|
|
when 19 to 36 => func_width := 10;
|
|
when 37 to 72 => func_width := 9;
|
|
when others => func_width := 13;
|
|
end case;
|
|
end if;
|
|
else
|
|
func_width := 13;
|
|
end if;
|
|
return func_width;
|
|
end;
|
|
|
|
end VCOMPONENTS;
|