Free VHDL library

  • Main Page
  • Related Pages
  • Design Unit List
  • Files
  • File List

dsp/lpp_fft/lpp_fft.vhd

Go to the documentation of this file.
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