FPGA的256点FFT调用Quartus IP核实现VHDL傅里叶变换

编程入门 行业动态 更新时间:2024-10-25 23:36:06

FPGA的256点<a href=https://www.elefans.com/category/jswz/34/1765856.html style=FFT调用Quartus IP核实现VHDL傅里叶变换"/>

FPGA的256点FFT调用Quartus IP核实现VHDL傅里叶变换

名称:256点FFT调用Quartus IP核实现傅里叶变换

软件:Quartus

语言:VHDL

代码功能:使用VHDL实现256点FFT,调用Quartus IP核实现傅里叶变换

演示视频:.php?m=home&c=View&a=index&aid=210

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode

代码下载:256点FFT调用Quartus IP核实现傅里叶变换 软件:Quartus 语言:VHDL 代码功能:使用VHDL实现256点FFT,调用Quartus IP核实现傅里叶变换名称:256点FFT调用Quartus IP核实现傅里叶变换(代码在文末付费下载)软件:Quartus语言:VHDL代码功能:使用VHDL实现256点FFT,调用Quartus IP核实现傅里叶变换演示视频:FPGA代码verilog/VHDL代码资源下载网:www.hdlcode部分代码展示library ieee; use ieee.std_logic_1164.all; --256点.php?m=home&c=View&a=index&aid=210

部分代码展示

library ieee; 
use ieee.std_logic_1164.all; 
--256点FFT设计,16bit输入
entity fft256 is port( clk : IN STD_LOGIC; --时钟reset_n : IN STD_LOGIC; --复位sink_real : IN STD_LOGIC_VECTOR (15 DOWNTO 0); --16bit输入数据source_error : OUT STD_LOGIC_VECTOR (1 DOWNTO 0); --FFT IP核输出的报错指示信号source_sop : OUT STD_LOGIC; ----FFT IP核输出的数据第一位指示信号source_eop : OUT STD_LOGIC; ----FFT IP核输出的数据最后一位指示信号source_valid : OUT STD_LOGIC; --FFT IP核输出的数据有效指示信号source_exp : OUT STD_LOGIC_VECTOR (5 DOWNTO 0); --FFT IP核输出的指示信号source_real : OUT STD_LOGIC_VECTOR (15 DOWNTO 0); --FFT变换输出的实部source_imag : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) --FFT变换输出的虚部); 
end fft256; 
architecture one of fft256 is 
--例化FFT IP 核
component fft_burst PORT ( clk : IN STD_LOGIC; reset_n : IN STD_LOGIC; inverse : IN STD_LOGIC; sink_valid : IN STD_LOGIC; sink_sop : IN STD_LOGIC; sink_eop : IN STD_LOGIC; sink_real : IN STD_LOGIC_VECTOR (15 DOWNTO 0); sink_imag : IN STD_LOGIC_VECTOR (15 DOWNTO 0); sink_error : IN STD_LOGIC_VECTOR (1 DOWNTO 0); source_ready : IN STD_LOGIC; sink_ready : OUT STD_LOGIC; source_error : OUT STD_LOGIC_VECTOR (1 DOWNTO 0); source_sop : OUT STD_LOGIC; source_eop : OUT STD_LOGIC; source_valid : OUT STD_LOGIC; source_exp : OUT STD_LOGIC_VECTOR (5 DOWNTO 0); source_real : OUT STD_LOGIC_VECTOR (15 DOWNTO 0); source_imag : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); 
END component; 
--例化FFT IP核控制模块
component ctrl_fft port( reset_n : in std_logic; clk : in std_logic; sink_ready : in std_logic; sink_sop : out std_logic; sink_eop : out std_logic; sink_valid : out std_logic); 
end component; 
--定义连接信号
signal sink_valid_i,sink_eop_i,sink_sop_i,sink_ready_i : std_logic; 
begin 
--调用FFT IP核
u1 : fft_burst port map( clk => clk, --时钟reset_n => reset_n, --复位inverse => '0', sink_valid => sink_valid_i, --每帧输入数据有效时为高电平sink_sop => sink_sop_i, --用来指示每帧输入数据的第一个数据sink_eop => sink_eop_i,--用来指示每帧输入数据的最后一个数据 sink_real => sink_real, --16bit输入数据sink_imag => (others=>'0'), sink_error => "00", source_ready => '1', sink_ready => sink_ready_i,  --指示可以输入待变换的数据source_error => source_error, --FFT IP核输出的报错指示信号source_sop => source_sop, --FFT IP核输出的数据第一位指示信号source_eop => source_eop, --FFT IP核输出的数据最后一位指示信号source_valid => source_valid, --FFT IP核输出的数据有效指示信号source_exp => source_exp, --FFT IP核输出的指示信号source_real => source_real, --FFT变换输出的实部source_imag => source_imag --FFT变换输出的虚部); --调用FFT IP核控制模块
u2 : ctrl_fft port map( reset_n => reset_n, clk => clk, sink_ready => sink_ready_i, --指示可以输入待变换的数据 sink_sop => sink_sop_i,--用来指示每帧输入数据的第一个数据 sink_eop => sink_eop_i,--用来指示每帧输入数据的最后一个数据 sink_valid => sink_valid_i --每帧输入数据有效时为高电平); 
end one;

设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

FFT IP 核设置

3. 程序编译

4. RTL图

5. Testebcnh

6. 仿真图

更多推荐

FPGA的256点FFT调用Quartus IP核实现VHDL傅里叶变换

本文发布于:2023-12-05 18:20:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1664933.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:FFT   FPGA   Quartus   傅里叶   VHDL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!