基于FPGA的FIR滤波器设计,要求VHDL编写,在maxplus能运行,求各位有用过的发给我啊402868096

基于FPGA的FIR滤波器设计,要求VHDL编写,在maxplus能运行,求各位有用过的发给我啊402868096,第1张

现在fpga设计都用quartus了啊,下面程序中fir0_ast

元件在std_logic_1164包中,具体程序如下:

library IEEE

use IEEE.std_logic_1164.all

ENTITY fir0 IS

PORT (

clk : IN STD_LOGIC

reset_n : IN STD_LOGIC

ast_sink_data : IN STD_LOGIC_VECTOR (7 DOWNTO 0)

ast_sink_valid : IN STD_LOGIC

ast_source_ready : IN STD_LOGIC

ast_sink_error : IN STD_LOGIC_VECTOR (1 DOWNTO 0)

ast_source_data : OUT STD_LOGIC_VECTOR (17 DOWNTO 0)

ast_sink_ready : OUT STD_LOGIC

ast_source_valid : OUT STD_LOGIC

ast_source_error : OUT STD_LOGIC_VECTOR (1 DOWNTO 0)

)

END fir0

ARCHITECTURE SYN OF fir0 IS

COMPONENT fir0_ast

PORT (

clk : IN STD_LOGIC

reset_n : IN STD_LOGIC

ast_sink_data : IN STD_LOGIC_VECTOR (7 DOWNTO 0)

ast_sink_valid : IN STD_LOGIC

ast_source_ready : IN STD_LOGIC

ast_sink_error : IN STD_LOGIC_VECTOR (1 DOWNTO 0)

ast_source_data : OUT STD_LOGIC_VECTOR (17 DOWNTO 0)

ast_sink_ready : OUT STD_LOGIC

ast_source_valid : OUT STD_LOGIC

ast_source_error : OUT STD_LOGIC_VECTOR (1 DOWNTO 0)

)

END COMPONENT

BEGIN

fir0_ast_inst : fir0_ast

PORT MAP (

clk => clk,

reset_n => reset_n,

ast_sink_data => ast_sink_data,

ast_source_data => ast_source_data,

ast_sink_valid => ast_sink_valid,

ast_sink_ready => ast_sink_ready,

ast_source_valid => ast_source_valid,

ast_source_ready => ast_source_ready,

ast_sink_error => ast_sink_error,

ast_source_error => ast_source_error

)

END SYN

其实根本没有楼上回答的那么复杂。

楼上说道要用matlab做设计验证,这个是必须有的,而后却没有说出关键之所在。

方法一:

1.先在matlab上设计一个巴特沃斯滤波器,根据你的设计需要设置位宽之类的东西。

2.matlab有一个功能就是能把在matlab上设计的东西自动转换成VHDL语言文本,然后再在FPGA上应用即可。(这才是关键)

方法二:(推荐)

直接在Quartus上安装一个DSP Builder扩展软件,然后DSP Builder中有很多现成的IP核,比如各种滤波器现成的IP核,直接用DSP Builder配置出你所需要的功能的滤波器即可(这可是菜单式,图形化的配置界面,无需自己去想公式和函数),然后DSP Builder会把你配置出来得IP核以功能模块形式生成并放入相应库中,然后需要做的就是在QUartus中调用生成的这个滤波器原件即可。

如何用用FPGA实现FIR滤波器

你接到要求用FPGA实现FIR滤波器的任务时,也许会想起在学校里所学的FIR基础知识,但是下一步该做什么呢?哪些参数是重要的?做这个设计的最佳方法是什么?还有这个设计应该怎样在FPGA中实现?现在有大量的低成本IP核和工具来帮助你进行设计,因为FIR是用FPGA实现的最普通的功能。

基础和主要参数

也许你在听FIR滤波器课时不够专注。这里做一个快速的复习,最简单的形式是, FIR 滤波器的输出 y(n)是求采样数据x(n) 的N个输入的平均值。 存储的每个采样称为抽头。 当然大多数设计都比这个复杂, 要提供优化的滤波器 特性,要用系数乘 每个抽头, 或者对 h(i) 进行加权。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11840930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存