您当前的位置: 首页 > 

FPGA硅农

暂无认证

  • 2浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

FIR滤波器的Verilog实现

FPGA硅农 发布时间:2022-07-13 09:23:14 ,浏览量:2

简介

FIR滤波器是非递归型滤波器的简称,又叫有限长单位冲激响应滤波器。带有常系数的FIR滤波器是一种LTI(线性时不变)数字滤波器。冲激响应是有限的意味着在滤波器中没有发反馈。长度为N的FIR输出对应于输入时间序列x(n)的关系由一种有限卷积和的形式给出,具体形式如下: y ( n ) = Σ k = 0 N − 1 h ( k ) × x ( n − k ) y(n)=\Sigma_{k=0}^{N-1}h(k)\times x(n-k) y(n)=Σk=0N−1​h(k)×x(n−k) 其运算过程可以采用如下图所示的流程: 在这里插入图片描述

代码

设计部分(采用移位寄存器+并行乘法阵列+加法树实现)

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/07/12 14:23:22
// Design Name: 
// Module Name: my_fir
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module my_fir
#(parameter F=10)
(
input logic clk,
input logic rst,
input logic signed [15:0] filter_in,
output logic signed [31:0] filter_out
    );
//
logic signed [15:0] shift_regs [0:16];
logic signed [15:0] coes [0:16];
logic signed [31:0] mults [0:16];
logic signed [31:0] psum [0:4-1];
logic signed [31:0] sum;
//shift_regs
always@(posedge clk,posedge rst)
if(rst)
   for(int i=0;i            
关注
打赏
1658642721
查看更多评论
0.0413s