OpenCores
URL https://opencores.org/ocsvn/cfft/cfft/trunk

Subversion Repositories cfft

[/] [cfft/] [trunk/] [src/] [address.vhd] - Diff between revs 2 and 9

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 9
Line 41... Line 41...
-- Modifier        :    ZHAO Ming 
-- Modifier        :    ZHAO Ming 
-- Desccription    :    modified fuction counter2address for syn        
-- Desccription    :    modified fuction counter2address for syn        
--                                              add rmask1,rmask2,wmask1,wmask2 signal
--                                              add rmask1,rmask2,wmask1,wmask2 signal
--
--
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
 
--
 
-- Revisions       :    0
 
-- Revision Number :    3
 
-- Version         :    1.3.0
 
-- Date            :    Nov 19 2002
 
-- Modifier        :    ZHAO Ming 
 
-- Desccription    :    add output data position indication 
 
--                   
 
--
 
---------------------------------------------------------------------------------------------------
 
 
 
 
library IEEE;
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_ARITH.all;
Line 71... Line 81...
                 waddr : out STD_LOGIC_VECTOR(STAGE*2-1 downto 0);
                 waddr : out STD_LOGIC_VECTOR(STAGE*2-1 downto 0);
                 wen : out std_logic;
                 wen : out std_logic;
                 factorstart : out STD_LOGIC;
                 factorstart : out STD_LOGIC;
                 cfft4start : out STD_LOGIC;
                 cfft4start : out STD_LOGIC;
                 outdataen : out std_logic;
                 outdataen : out std_logic;
                 inputbusy : out std_logic
                 inputbusy : out std_logic;
 
                 OutPosition : out STD_LOGIC_VECTOR( 2*STAGE-1 downto 0 )
             );
             );
end address;
end address;
 
 
 
 
architecture address of address is
architecture address of address is
Line 115... Line 126...
                        end if;
                        end if;
                end loop;
                end loop;
                return result;
                return result;
        end counter2addr;
        end counter2addr;
 
 
 
        function outcounter2addr(
 
                counter : std_logic_vector
 
        ) return std_logic_vector is
 
        variable result :std_logic_vector(counter'range);
 
        begin
 
                for n in 0 to STAGE-1 loop
 
                        result( 2*n+1 downto 2*n ):=counter( counter'high-2*n downto counter'high-2*n-1 );
 
                end loop;
 
                return result;
 
        end outcounter2addr;
 
 
signal rstate,wstate,state:std_logic_vector( 3 downto 0 );
signal rstate,wstate,state:std_logic_vector( 3 downto 0 );
signal rmask1,rmask2,wmask1,wmask2:std_logic_vector( STAGE-1 downto 0 );
signal rmask1,rmask2,wmask1,wmask2:std_logic_vector( STAGE-1 downto 0 );
signal counter,wcounter,rcounter:std_logic_vector( STAGE*2-1 downto 0 );
signal counter,wcounter,rcounter:std_logic_vector( STAGE*2-1 downto 0 );
signal outcounter:std_logic_vector( STAGE*2 downto 0 );
signal outcounter:std_logic_vector( STAGE*2 downto 0 );
Line 129... Line 150...
 
 
 
 
 
 
begin
begin
outdataen<=outcounter(STAGE*2);
outdataen<=outcounter(STAGE*2);
 
OutPosition<=outcounter2addr( outcounter( STAGE*2-1 downto 0 ));
count:process( clk, rst )
count:process( clk, rst )
begin
begin
        if rst='1' then
        if rst='1' then
                counter<=( others=>'0' );
                counter<=( others=>'0' );
                state<=CONV_STD_LOGIC_VECTOR( STAGE+1,4);
                state<=CONV_STD_LOGIC_VECTOR( STAGE+1,4);

powered by: WebSVN 2.1.0

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