Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

VHDL fast fourier transform butterfly architecture problem.

Status
Not open for further replies.

nehsr

Newbie level 4
Joined
Apr 16, 2012
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,397
Hello,

So this is my code for the butterfly architecture of my
program.......... when compiled it says : component(40): "add":
expecting ';'

component(41): "sub": expecting ';' and it continues so on for all the
other components..........

my code is as follows:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.MATH_REAL.ALL;
library work;
use work.fft_pkg.all;

entity butterfly is
port(
s1,s2 : in complex; --inputs
w :in complex; -- phase factor
x1_out,x2_out :eek:ut complex -- outputs
);
end butterfly;

architecture Behavioral of butterfly is

signal xxx : integer := 0;

type comp_array is array (0 to 7) of complex;
type comp_array2 is array (0 to 3) of complex;

function add (x1,x2,x3 : comp_array) return comp_array;
function sub (x1,x2,x3 : comp_array) return comp_array;
function mult (x1,x2,x3 : comp_array) return comp_array;
begin

--butterfly equations.


function sub (x1,x2,x3 : comp_array) return comp_array is
variable diff : comp_array;

x1(1) := s(0) sub (s(4) mult w);

x1(3) := s(2) sub (s(6) mult w);

x1(5) := s(1) sub (s(5) mult w);


--2nd stage equations:

x2(2) := x1(0) sub (x1(2) mult w(0));

x2(1) := x1(1) sub (x1(3) mult w(2));

x2(4) := x1(4) sub (x1(6) mult w(0));

x2(5) := x1(5) sub (x1(7) mult w(2));

--3rd stage equations:


x3(4) := x2(0) sub (x2(4) mult w(0));

X3(5) := x2(1) sub (x2(5) mult w(1));

x3(6) := x2(2) sub (x2(6) mult w(2));

x3(7) := x2(3) sub (x2(7) mult w(3));
return diff;
end sub;


--1st stage equations:
function add (x1,x2,x3 : comp_array) return comp_array is
variable sum : comp_array;

x1(0) := s(0) add (s(4) mult w);
x1(2) := s(2) add (s(6) mult w);
x1(4) := s(1) add (s(5) mult w);
x1(6) := s(3) add (s(7) mult w);
--2nd stage equations (sum):
x2(0) := x1(0) add (x1(2) mult w(0));
x2(3) := x1(1) add (x1(3) mult w(2));
x2(6) := x1(4) add (x1(6) mult w(0));
x2(7) := x1(5) add (x1(7) mult w(2));
--3rd stage equations(sum):
x3(0) := x2(0) add (x2(4) mult w(0));
x3(1) := x2(1) add (x2(5) mult w(1));
x3(2) := x2(2) add (x2(6) mult w(2));
x3(3) := x2(3) add (x2(7) mult w(3));
return sum;
end add;


end process;


end Behavioral;
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top