⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fir_lowpass.v

📁 无线通信FPGA设计-FPGA源码
💻 V
字号:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    01:37:08 10/09/2007 
// Design Name: 
// Module Name:    FIR_lowpass 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module FIR_Lowpass(Data_out,Data_in,clock,reset);//8阶高斯低通FIR

parameter order = 8;
parameter word_size_in = 8;
parameter word_size_out = 2*word_size_in + 1;

//滤波器系数
parameter b0 = 8'd7;  
parameter b1 = 8'd17; 
parameter b2 = 8'd32; 
parameter b3 = 8'd46; 
parameter b4 = 8'd52; 
parameter b5 = 8'd46; 
parameter b6 = 8'd32; 
parameter b7 = 8'd17; 
parameter b8 = 8'd7; 

output [word_size_out-1 : 0] Data_out;
input [word_size_in-1 : 0] Data_in;
input clock,reset;
reg  [word_size_in-1 : 0] Samples[1 : order];
integer k;

// 串行实现成累加
assign Data_out = b0*Data_in + b1*Samples[1] + b2*Samples[2] + b3*Samples[3]
    		  + b4*Samples[4] + b5*Samples[5] + b6*Samples[6] + b7*Samples[7] 
+ b8*Samples[8];

// 完成移位的功能
always @ (posedge clock)
   if(reset == 1) begin
      for(k=1; k<=order; k=k+1)
         Samples[k] <= 0;
   end
   else begin
      Samples[1] <= Data_in;
      for(k=2; k<=order; k=k+1)
         Samples[k] <= Samples[k-1];
   end

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -