网站大量收购独家精品文档,联系QQ:2885784924

多级抽取CIC滤波器的VerilogHDL设计.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多级抽取CIC滤波器的VerilogHDL设计

????? 多级抽取CIC滤波器的 Verilog HDL设计 * * Contents 研究背景 单级/多级CIC滤波器的原理 Verilog HDL设计及功能仿真 QuartusⅡ 时序仿真 FPGA设计及验证 结论 * * 研究目的: 随着社会经济的飞速发展,科技的进步,人们对滤波器的了 解在不断的加深,对此的研究也在不断的进步当中。 研究意义: 在所有的电子系统中,使用最多、技术最复杂的要算滤波器。 滤波器的优劣直接影响着产品的优劣。 主要研究内容: - CIC滤波器的原理及结构。 - 基于Verilog HDL语言对多级CIC抽取滤波器设计。 - 使用FPGA进行仿真验证。 研究背景 * 单级CIC抽取滤波器的原理 CIC滤波器 多级CIC抽取滤波器的原理 单级/多级CIC滤波器的原理 * CIC(Cascaded Integral Comb)抽取滤波器,最初由 Hogenauer提出,因为它结构简单,而且实现时无需乘法器和 系数的存储,是一种简单有效的抽样率转换方法。 CIC滤波器: CIC滤波器 CIC抽取滤波器: - 原理 CIC抽取滤波器通常是由一个积分梳状滤波器和一个抽取滤 波器级联组合而成,其中,级联的积分梳状滤波器又分为积 分部分和梳状部分。 - 功能 在完成采样率降低的同时,用滤波器防止频谱混叠的发生。 * CIC抽取滤波器示意图 - 整个滤波器的传递函数表达式: - 积分部分传递函数表达式: - 梳状部分传递函数表达式: CIC滤波器的原理 * 单级CIC抽取滤波器的原理 多级CIC抽取滤波器的原理 多级CIC抽取滤波器示意图 单级CIC抽取滤波器示意图 单级/多级CIC滤波器的原理 * module cic_single(clk,clk1,reset,x_in,y_out); input clk,clk1,reset; input [7:0] x_in; output [7:0] y_out; wire[7:0] y_out; always @(posedge clk)begin if(!reset)begin x_t=0; int_out=0; end else begin x_t={x_t[7:0],x_in[7:0]}; end int_out=x_t[7:0]+x_t[15:8]; end always @(posedge clk1)begin if(!reset)begin y_t=0; end else begin y_t={y_t[7:0],int_out[7:0]}; end end assign y_out=y_t[7:0]-y_t[15:8]; endmodule 单级CIC抽取滤波器的Verilog HDL设计 * 输入信号clk, clk1, reset 给输入信号赋8位有效值 x_in 输出结果y_out 时序仿真结果图 单级CIC抽取滤波器的时序仿真 * * * module park(clk,clk1,reset,x_in,y_out); input clk,clk1,reset; input[7:0] x_in; output[7:0] y_out; reg[7:0] y_out; always@(posedge clk)begin if(!reset)begin i1=0, i2=0, i3=0; int_out1=0, int_out2=0, int_out3=0; end else i1={i1[7:0],x_in}; i2={i2[7:0],int_out1}; i3={i3[7:0],int_out2}; int_out1=i1[7:0]+i1[15:8]; int_out2=i2[7:0]+i2[15:8]; int_out3=i3[7:0]+i3[15:8]; end always@(posedge clk1)begin if(reset)begin c1=0, c2=0, c3=0; comb_out1=0, comb_out2=0; y_out=0; end else begin c1={c1[7:0],int_out3}; c2={c2[7:0],comb_out1}; c3={c3[7:0],comb_out2}; comb_out1=c1[7:0]-c1[15:8]; c

您可能关注的文档

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档