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: /local/reps/bcmfpga/bcm_aaa/bcm_aaa/ddr2/ddr2_mem_wr_data_fifo_16.vhd,v $
00015 --* $Revision: 1.3.2.4 $ *
00016 --* $Name: dev $ *
00017 --* $Author: mniegl $ *
00018 --* $Date: 2008/11/03 22:24:28 $ *
00019
00020
00021 --* *
00022 --**************************************************************
00023 -------------------------------------------------------------------------------
00024 -- Copyright (c) 2005 Xilinx, Inc.
00025 -- This design is confidential and proprietary of Xilinx, All Rights Reserved.
00026 -------------------------------------------------------------------------------
00027 -- ____ ____
00028 -- / /\/ /
00029 -- /___/ \ / Vendor: Xilinx
00030 -- \ \ \/ Version: 1.6
00031 -- \ \ Application : MIG
00032 -- / / Filename: ddr2_mem_wr_data_fifo_16.vhd
00033 -- /___/ /\ Date Last Modified: Wed Jun 1 2005
00034 -- \ \ / \Date Created: Mon May 2 2005
00035 -- \___\/\___\
00036 --
00037 -- Device: Virtex-4
00038 -- Design Name: DDR2_V4
00039 -- Description :
00040 -------------------------------------------------------------------------------
00041
00042
00043 library ieee;
00044
00045 use ieee.std_logic_1164.all;
00046
00047 use ieee.std_logic_unsigned.all;
00048
00049 library unisim;
00050
00051 use unisim.vcomponents.all;
00052
00053
00054
00055
00056
00057
00058 entity ddr2_mem_wr_data_fifo_16 is
00059 port(
00060 clk0 : in ;
00061 clk90 : in ;
00062 rst : in ;
00063 app_Wdf_data : in (31 downto 0);
00064 app_mask_data : in (3 downto 0);
00065 app_Wdf_WrEn : in ;
00066 ctrl_Wdf_RdEn : in ;
00067 Wdf_data : out (31 downto 0);
00068 mask_data : out (3 downto 0);
00069 wr_df_almost_full : out
00070 );
00071 end entity;
00072
00073
00074
00075
00076
00077
00078 architecture arc_wr_data_fifo_16 of ddr2_mem_wr_data_fifo_16 is
00079
00080
00081 component FIFO16
00082 generic (
00083 ALMOST_FULL_OFFSET : bit_vector;
00084 ALMOST_EMPTY_OFFSET : bit_vector;
00085 DATA_WIDTH : ;
00086 FIRST_WORD_FALL_THROUGH :
00087 );
00088 port(
00089 ALMOSTEMPTY : out ;
00090 ALMOSTFULL : out ;
00091 DO : out (31 downto 0);
00092 DOP : out (3 downto 0);
00093 EMPTY : out ;
00094 FULL : out ;
00095 RDCOUNT : out (11 downto 0);
00096 RDERR : out ;
00097 WRCOUNT : out (11 downto 0);
00098 WRERR : out ;
00099 DI : in (31 downto 0);
00100 DIP : in (3 downto 0);
00101 RDCLK : in ;
00102 RDEN : in ;
00103 RST : in ;
00104 WRCLK : in ;
00105 WREN : in
00106 );
00107 end component;
00108
00109 signal ctrl_Wdf_RdEn_270 : ;
00110 signal ctrl_Wdf_RdEn_90 : ;
00111
00112 begin
00113
00114
00115 process(clk90)
00116 begin
00117 if clk90'event and clk90 = '0' then
00118 ctrl_Wdf_RdEn_270 <= ctrl_Wdf_RdEn;
00119 end if;
00120 end process;
00121
00122
00123 process(clk90)
00124 begin
00125 if clk90'event and clk90 = '1' then
00126 ctrl_Wdf_RdEn_90 <= ctrl_Wdf_RdEn_270;
00127 end if;
00128 end process;
00129
00130
00131 Wdf_1 : FIFO16
00132 generic map(
00133 ALMOST_FULL_OFFSET => X"00F",
00134 ALMOST_EMPTY_OFFSET => X"007",
00135 DATA_WIDTH => 36,
00136 FIRST_WORD_Fall_THROUGH => false
00137 )
00138 port map (
00139 ALMOSTEMPTY => open,
00140 ALMOSTFULL => wr_df_almost_full,
00141 DO => Wdf_data (31 downto 0),
00142 DOP => mask_data(3 downto 0),
00143 EMPTY => open,
00144 FULL => open,
00145 RDCOUNT => open,
00146 RDERR => open,
00147 WRCOUNT => open,
00148 WRERR => open,
00149 DI => app_Wdf_data(31 downto 0),
00150 DIP => app_mask_data(3 downto 0),
00151 RDCLK => clk90,
00152 RDEN => ctrl_Wdf_RdEn_90,
00153 RST => rst,
00154 WRCLK => clk0,
00155 WREN => app_Wdf_WrEn
00156 );
00157
00158 end arc_wr_data_fifo_16;
00159