General Information

When have one radix-2 FFT processor and two memory banks of dual-port memory. The first figure outlines the most straightforward way of implementing FFT, whereas the second figure suggests an addressing technique that achieves greater utilization of the processor and speed of the calculation.

Addressing Problem

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, shapes.multipart}
\def\nodeminheight{20pt}
\newcommand{\butterflyop}[8]{
% Circle
\coordinate (stage#1#2_points#3#4_tmp_west) at ($(stage_#1.#3 east)!0.5!(stage_#1.#4 east)$);
\coordinate (stage#1#2_points#3#4_tmp_east) at ($(stage_#2.#3 west)!0.5!(stage_#2.#4 west)$);
\node[draw, circle, fill=#8, inner sep = 2pt] (stage#1#2_points#3#4) at
($(stage#1#2_points#3#4_tmp_west)!#6!(stage#1#2_points#3#4_tmp_east)$) {};
% Breakpoints
\coordinate (stage#1#2_points_#3#4_up_0) at ($(stage_#1.#3 east)!#5!(stage_#2.#3 west)$);
\coordinate (stage#1#2_points_#3#4_up_1) at ($(stage_#1.#3 east)!#7!(stage_#2.#3 west)$);
\coordinate (stage#1#2_points_#3#4_down_0) at ($(stage_#1.#4 east)!#5!(stage_#2.#4 west)$);
\coordinate (stage#1#2_points_#3#4_down_1) at ($(stage_#1.#4 east)!#7!(stage_#2.#4 west)$);
% Connections
\draw (stage_#1.#3 east) --
(stage#1#2_points_#3#4_up_0) -- (stage#1#2_points#3#4) -- (stage#1#2_points_#3#4_up_1) --
(stage_#2.#3 west);
\draw (stage_#1.#4 east) --
(stage#1#2_points_#3#4_down_0) -- (stage#1#2_points#3#4) -- (stage#1#2_points_#3#4_down_1) --
(stage_#2.#4 west);
}
\begin{document}
\begin{tikzpicture}[line cap = round]
% Stage 0
\node
[
draw,
rectangle split,
rectangle split parts = 16,
anchor = center,
minimum height = \nodeminheight,
rectangle split part fill =
{
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Addressing Technique

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, shapes.multipart}
\newcommand{\butterflyop}[8]{
% Circle
\coordinate (stage#1#2_points#3#4_tmp_west) at ($(stage_#1.#3 east)!0.5!(stage_#1.#4 east)$);
\coordinate (stage#1#2_points#3#4_tmp_east) at ($(stage_#2.#3 west)!0.5!(stage_#2.#4 west)$);
\node[draw, circle, fill=#8, inner sep = 2pt] (stage#1#2_points#3#4) at
($(stage#1#2_points#3#4_tmp_west)!#6!(stage#1#2_points#3#4_tmp_east)$) {};
% Breakpoints
\coordinate (stage#1#2_points_#3#4_up_0) at ($(stage_#1.#3 east)!#5!(stage_#2.#3 west)$);
\coordinate (stage#1#2_points_#3#4_up_1) at ($(stage_#1.#3 east)!#7!(stage_#2.#3 west)$);
\coordinate (stage#1#2_points_#3#4_down_0) at ($(stage_#1.#4 east)!#5!(stage_#2.#4 west)$);
\coordinate (stage#1#2_points_#3#4_down_1) at ($(stage_#1.#4 east)!#7!(stage_#2.#4 west)$);
% Connections
\draw (stage_#1.#3 east) --
(stage#1#2_points_#3#4_up_0) -- (stage#1#2_points#3#4) -- (stage#1#2_points_#3#4_up_1) --
(stage_#2.#3 west);
\draw (stage_#1.#4 east) --
(stage#1#2_points_#3#4_down_0) -- (stage#1#2_points#3#4) -- (stage#1#2_points_#3#4_down_1) --
(stage_#2.#4 west);
}
\begin{document}
\begin{tikzpicture}[line cap = round]
% Stage 0
\node
[
draw,
rectangle split,
rectangle split parts = 16,
anchor = center,
rectangle split part fill =
{
white,
gray!60,
white,
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Leave a Reply

Your email address will not be published.