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

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

软件:Quartus

语言:VHDL

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

演示视频:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=210

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

代码下载: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.com部分代码展示library ieee; use ieee.std_logic_1164.all; --256点http://www.hdlcode.com/index.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. 工程文件
  1. 程序文件

FFT IP 核设置

  1. 程序编译
  1. RTL图
  1. Testebcnh
  1. 仿真图
相关推荐
物质波波波1 天前
WS-RPE:面向边缘物理AI实时特征值计算的硬件工作窃取调度器与冗余PE激活架构
人工智能·fpga开发·架构·系统架构·硬件架构
我爱C编程1 天前
基于FPGA的DSB调制解调系统verilog开发
fpga开发·verilog·fpga·dsb
zlinear数据采集卡1 天前
USB HS 480M高速传输与SRAM记录仪:DABM-D223数据存储系统全解析
arm开发·嵌入式硬件·fpga开发·开源
逻辑诗篇1 天前
基于 XCVU13P 的 4 路 100G 光纤 PCIe 处理板 PCIE727 硬件规格全解析
fpga开发
玩嵌入式谁会脱发呀2 天前
【FPGA】 verilog设计spi读写flash实现数据DMA搬运
fpga开发
LabVIEW开发3 天前
LabVIEW 如何把地下震源定位误差做到5米内
fpga开发·labview·labview知识·labview功能·labview程序
Dr.kangder3 天前
嵌入式处理器架构解析(十)——DSP+FPGA
fpga开发·架构·嵌入式
szxinmai主板定制专家3 天前
Zynq MPSoC实现半导体真空腔体状态监测|FPGA多传感器时序同步采集方案
fpga开发·zynq·控制器·mpsoc·半导体设备·fpga同步
学习FPGA的电气小兴兴3 天前
基于FPGA的DDS信号发生器设计,生成频率可调的正弦波、三角波、锯齿波和方波
fpga开发·数字信号处理·fpga·vivado·dsp·dds·diy
szxinmai主板定制专家4 天前
Zynq MPSoC半导体高精度运动控制方案|FPGA硬件插补实现亚微米级伺服实时控制
人工智能·嵌入式硬件·fpga开发·zynq·运动控制·ethercat