高通FIR数字滤波器设计论文.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电 子 科 技 大 学 ASIC课程设计报告二 学 号 : 姓 名 : 课题题目 : 高通FIR数字滤波器设计 2013年5月 FIR 数字滤波器设计 已知FIR型数字滤波器的z域系统函数为: 即: 要求如下: ? 设计平台:基于Quartus II 或ISE 平台,选择Altera Cyclone II 系列的EP2C8F256C8 或Xilinx Sparten3 系列的XC3S400(PQ208); ? testbench 的信号输入激励源使用Matlab 生成三角波信号; ? 输入位宽16 位,输出位宽24 位,中间级可自行截位; 设计(1) 直接型FIR设计 画出直接实现结构的框图,完成其verilog HDL 电路描述及testbench,完成功能仿真和时序仿真,给出仿真波形图; 直接型结构框图如下: 长度为M的因果有限冲激响应滤波器由传输函数H(z)描述: (1) 它是次数为M-1的z-1的一个多项式。在时域中,上述有限冲激响应滤波器的输入输出关系为: (2) 其中y(n)和x(n)分别是输出和输入序列。 有限冲激响应滤波器的一种直接型实现,可由式(2)生成,M=5的情况如上图所示。通常一个长度为M的有限冲激响应滤波器由M个系数描述,并且需要M个乘法器和(M-1)个双输入加法器来实现。 本设计包含的模块有4个16位寄存器块、5个16位乘法器、4个32位加法器模块 用Quartus II综合,顶层模块框图如下: 1、寄存器模块 寄存器用于寄存一组二值代码,只要求它们具有置1、置0的功能即可。在本设计中用D触发器组成寄存器,实现寄存功能。本设计中使用带异步复位reset_n端的D触发器,当reset_n=1时,输出信号q_out=d_in,当reset_n=0且上升沿脉冲到达时q_out=0。 其综合框图部分截图如下图所示。 程序代码如下: module dff16(reset_n,clk,d_in,q_out); input reset_n,clk; input [15:0]d_in; output reg [15:0]q_out; always @(posedge clk or negedge reset_n) begin if(!reset_n) q_out=16h0; else q_out=d_in; end endmodule 在顶层文件中例化了D1、D2、D3、D4四个寄存器模块 dff16 D1(.reset_n(reset_n),.clk(clk),.d_in(x_in),.q_out(q1)), D2(.reset_n(reset_n),.clk(clk),.d_in(q1),.q_out(q2)), D3(.reset_n(reset_n),.clk(clk),.d_in(q2),.q_out(q3)), D4(.reset_n(reset_n),.clk(clk),.d_in(q3),.q_out(q4)); 2、乘法器模块 从资源和速度考虑,常系数乘法运算可用移位相加来实现。本设计采用加法树乘法器兼顾了资源与速度,将每个乘数例化了一个数组,然后移位相加得出乘积,这样使得乘法运算可以一个周期内完成。 程序代码如下: module mult16(outcome,a,b); input [15:0] a,b; output wire [31:0]outcome; wire [30:0] temp0; wire [29:0] temp1; wire [28:0] temp2; wire [27:0] temp3; wire [26:0] temp4; wire [25:0] temp5; wire [24:0] temp6; wire [23:0] temp7; wire [22:0] temp8; wire [21:0] temp9; wire [20:0] temp10; wire [19:0] temp11; wire [18:0] temp12; wire [17:0] temp13; wire [16:0] temp14; wire [15:0] temp15; function [15:0] mult16x1; input [15:0] operand; input sel; begin mult16x1=(sel)?(operand):15b0

文档评论(0)

smdh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档