




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子科技大学ASIC课程设计报告二201222240937课题题目高通FIR数字滤波器设计2013年5月FIR数字滤波器设计已知FIR型数字滤波器的z域系统函数为:H(z)0.25 (1 3.5z 14z 23.5z 3z4)即:H(z)0.125 (2 7z 18z 2 7z 32z4)要求如下:选择Altera Cyclone II系列的?设计平台:基于Quartus II或ISE平台,EP2C8F256C8 或Xilinx Sparten3 系列的 XC3S400(PQ208);? testbench的信号输入激励源使用Matlab生成三角波信号;?输入位宽16位,输出位宽24位,中间级
2、可自行截位;?设计 直接型FIR设计画出直接实现结构的框图,完成其 verilog HDL电路描述及testbench,完成 功能仿真和时序仿真,给出仿真波形图;直接型结构框图如下:H(0) 1H(1)H(2)H(3)H* +*一Yn( 23:0)长度为M的因果有限冲激响应滤波器由传输函数H( Z)描述:M 1H(z) h(k)z kk 0它是次数为M-1的Z-1的一个多项式。在时域中,上述有限冲激响应滤波器的输入输出关系为:M 1y(n) h(k)x(n k)k 0其中y (n)和x (n)分别是输出和输入序列。2)生成,M=5的情况如有限冲激响应滤波器的一种直接型实现,可由式(上图所示。通
3、常一个长度为 M的有限冲激响应滤波器由 M个系数描述,并且需要M个乘法器和(M-1)个双输入加法器来实现。本设计包含的模块有4个16位寄存器块、5个16位乘法器、4个32位加法器模 块用Quartus II综合,顶层模块框图如下:iiiiur1唧mj rUNPillWII' niilfwiiii UlIlLfiUlll lljillll iifwiiiiW::*42t'TI1、寄存器模块寄存器用于寄存一组二值代码,只要求它们具有置1、置0的功能即可。在OLtfO Ll|4outfG Lili GJjU1 13Lt1 3 n“143Ltf1 5本设计中用D触发器组成寄存器,实现寄
4、存功能。本设计中使用带异步复位resetn 端的 D触发器,当 reset_n=1 时,输出信号 q_out=d_in,当 reset_n=0且上升沿脉冲到达时q_out=0。其综合框图部分截图如下图所示。51 刖r dd哗dJn0»djn3»r"可rft程序代码如下: module dff16(reset_n,clk,d _in ,q_out); input reset_ n, clk;inp ut 15:0d_i n;out put reg 15:0q_out;always (p osedge clk or n egedge reset_ n) beginif
5、(!reset_ n)q_out<=16'h0;elseq_out<=d _in; enden dmodule在顶层文件中例化了 D1、D2、D3、D4四个寄存器模块dff16D1(.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
6、(q3),.q_out(q4);2、乘法器模块从资源和速度考虑,常系数乘法运算可用移位相加来实现。本设计采用加法树乘法器兼顾了资源与速度,将每个乘数例化了一个数组,然后移位相加得出乘积,这样使得乘法运算可以一个周期内完成。程序代码如下:module mult16(outcome,a,b);inp ut 15:0 a,b;out put wire 31:0outcome;wire 30:0 te mp0;wire 29:0 te mp1;wire 28:0 te mp2;wire 27:0 te mp3;wire 26:0 te mp4;wire 25:0 te mp5;wire 24:0 te
7、 mp6;wire 23:0 te mp7;wire 22:0 te mp8;wire 21:0 te mp9;wire 20:0 te mp 10;wire 19:0 te mp 11;wire 18:0 te mp 12;wire 17:0 te mp13;wire 16:0 te mp 14;wire 15:0 te mp 15;fun ctio n 15:0 mult16x1;inpu t 15:0 operand;input sel;beginmult16x1=(sel)?(o pera nd):15'b0;end endfun cti on assig n temp 15=
8、mult16x1(a,b0);assig n tem p14=(mult16x1(a,b1)vv1);assign temp 13=(mult16x1(a,b1)<<2);assign temp 12=(mult16x1(a,b1)<<3);assig n tem p11=(mult16x1(a,b1)vv4);assig n tem p10=(mult16x1(a,b1)vv5);assig n tem p9=(mult16x1(a,b1)vv6);assig n tem p8=(mult16x1(a,b1)vv7);assig n tem p7=(mult16x1(
9、a,b1)vv8);assign tem p6=(mult16x1(a,b1)vv9);assign tem p5=(mult16x1(a,b2)vv10);assig n tem p4=(mult16x1(a,b3)vv11);assign tem p3=(mult16x1(a,b4)vv12);assign tem p2=(mult16x1(a,b5)vv13);assig n tem p1=(mult16x1(a,b6)vv14);assig n tem p0=(mult16x1(a,b7)vv15);wire 31:0out1,c1,d1;wire 29:0out2;wire 27:0
10、out3,c2;wire 25:0out4;wire 23:0out5,c3,d2;wire 21:0out6;wire 19:0out7,c4;wire 17:0out8;assig n out仁te mp 0+te mp1;assig n out2=te mp 2+te mp3;assig n out3=te mp 4+te mp5;assig n out4=te mp 6+te mp7;assig n out5=te mp 8+te mp9;assig n out6=te mp 10+te mp11;assig n out7=te mp 12+te mp13;assig n out8=t
11、e mp 14+te mp15;assig n c1=out1+out2;assig n c2=out3+out4;assig n c3=out5+out6;assig n c4=out7+out8;assig n d1=c1+c2;assig n d2=c3+c4;assig n outcome=d1+d2;en dmodule其综合框图部分截图如下图所示。£Il'UIIIVIIllp|PH-I-II-IIH"IIIII«III IHtllllllllL ,二JAB 汕 1=Onto-JO;3S:t-rmiirs rI 4-lik二耳巡=LII!IIBI
12、b ;:3: = u:£%=-=_-lw1_m=三=- JIH二=UHH-茎-二-b' M 亠=宣 M 亠士 M本设计例化了 5个乘法器分别为m0,m1,m2,m3,m4.mult16 m0(.outcome(mout0),.a(x_i n),.b(8'd2).m1(.outcome(mout1),.a(q1),.b(8'd7).m2(.outcome(mou t2),.a(q2),.b(8'd8).m3(.outcome(mou t3),.a(q3),.b(8'd7), m4(.outcome(mout4),.a(q4),.b(8'd
13、2);3、加法器模块由于本设计只涉及到相加,而没有减法,所以本加法器实现两个32位无符号数的相加运算。即将输入的两数,在时钟脉冲到来时相加运算,输出结果。由于加法器相对于乘法器等模块占用的资源少,所以本设计没有再单独设计加法器,而是直接综合出加法器。程序代码如下:module add32(a,b,out);inp ut 31:0a,b;out put 34:0out;assig n out=a+b;en dmodule在本设计中共有4个加法器a1,a2,a3,a4add32 a1(.a(mout0),.b(mout1),.out(aout1).a2(.a(aout1),.b(mout2),.o
14、ut(aout2).a3(.a(aout2),.b(mout3),.out(aout3).a4(.a(aout3),.b(mout4),.out(aout4);二、波形仿真首先用Matlab产生一个周期为16点位宽为16位三角波:n=1:7;x1( n)=n-1;n=8:15;x1( n)=15-n;x1 = x1 * 100;x2 =ui nt16(x1);,'wt+');fid = fopen('E:/CX/Verilog/desig n/FIR/FIR1/tri.txt'fprin tf(fid,'%xn',x2);fclose(fid);
15、产生的三角波如下:n=1:15;sub plot(3,1,1);stem( n,x1);sub plot(3,1,2);x1fft=fft(x1);stem( n,abs(x1fft);三角波时域图60C?402051015三角波频域图通过testbench模块将Matlab产生的测试数据tri.txt ,将各个模块添加到顶 层图中联合测试,最终实现所需要的功能。测试代码如下所示:'timescale 1ns/1ps'defi ne clock 50module test;reg clk,reset_ n;reg 15:0x_i n;reg 15:0data_mem0:15;i
16、n teger i;wire 23:0y_out;always #'clock clk=clk;in itialbeg inclk=O;resetn=1;#20 reset_n=0;#10 reset_n=1;endin itialbeg in$readmemh("tri.txt",data_mem);endalways (p osedge clk or n egedge reset_ n)beginif(!reset_ n) beg inx_in<=15'b0;i<=0;endelse if(i<=13) beg inx_inv=data
17、_memi;i<=i+1;endelse beg inx_inv=data_memi;i<=0;endendfir_topfir(.reset n(reset n),.clk(clk),.x i n(x in ),.y out(y out);en dmodule产生的仿真波形如下图所示:A姒妝krirtRJuuhmnmjuLJUinjuwq'MV典伽!:帕丁川皿汕|mrpaTniin?niB|amjnCTjinzmBjnrn nmunuxn reLL5miTii iiMim-rcrnK*或Ar/l/g&tT砸1肌口二叽1.此_'恤匕皿国:0恤0口肚;止11讪
18、01ILLLjnUUlj?设计(2)直接型流水线FIR设计对上述直接实现结构的FIR数字滤波器给出几种使用流水线方法实现的结构 框图,并选择其中一种流水线型FIR数字滤波器进行verilog HDL电路描述及相 应testbench,完成功能仿真及时序仿真,给出仿真波形图; 直接型二级流水线结构FIR :Yn (23:0)直接型三级流水线结构FIR :流水线寄存器流水线寄存器一、流水线设计以二级流水线为例,在乘法器与加法器中间插入一级寄存器,将电路分为两 级,这样可以增加电路的吞吐能力,并且降低了功耗。电路实现:在前面直接型结构的基础上,在乘法器模块和加法器模块之间加 一级寄存器模块。1.位寄
19、存器模块程序代码如下:module reg32(clk,reset_n,i n,o ut);input clk,reset_ n; inp ut 31:0i n; out put 31:0out;reg 31:0out;always (p osedge clk or n egedge reset_ n) beg inif(!reset_ n)out<=31'd0;elseout<=in; enden dmodule本设计例化了 5个32位寄存器,分别为r0,r1,r2,r3,r4.reg32 r0(.clk(clk),.reset_n(reset_n),.i n(mout0
20、),.out(re0), r1(.clk(clk),.reset_n(reset_n),.i n(mout1),.out(re1), r2(.clk(clk),.reset_n(reset_n),.i n(mou t2),.out(re2), r3(.clk(clk),.reset_n(reset_n),.i n(mout3),.out(re3), r4(.clk(clk),.reset n( reset n),.i n(m out4),.out(re4);其综合后的结构框图如下图所示:.3厂 r&aaiMf1 叫 infill intlUj 和IQ1 m冃 in 71i J'
21、S 131rH 二mp: I何灯inmqln<Z»B11耳用BDHB2.流水线顶层模块加入流水线后,顶层模块代码如下:module fir_to p( reset_n,clk,x_i n, y_out);input clk,reset_ n; inp ut 15:0x_i n; out put23:0y_out;wire 15:0q1,q2,q3,q4;wire 31:0mout0,mout1,mout2,mout3,mout4;wire 31:0re0,re1,re2,re3,re4;wire 34:0aout1,aout2,aout3,aout4;dff16 D1(.res
22、et_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);mult16 m0(.outcome(mout0),.a(x_i n),.b(8'd2), m1(.outcome(mout1),.a(q1),.b(8'd7),
23、 m2(.outcome(mou t2),.a(q2),.b(8'd8), m3(.outcome(mou t3),.a(q3),.b(8'd7), m4(.outcome(mou t4) ,.a(q4),.b(8'd2);reg32 r0(.clk(clk),.reset_n(reset_n),.i n(mout0),.out(re0),r1(.clk(clk),.reset_n(reset_n),.i n(mout1),.out(re1),r2(.clk(clk),.reset_n(reset_n),.i n(mou t2),.out(re2),r3(.clk(cl
24、k),.reset_n(reset_n),.i n(mout3),.out(re3),r4(.clk(clk),.reset_ n( reset_ n),.i n(m out4),.out(re4);add32 a1(.a(re0),.b(re1),.out(aout1),a2(.a(aout1),.b(re2),.out(aout2),a3(.a(aout2),.b(re3),.out(aout3),a4(.a(aout3),.b(re4),.out(aout4);assign y_out=aout434:11;en dmodule用Quartus II综合出的框图截图如下:匚-*41 &q
25、uot;Il二、波形仿真首先用Matlab产生一个周期为16点位宽为16位三角波:n=1:7;x1( n)=n-1;n=8:15;x1( n)=15-n;x1 = x1 * 100;x2 =ui nt16(x1);,'wt+');fid = fopen('E:/CX/Verilog/desig n/FIR/FIR2/tri.txt'fprin tf(fid,'%xn',x2);fclose(fid);产生的三角波如下:n=1:15;sub plot(3,1,1); stem( n,x1);sub plot(3,1,2); x1fft=fft(x1
26、);stem( n,abs(x1fft);三角波时域图4020°:口 G g 归 Q O Q 匹 如 g 蛀 0,510IS三角波频域图通过testbench模块将Matlab产生的测试数据tri.txt ,将各个模块添加到顶 层图中联合测试,最终实现所需要的功能。测试代码如下所示:'timescale 1ns/1ps'defi ne clock 50 module test;reg clk,reset_ n;reg 15:0x_i n;reg 15:0data_mem0:15; in teger i;wire 23:0y_out;always #'clock
27、 clk=clk;in itialbeginclk=0;reset_ n=1;#20 reset_n=0;#10 reset_n=1; endin itialbegi n$readmemh("tri.txt",data_mem); endalways (p osedge clk or n egedge reset_ n) beg inif(!reset_ n) beg inx_in v=15'b0;i<=0;endelse if(i<=13) beg inx_inv=data_memi;i<=i+1;endelse beg inx_inv=data
28、_memi;i<=0;endendfir_top fir(.reset_n(reset_n),.clk(clk),.x_i n(x_in ),.y_out(y_out);en dmodule产生的仿真波形如下图所示:* Li昌i兀L? 2 -黑聖锯奪陰®謀鲁她晞岸F 1 1008卡刮鱼m i M币S包删屈it杞农c吊et rt 1,1ILlO:-U_ILd;lblbUUUUMLJUJLJliJLLUHbUULLlI II UL1U.U -U .bI JJEIU UooccccoocDo-o(M)riiiDia10EtD鼠citoKnaraczaxtnxraojxisntennpL二甘_ 二二二二二:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学等比数列试题及答案
- 2025年数字出版与电子信息知识考试测试题及答案
- 拍卖基础知识试题及答案
- 西方国家的文化政策对政治的影响试题及答案
- 西方网络政治与公民参与试题及答案
- 今日头条java校招面试题及答案
- 招聘护士试题及答案
- 南瑞集团java面试题及答案
- 2025年建筑材料与结构力学考试题及答案
- 软件设计师考试2025年专业技巧试题及答案
- 2025年事业单位考试(综合管理类A类)职业能力倾向测验试题及解答参考
- 2025年中考物理总复习《压强》专项测试卷含答案
- 2025年云南昆明市禄劝国有资本投资开发集团有限公司招聘笔试参考题库附带答案详解
- 国家开放大学《宣传工作实务》专题测验1-12参考答案
- 萃智创新方法理论考试题库(含答案)
- 洁净室操作规程及管理制度
- 2024年高考真题-地理(河北卷) 含答案
- 中国高血压防治指南(2024年修订版)解读课件
- 平房区全面推进信访工作法治化测试练习试卷附答案
- 湖北省黄冈市(2024年-2025年小学三年级语文)人教版随堂测试(下学期)试卷(含答案)
- 土木工程施工设计报告
评论
0/150
提交评论