00001 ------------------------------------------------------------------------------ 00002 -- This file is a part of the LPP VHDL IP LIBRARY 00003 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS 00004 -- 00005 -- This program is free software; you can redistribute it and/or modify 00006 -- it under the terms of the GNU General Public License as published by 00007 -- the Free Software Foundation; either version 3 of the License, or 00008 -- (at your option) any later version. 00009 -- 00010 -- This program is distributed in the hope that it will be useful, 00011 -- but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 -- GNU General Public License for more details. 00014 -- 00015 -- You should have received a copy of the GNU General Public License 00016 -- along with this program; if not, write to the Free Software 00017 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 ------------------------------------------------------------------------------ 00019 -- Author : Martin Morlot 00020 -- Mail : martin.morlot@lpp.polytechnique.fr 00021 ------------------------------------------------------------------------------ 00022 library ieee; 00023 use ieee.std_logic_1164.all; 00024 library grlib; 00025 use grlib.amba.all; 00026 use std.textio.all; 00027 library lpp; 00028 use lpp.lpp_amba.all; 00029 use lpp.lpp_memory.all; 00030 use work.fft_components.all; 00031 00033 00034 package lpp_fft is 00035 00036 component APB_FFT is 00037 generic ( 00038 pindex : integer := 0; 00039 paddr : integer := 0; 00040 pmask : integer := 16#fff#; 00041 pirq : integer := 0; 00042 abits : integer := 8; 00043 Data_sz : integer := 32; 00044 Addr_sz : integer := 8; 00045 addr_max_int : integer := 256); 00046 port ( 00047 clk : in std_logic; 00048 rst : in std_logic; 00049 apbi : in apb_slv_in_type; 00050 apbo : out apb_slv_out_type 00051 ); 00052 end component; 00053 00054 00055 component Flag_Extremum is 00056 port( 00057 clk,raz : in std_logic; 00058 load : in std_logic; 00059 y_rdy : in std_logic; 00060 full : out std_logic; 00061 empty : out std_logic 00062 ); 00063 end component; 00064 00065 --==============================================================| 00066 --================== IP VHDL de la FFT actel ===================| 00067 --================ non partagé dans la VHD_Lib =================| 00068 --==============================================================| 00069 00070 component CoreFFT IS 00071 GENERIC ( 00072 LOGPTS : integer := gLOGPTS; 00073 LOGLOGPTS : integer := gLOGLOGPTS; 00074 WSIZE : integer := gWSIZE; 00075 TWIDTH : integer := gTWIDTH; 00076 DWIDTH : integer := gDWIDTH; 00077 TDWIDTH : integer := gTDWIDTH; 00078 RND_MODE : integer := gRND_MODE; 00079 SCALE_MODE : integer := gSCALE_MODE; 00080 PTS : integer := gPTS; 00081 HALFPTS : integer := gHALFPTS; 00082 inBuf_RWDLY : integer := gInBuf_RWDLY ); 00083 PORT ( 00084 clk,ifiStart,ifiNreset : IN std_logic; 00085 ifiD_valid, ifiRead_y : IN std_logic; 00086 ifiD_im, ifiD_re : IN std_logic_vector(WSIZE-1 DOWNTO 0); 00087 ifoLoad, ifoPong : OUT std_logic; 00088 ifoY_im, ifoY_re : OUT std_logic_vector(WSIZE-1 DOWNTO 0); 00089 ifoY_valid, ifoY_rdy : OUT std_logic); 00090 END component; 00091 00092 00093 component actar is 00094 port( DataA : in std_logic_vector(15 downto 0); DataB : in 00095 std_logic_vector(15 downto 0); Mult : out 00096 std_logic_vector(31 downto 0);Clock : in std_logic) ; 00097 end component; 00098 00099 component actram is 00100 port( DI : in std_logic_vector(31 downto 0); DO : out 00101 std_logic_vector(31 downto 0);WRB, RDB : in std_logic; 00102 WADDR : in std_logic_vector(6 downto 0); RADDR : in 00103 std_logic_vector(6 downto 0);WCLOCK, RCLOCK : in 00104 std_logic) ; 00105 end component; 00106 00107 component switch IS 00108 GENERIC ( DWIDTH : integer := 32 ); 00109 PORT ( 00110 clk, sel, validIn : IN std_logic; 00111 inP, inQ : IN std_logic_vector(DWIDTH-1 DOWNTO 0); 00112 outP, outQ : OUT std_logic_vector(DWIDTH-1 DOWNTO 0); 00113 validOut : OUT std_logic); 00114 END component; 00115 00116 component twid_rA IS 00117 GENERIC (LOGPTS : integer := 8; 00118 LOGLOGPTS : integer := 3 ); 00119 PORT (clk : IN std_logic; 00120 timer : IN std_logic_vector(LOGPTS-2 DOWNTO 0); 00121 stage : IN std_logic_vector(LOGLOGPTS-1 DOWNTO 0); 00122 tA : OUT std_logic_vector(LOGPTS-2 DOWNTO 0)); 00123 END component; 00124 00125 component counter IS 00126 GENERIC ( 00127 WIDTH : integer := 7; 00128 TERMCOUNT : integer := 127 ); 00129 PORT ( 00130 clk, nGrst, rst, cntEn : IN std_logic; 00131 tc : OUT std_logic; 00132 Q : OUT std_logic_vector(WIDTH-1 DOWNTO 0) ); 00133 END component; 00134 00135 00136 component twiddle IS 00137 PORT ( 00138 A : IN std_logic_vector(gLOGPTS-2 DOWNTO 0); 00139 T : OUT std_logic_vector(gTDWIDTH-1 DOWNTO 0)); 00140 END component; 00141 00142 00143 end;
© Copyright 2011 LPP-CNRS | Design by Alexis Jeandet