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);
|