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

Subversion Repositories dblclockfft

[/] [dblclockfft/] [trunk/] [doc/] [src/] [spec.tex] - Diff between revs 10 and 11

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

Rev 10 Rev 11
Line 1... Line 1...
\documentclass{gqtekspec}
\documentclass{gqtekspec}
\project{Double Clocked FFT}
\project{Double Clocked FFT}
\title{Specification}
\title{Specification}
\author{Dan Gisselquist, Ph.D.}
\author{Dan Gisselquist, Ph.D.}
\email{dgisselq\at opencores.org}
\email{dgisselq\at opencores.org}
 
\revision{Rev.~0.1}
\begin{document}
\begin{document}
\pagestyle{gqtekspecplain}
\pagestyle{gqtekspecplain}
\titlepage
\titlepage
\begin{license}
\begin{license}
Copyright (C) \theyear\today, Gisselquist Technology, LLC
Copyright (C) \theyear\today, Gisselquist Technology, LLC
Line 21... Line 22...
 
 
You should have received a copy of the GNU General Public License along
You should have received a copy of the GNU General Public License along
with this program.  If not, see \hbox{<http://www.gnu.org/licenses/>} for a copy.
with this program.  If not, see \hbox{<http://www.gnu.org/licenses/>} for a copy.
\end{license}
\end{license}
\begin{revisionhistory}
\begin{revisionhistory}
0.0 & 3/2/2015 & Gisselquist & Incomplete Draft \\\hline
0.1 & 3/3/2015 & Gisselquist & First Draft \\\hline
\end{revisionhistory}
\end{revisionhistory}
% Revision History
% Revision History
% Table of Contents, named Contents
% Table of Contents, named Contents
\tableofcontents
\tableofcontents
\listoffigures
\listoffigures
Line 151... Line 152...
                \rput(-1.5in,1.8in){\psline{->}(0,0)(0.7in,0)}
                \rput(-1.5in,1.8in){\psline{->}(0,0)(0.7in,0)}
        \rput[r](-1.6in,1.5in){\tt i\_rst}
        \rput[r](-1.6in,1.5in){\tt i\_rst}
                \rput(-1.5in,1.5in){\psline{->}(0,0)(0.7in,0)}
                \rput(-1.5in,1.5in){\psline{->}(0,0)(0.7in,0)}
        \rput[r](-1.6in,1.2in){\tt i\_ce}
        \rput[r](-1.6in,1.2in){\tt i\_ce}
                \rput(-1.5in,1.2in){\psline{->}(0,0)(0.7in,0)}
                \rput(-1.5in,1.2in){\psline{->}(0,0)(0.7in,0)}
        % \rput(-1in,0.9in){\tt i\_nnonce}-1in,1.8in){\psline{->}(0,0)(1in,0)}
 
        \rput[r](-1.6in,0.6in){\tt i\_left}
        \rput[r](-1.6in,0.6in){\tt i\_left}
                \rput(-1.5in,0.6in){\psline{->}(0,0)(0.7in,0)}
                \rput(-1.5in,0.6in){\psline{->}(0,0)(0.7in,0)}
                \rput(-1.15in,0.6in){\psline(-0.05in,-0.05in)(0.05in,0.05in)}
                \rput(-1.15in,0.6in){\psline(-0.05in,-0.05in)(0.05in,0.05in)}
                \rput[br](-1.2in,0.6in){\scalebox{0.75}{$2N_i$}}
                \rput[br](-1.2in,0.6in){\scalebox{0.75}{$2N_i$}}
        \rput[r](-1.6in,0.3in){\tt i\_right}
        \rput[r](-1.6in,0.3in){\tt i\_right}
Line 186... Line 186...
 
 
Internal to the FFT, things are a touch more complex.  Fig.~\ref{fig:white-box}
Internal to the FFT, things are a touch more complex.  Fig.~\ref{fig:white-box}
\begin{figure}\begin{center}
\begin{figure}\begin{center}
\begin{pspicture}(1.3in,-0.5in)(4.7in,5in)
\begin{pspicture}(1.3in,-0.5in)(4.7in,5in)
        % \rput(0,0){\psframe(0,-0.5in)(\textwidth,5.25in)}
        % \rput(0,0){\psframe(0,-0.5in)(\textwidth,5.25in)}
        \rput(0,0){\psframe(1.3in,-0.25in)(4.7in,5in)}
        \rput(0,0){\psframe[linewidth=2\pslinewidth](1.3in,-0.25in)(4.7in,5in)}
        \rput(0,5in){%
        \rput(0,5in){%
                \rput[r](1.95in,0.125in){\tiny\tt i\_left}
                \rput[r](1.95in,0.125in){\tiny\tt i\_left}
                \rput[l](4.05in,0.125in){\tiny\tt i\_right}
                \rput[l](4.05in,0.125in){\tiny\tt i\_right}
                \rput(2.0in,0){\psline{->}(0,0.25in)(0,0.0in)}
                \rput(2.0in,0){\psline{->}(0,0.25in)(0,0.0in)}
                \rput(4.0in,0){\psline{->}(0,0.25in)(0,0.0in)}
                \rput(4.0in,0){\psline{->}(0,0.25in)(0,0.0in)}
Line 313... Line 313...
piece of the structure.
piece of the structure.
 
 
Internal to each of the FFT stages is a butterfly and a complex multiply,
Internal to each of the FFT stages is a butterfly and a complex multiply,
as shown in Fig.~\ref{fig:fftstage}.
as shown in Fig.~\ref{fig:fftstage}.
\begin{figure}\begin{center}
\begin{figure}\begin{center}
\begin{pspicture}(0in,0in)(\textwidth,5in)
\begin{pspicture}(-0.25in,-1.8in)(3.25in,4.25in)
        \rput(0,0){\psframe(0in,0in)(\textwidth,5in)}
        % \rput(0,0){\psframe(0in,-2in)(3in,4.25in)}
        \rput(1.675in,3.75in){\psline{->}(0,0.5in)(0,0in)}
        \rput(0,0){\psframe[linewidth=2\pslinewidth](-0.25in,-1.55in)(3.25in,4.0in)}
 
        \rput[r](1.625in,4.125in){\tt i\_data}
 
        \rput(1.675in,3.75in){\psline{->}(0,0.5in)(0,0in)%
 
                        \psline{->}(0,0)(-0.2in,-0.25in)%
 
                        \psarc{->}{0.15in}{200}{340}}
        \rput(0,2.75in){\rput(0,0){\psframe(0,0)(1.3in,0.25in)}
        \rput(0,2.75in){\rput(0,0){\psframe(0,0)(1.3in,0.25in)}
                        \rput(0,0){\psframe(0.1in,0)(0.2in,0.25in)}
                        \rput(0,0){\psframe(0.1in,0)(0.2in,0.25in)}
                        \rput(0,0){\psframe(0.3in,0)(0.4in,0.25in)}
                        \rput(0,0){\psframe(0.3in,0)(0.4in,0.25in)}
                        \rput(0,0){\psframe(0.5in,0)(0.6in,0.25in)}
                        \rput(0,0){\psframe(0.5in,0)(0.6in,0.25in)}
                        \rput(0,0){\psframe(0.7in,0)(0.8in,0.25in)}
                        \rput(0,0){\psframe(0.7in,0)(0.8in,0.25in)}
                        \rput(0,0){\psframe(0.9in,0)(1.0in,0.25in)}
                        \rput(0,0){\psframe(0.9in,0)(1.0in,0.25in)}
                        \rput(0,0){\psframe(1.1in,0)(1.2in,0.25in)}
                        \rput(0,0){\psframe(1.1in,0)(1.2in,0.25in)}
                        \rput(0,0){\psline{-}(0.7in,-0.05in)(1.1in,-0.25in)}
                        \rput(0,0){\psline{-}(0.7in,-0.05in)(1.1in,-0.25in)}
                        \rput(0,0){\psline{-}(0.7in,0.3in)(1.5in,0.5in)(1.5in,0.75in)}}
                        \rput(0,0){\psline{<-}(0.7in,0.3in)(1.5in,0.5in)(1.5in,0.75in)}}
        \rput(1.85in,2.75in){\psline(0,0.75in)(0,-0.25in)}
        \rput(1.85in,2.75in){\psline(0,0.75in)(0,-0.25in)}
        \rput(0.6in,0.25in){\rput(0,0){\psframe(0,0)(2in,2.0in)}
        \rput(0.6in,0.25in){\rput(0,0){\psframe[linewidth=2\pslinewidth](0,0)(2in,2.0in)}
                \rput(0.50in,2in){\psline{->}(0,0.25in)(0,0in)}
                \rput(0.50in,2in){\psline{->}(0,0.25in)(0,0in)}
                \rput(1.25in,2in){\psline{->}(0,0.25in)(0,0in)}
                \rput(1.25in,2in){\psline{->}(0,0.25in)(0,0in)}
                \rput(1.75in,2in){\psline{->}(0,0.25in)(0,0in)}
                \rput(1.75in,2in){\psline{->}(0,0.25in)(0,0in)}
                \rput(0.5in,0){%
                \rput(0.5in,0){%
                        \rput(0in,0){\psline{->}(0,2.0in)(0,1.1in)}
                        \rput(0in,0){\psline{->}(0,2.0in)(0,1.1in)}
Line 349... Line 353...
                        \rput(0in,0){\psline{->}(0,0.9in)(0,0.6in)}
                        \rput(0in,0){\psline{->}(0,0.9in)(0,0.6in)}
                        \rput(0in,0.5in){$\bigotimes$}
                        \rput(0in,0.5in){$\bigotimes$}
                        \rput(0in,0){\psline{->}(0,0.4in)(0,0.0in)}}
                        \rput(0in,0){\psline{->}(0,0.4in)(0,0.0in)}}
                \rput(1.75in,0){%
                \rput(1.75in,0){%
                        \rput(0,0){\psline{->}(0,2.0in)(0,0.5in)(-0.4in,0.5in)}}
                        \rput(0,0){\psline{->}(0,2.0in)(0,0.5in)(-0.4in,0.5in)}}
                \rput(0.50in,-0.25in){\psline{->}(0,0.25in)(0,0in)}
                \rput(0.50in,-0.25in){\psline{->}(0,0.25in)(0,-1.05in)}
                \rput(1.25in,-0.25in){\psline{->}(0,0.25in)(0,0in)}
                \rput(1.25in,-0.25in){\psline{-}(0,0.25in)(0,0in)}}
                }
        \rput*[l](2.0in,0.5in){DIF Butterfly}
 
        \rput*[lb](1.95in,2.5in){Coefficient memory}
        % \rput(0,0){\psframe(1.3in,-0.25in)(4.7in,5in)}
        % \rput(0,0){\psframe(1.3in,-0.25in)(4.7in,5in)}
        \iffalse
        \rput(1.7in,-0.5in){\rput(0,0){\psframe(0,0)(1.3in,0.25in)}
        \rput(0,2.75in){\rput(0,0){\psframe(0,0)(1.3in,0.25in)}
 
                        \rput(0,0){\psframe(0.1in,0)(0.2in,0.25in)}
                        \rput(0,0){\psframe(0.1in,0)(0.2in,0.25in)}
                        \rput(0,0){\psframe(0.3in,0)(0.4in,0.25in)}
                        \rput(0,0){\psframe(0.3in,0)(0.4in,0.25in)}
                        \rput(0,0){\psframe(0.5in,0)(0.6in,0.25in)}
                        \rput(0,0){\psframe(0.5in,0)(0.6in,0.25in)}
                        \rput(0,0){\psframe(0.7in,0)(0.8in,0.25in)}
                        \rput(0,0){\psframe(0.7in,0)(0.8in,0.25in)}
                        \rput(0,0){\psframe(0.9in,0)(1.0in,0.25in)}
                        \rput(0,0){\psframe(0.9in,0)(1.0in,0.25in)}
                        \rput(0,0){\psframe(1.1in,0)(1.2in,0.25in)}
                        \rput(0,0){\psframe(1.1in,0)(1.2in,0.25in)}
                        \rput(0,0){\psline{-}(0.7in,-0.05in)(1.1in,-0.25in)}
                        \rput(0,0){\psline{<-}(0.7in,0.30in)(0.15in,0.5in)}
                        \rput(0,0){\psline{-}(0.7in,0.3in)(1.5in,0.5in)(1.5in,0.75in)}}
                        \rput(0,0){\psline{->}(0.7in,-0.05in)(-0.2in,-0.3in)(-0.2in,-0.55in)}}
        \fi
        \rput(1.3in,-1.3in){\psline{->}(-0.2in,0.25in)(0,0)}
 
        \rput(1.3in,-1.3in){\psarcn{->}{0.15in}{150}{30}}
 
        \rput(1.3in,-1.3in){\psline{->}(0,0)(0,-0.5in)}
 
        \rput[l](1.35in,-1.675in){\tt o\_data}
\end{pspicture}
\end{pspicture}
\caption{A Single FFT Stage, with Butterfly (Figure is still a work in progress)}\label{fig:fftstage}
\caption{A Single FFT Stage, with Butterfly}\label{fig:fftstage}
\end{center}\end{figure}
\end{center}\end{figure}
These FFT stages are really no different than any other decimation in
These FFT stages are really no different than any other decimation in
frequency FFT, save only that the coefficients are alternated between the
frequency FFT, save only that the coefficients are alternated between the
two stages.  That is, the even stages get all the even coefficients, and
two stages.  That is, the even stages get all the even coefficients, and
the odd stages get all of the odd coefficients.
the odd stages get all of the odd coefficients.
Line 432... Line 439...
                line, and set {\tt i\_ce} high.
                line, and set {\tt i\_ce} high.
        \item At the first valid output, the FFT core will set {\tt o\_sync}
        \item At the first valid output, the FFT core will set {\tt o\_sync}
                line high in addition to the output values {\tt o\_left}
                line high in addition to the output values {\tt o\_left}
                (the first of two), and {\tt o\_right} (the second of the two).
                (the first of two), and {\tt o\_right} (the second of the two).
        \item Ever after, whenever {\tt i\_ce} is high, the FFT core will clock
        \item Ever after, whenever {\tt i\_ce} is high, the FFT core will clock
                two samples in and two samples out.  On any valiid first
                two samples in and two samples out.  On any valid first
                pair of samples coming out of the transform,
                pair of samples coming out of the transform,
                {\tt o\_sync} will be high.  Otherwise {\tt o\_sync} will
                {\tt o\_sync} will be high.  Otherwise {\tt o\_sync} will
                remain low.
                remain low.
\end{enumerate}
\end{enumerate}
 
 

powered by: WebSVN 2.1.0

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