OpenCores
URL https://opencores.org/ocsvn/lp_iir_filter/lp_iir_filter/trunk
--------------------------------------------------------------------- ---- ---- ---- IIR Filter IP core ---- ---- ---- ---- Authors: Anatoliy Sergienko, Volodya Lepeha ---- ---- Company: Unicore Systems http://unicore.co.ua ---- ---- ---- ---- Downloaded from: http://www.opencores.org ---- ---- ---- --------------------------------------------------------------------- ---- ---- ---- Copyright (C) 2006-2010 Unicore Systems LTD ---- ---- www.unicore.co.ua ---- ---- o.uzenkov@unicore.co.ua ---- ---- ---- ---- This source file may be used and distributed without ---- ---- restriction provided that this copyright statement is not ---- ---- removed from the file and that any derivative work contains ---- ---- the original copyright notice and the associated disclaimer.---- ---- ---- ---- THIS SOFTWARE IS PROVIDED "AS IS" ---- ---- AND ANY EXPRESSED OR IMPLIED WARRANTIES, ---- ---- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ---- ---- WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT ---- ---- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ---- ---- IN NO EVENT SHALL THE UNICORE SYSTEMS OR ITS ---- ---- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ---- ---- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ---- ---- OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ---- ---- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ---- ---- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ---- ---- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ---- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING ---- ---- IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, ---- ---- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- ---- ---- --------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- -- -- Description : FIFO delay --------------------------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.all; --pragma translate_off use IEEE.VITAL_Timing.all; library UNISIM; use UNISIM.VPKG.all; --pragma translate_on entity DELAY is generic(nn:natural:=16;--data width l:natural:=8); --FIFO length port( CLK : in STD_LOGIC; RST : in STD_LOGIC; SE: in STD_LOGIC; --shift enable D : in STD_LOGIC_VECTOR(15 downto 0); --Data in Q : out STD_LOGIC_VECTOR(15 downto 0) --Data out ); end DELAY; architecture SRL_E of DELAY is component srl16e port( D : in std_ulogic; CLK : in std_ulogic; CE : in std_ulogic; A0 : in std_ulogic; A1 : in std_ulogic; A2 : in std_ulogic; A3 : in std_ulogic; Q : out std_ulogic); end component; constant len:std_logic_vector:=CONV_STD_LOGIC_VECTOR(l-1,6); constant a0:std_ulogic:=len(0); constant a1:std_ulogic:=len(1); constant a2:std_ulogic:=len(2); constant a3:std_ulogic:=len(3); constant a4:std_ulogic:=len(4); constant a5:std_ulogic:=len(5); constant one:std_ulogic:='1'; signal di1,di2,di3:std_logic_vector(nn-1 downto 0); begin D16:if (a5 or a4)='0' generate DEL0:for i in 0 to 15 generate U_SRL:srl16e port map( D=> D(i),CLK=>CLK,CE=>SE, A0=>a0,A1=>a1,A2=>a2,A3=>a3,Q=>Q(i)); end generate; end generate; D32:if a5='0' and a4='1' generate DEL1:for i in 0 to 15 generate U_SRL0:srl16e port map( D=> D(i),CLK=>CLK,CE=>SE, A0=>one,A1=>one,A2=>one,A3=>one,Q=>di1(i)); U_SRL1:srl16e port map( D=> di1(i),CLK=>CLK,CE=>SE, A0=>a0,A1=>a1,A2=>a2,A3=>a3,Q=>Q(i)); end generate; end generate; D48:if a5='1' and a4='0' generate DEL1:for i in 0 to 15 generate U_SRL0:srl16e port map( D=> D(i),CLK=>CLK,CE=>SE, A0=>one,A1=>one,A2=>one,A3=>one,Q=>di1(i)); U_SRL1:srl16e port map( D=> di1(i),CLK=>CLK,CE=>SE, A0=>one,A1=>one,A2=>one,A3=>one,Q=>di2(i)); U_SRL2:srl16e port map( D=> di2(i),CLK=>CLK,CE=>SE, A0=>a0,A1=>a1,A2=>a2,A3=>a3,Q=>Q(i)); end generate; end generate; D64:if a5='1' and a4='1' generate DEL1:for i in 0 to 15 generate U_SRL0:srl16e port map( D=> D(i),CLK=>CLK,CE=>SE, A0=>one,A1=>one,A2=>one,A3=>one,Q=>di1(i)); U_SRL1:srl16e port map( D=> di1(i),CLK=>CLK,CE=>SE, A0=>one,A1=>one,A2=>one,A3=>one,Q=>di2(i)); U_SRL2:srl16e port map( D=> di2(i),CLK=>CLK,CE=>SE, A0=>one,A1=>one,A2=>one,A3=>one,Q=>di3(i)); U_SRL3:srl16e port map( D=> di3(i),CLK=>CLK,CE=>SE, A0=>a0,A1=>a1,A2=>a2,A3=>a3,Q=>Q(i)); end generate; end generate; end SRL_E;

Subversion Repositories lp_iir_filter

[/] [lp_iir_filter/] [trunk/] [SRC/] [DELAY.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.