00001 --**************************************************************
00002 --* *
00003 --* The source code for the ATLAS BCM "AAA" FPGA is made *
00004 --* available via the GNU General Public License (GPL) *
00005 --* unless otherwise stated below. *
00006 --* *
00007 --* In case of problems/questions/bug reports etc. please *
00008 --* contact michael.niegl@cern.ch *
00009 --* *
00010 --**************************************************************
00011
00012 --**************************************************************
00013 --* *
00014 --* $Source: /afs/cern.ch/project/cvs/reps/bcmfpga/bcm_aaa/bcm_aaa/main/bcm_aaa.vhd,
00015 --v $
00016 --* $Revision: 1.1.2.4 $ *
00017 --* $Name: dev $ *
00018 --* $Author: mniegl $ *
00019 --* $Date: 2008/11/03 17:57:45 $ *
00020
00021
00022 --* *
00023 --**************************************************************
00024 --------------------------------------------------------------------------------
00025 -- This file is owned and controlled by Xilinx and must be used --
00026 -- solely for design, simulation, implementation and creation of --
00027 -- design files limited to Xilinx devices or technologies. Use --
00028 -- with non-Xilinx devices or technologies is expressly prohibited --
00029 -- and immediately terminates your license. --
00030 -- --
00031 -- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" --
00032 -- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR --
00033 -- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION --
00034 -- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION --
00035 -- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS --
00036 -- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, --
00037 -- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE --
00038 -- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY --
00039 -- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE --
00040 -- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR --
00041 -- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF --
00042 -- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS --
00043 -- FOR A PARTICULAR PURPOSE. --
00044 -- --
00045 -- Xilinx products are not intended for use in life support --
00046 -- appliances, devices, or systems. Use in such applications are --
00047 -- expressly prohibited. --
00048 -- --
00049 -- (c) Copyright 1995-2007 Xilinx, Inc. --
00050 -- All rights reserved. --
00051 --------------------------------------------------------------------------------
00052 -- You must compile the wrapper file shift_reg.vhd when simulating
00053 -- the core, shift_reg. When compiling the wrapper file, be sure to
00054 -- reference the XilinxCoreLib VHDL simulation library. For detailed
00055 -- instructions, please refer to the "CORE Generator Help".
00056
00057 -- The synthesis directives "translate_off/translate_on" specified
00058 -- below are supported by Xilinx, Mentor Graphics and Synplicity
00059 -- synthesis tools. Ensure they are correct for your synthesis tool(s).
00060
00061
00062 library ieee;
00063
00064 use ieee.std_logic_1164.all;
00065 -- synthesis translate_off
00066 library XilinxCoreLib;
00067 -- synthesis translate_on
00068
00069
00070 entity shift_reg is
00071 port
00072 (
00073 addra : in (7 downto 0);
00074 addrb : in (7 downto 0);
00075 clka : in ;
00076 clkb : in ;
00077 dina : in (31 downto 0);
00078 doutb : out (31 downto 0);
00079 ena : in ;
00080 enb : in ;
00081 wea : in
00082 );
00083 end shift_reg;
00084
00085
00086 architecture shift_reg_a of shift_reg is
00087 -- synthesis translate_off
00088
00089 component wrapped_shift_reg
00090 port
00091 (
00092 addra : in (7 downto 0);
00093 addrb : in (7 downto 0);
00094 clka : in ;
00095 clkb : in ;
00096 dina : in (31 downto 0);
00097 doutb : out (31 downto 0);
00098 ena : in ;
00099 enb : in ;
00100 wea : in
00101 );
00102 end component;
00103
00104
00105 for all : wrapped_shift_reg use entity XilinxCoreLib.blkmemdp_v6_3(behavioral)
00106 generic map
00107 (
00108 c_reg_inputsb => 0,
00109 c_reg_inputsa => 0,
00110 c_has_ndb => 0,
00111 c_has_nda => 0,
00112 c_ytop_addr => "1024",
00113 c_has_rfdb => 0,
00114 c_has_rfda => 0,
00115 c_ywea_is_high => 1,
00116 c_yena_is_high => 1,
00117 c_yclka_is_rising => 1,
00118 c_yhierarchy => "hierarchy1",
00119 c_ysinita_is_high => 1,
00120 c_ybottom_addr => "0",
00121 c_width_b => 32,
00122 c_width_a => 32,
00123 c_sinita_value => "0",
00124 c_sinitb_value => "0",
00125 c_limit_data_pitch => 18,
00126 c_write_modeb => 0,
00127 c_write_modea => 0,
00128 c_has_rdyb => 0,
00129 c_yuse_single_primitive => 0,
00130 c_has_rdya => 0,
00131 c_addra_width => 8,
00132 c_addrb_width => 8,
00133 c_has_limit_data_pitch => 0,
00134 c_default_data => "0",
00135 c_pipe_stages_b => 0,
00136 c_yweb_is_high => 1,
00137 c_yenb_is_high => 1,
00138 c_pipe_stages_a => 0,
00139 c_yclkb_is_rising => 1,
00140 c_yydisable_warnings => 1,
00141 c_enable_rlocs => 0,
00142 c_ysinitb_is_high => 1,
00143 c_has_web => 0,
00144 c_has_default_data => 1,
00145 c_has_sinitb => 0,
00146 c_has_wea => 1,
00147 c_has_sinita => 0,
00148 c_has_dinb => 0,
00149 c_has_dina => 1,
00150 c_ymake_bmm => 0,
00151 c_sim_collision_check => "NONE",
00152 c_has_enb => 1,
00153 c_has_ena => 1,
00154 c_depth_b => 256,
00155 c_mem_init_file => "mif_file_16_1",
00156 c_depth_a => 256,
00157 c_has_doutb => 1,
00158 c_has_douta => 0,
00159 c_yprimitive_type => "32kx1"
00160 );
00161 -- synthesis translate_on
00162 begin
00163 -- synthesis translate_off
00164
00165 U0 : wrapped_shift_reg
00166 port map (
00167 addra => addra,
00168 addrb => addrb,
00169 clka => clka,
00170 clkb => clkb,
00171 dina => dina,
00172 doutb => doutb,
00173 ena => ena ,
00174 enb => enb ,
00175 wea => wea
00176 );
00177 -- synthesis translate_on
00178
00179 end shift_reg_a;
00180