多级抽取CIC滤波器的Verilog HDL设计ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
4
CIC滤波器
➢ CIC滤波器:
CIC(Cascaded Integral Comb)抽取滤波器,最初由 Hogenauer提出,因为它结构简单,而且实现时无需乘法器和 系数的存储,是一种简单有效的抽样率转换方法。
➢ CIC抽取滤波器:
- 原理
CIC抽取滤波器通常是由一个积分梳状滤波器和一个抽取滤 波器级联组合而成,其中,级联的积分梳状滤波器又分为积 分部分和梳状部分。
➢ 作为专用集成电路(ASIC)领域中的一种半定制电路而出现 的,既解决了定制电路的不足,又克服了原有可编程器件门电 路数有限的缺点。
➢ FPGA设计顺序:
- 基于Verilog HDL编程
- Quartus Ⅱ时序仿真
- FPGA设计
- 逻辑分析仪
.
12
FPGA设计方案
➢ 时钟信号产生器(CLK_GE) ➢ 清零信号产生器(RST_GE) ➢ 输出信号(Y_OUT)
多级抽取CIC滤波器的 Verilog HDL设计
.
Contents
➢ 研究背景
➢ 单级/多级CIC滤波器的原理
➢ Verilog HDL设计及功能仿真
➢ QuartusⅡ 时序仿真
➢ FPGA设计及验证
➢ 结论
.
2
研究背景
➢ 研究目的:
随着社会经济的飞速发展,科技的进步,人们对滤波器的了 解在不断的加深,对此的研究也在不断的进步当中。
➢ 研究意义:
在所有的电子系统中,使用最多、技术最复杂的要算滤波器。 滤波器的优劣直接影响着产品的优劣。
➢ 主要研究内容:
- CIC滤波器的原理及结构。 - 基于Verilog HDL语言对多级CIC抽取滤波器设计。 - 使用FPGA进行仿真验证。
.
3
单级/多级CIC滤波器的原理
➢ CIC滤波器 ➢ 单级CIC抽取滤波器的原理 ➢ 多级CIC抽取滤波器的原理
- 功能
在完成采样率降低的同时,用滤波器防止频谱混叠的发生。
.
5
CIC滤波器的原理
- 积分部分传递函数表达式: H1(z)(11z1)N - 梳状部分传递函数表达式:Hc(z)(1zRM )N - 整个滤波器的传递函数表达式:H(z)M1R11zzR1MN
.
CIC抽取滤波器示意图
6
单级/多级CIC滤波器的原理
➢ 单级CIC抽取滤波器的原理 ➢ 多级CIC抽取滤波器的原理
单级CIC抽取滤波器示意图
.
多级CIC抽取滤波器示意图
7
单级CIC抽取滤波器的Verilog HDL设计
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
CLK DATA
RST
.
3级CIC抽取滤波器基于FPGA的设计示意图
Y_OUTபைடு நூலகம்
13
时序仿真结果图
CLK_GE的时序仿真结果图
.
RST_GE的时序仿真结果图
14
输入时钟信号
FPGA模块图
clk生成器
输. 入初始化信号
Reset生成器
输入数据
输出数据
3级CIC抽取滤波器的模块图
15
FPGA设计环境
电脑
下载
FPGA
10
3级CIC抽取滤波器的时序仿真
➢ 输入信号clk, clk1, reset ➢ 给输入信号赋8位有效值 x_in :00110011 ➢ 输出结果y_out
时序仿真结果图
.
11
FPGA设计及验证
➢ FPGA(Field-Programmable Gate Array),即现场可编程门 阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展 的产物。
.
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]; comb_out2<=c2[7:0]-c2[15:8]; y_out<=c3[7:0]-c3[15:8]; end end endmodule
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
时序仿真结果图
.
9
3级CIC抽取滤波器的Verilog HDL设计
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
y_t<={y_t[7:0],int_out[7:0]}; end end
assign y_out=y_t[7:0]-y_t[15:8]; endmodule
.
8
单级CIC抽取滤波器的时序仿真
➢ 输入信号clk, clk1, reset ➢ 给输入信号赋8位有效值 x_in :11001100 ➢ 输出结果y_out