基于FPGA的FIR滤波器设计_第1页
基于FPGA的FIR滤波器设计_第2页
基于FPGA的FIR滤波器设计_第3页
基于FPGA的FIR滤波器设计_第4页
基于FPGA的FIR滤波器设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于FPGA勺FIR滤波器设计、设计目的为了帮助学生深入理解和消化基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将数字信号处理、集成电路原理与应用和FPGA系统设计与应用几门课程融合在一起开设的FPGAg合实验课程设计。本次完成的是利用FPG林完成FIR滤波器的设计、程序设计和实验调试任务。二、设计要求(1)基本要求利用所学知识,采用VHDL语言完成FIR滤波器的设计仿真。要求用VHDL编程设计底层文件,顶层文件可任意(可用原理图方式或文本方式);完成仿真文件(包括MATLAB口QUARTUSI两种仿真)并对其结果比较。具体设计指标如下:(1)采样频率0=80KHz;(2)截

2、止频率Fc=10KHz.(3)输入序列为10位(最高位为符号位);(4)窗口类型为kaiser窗,=0.5;(5)滤波器长度为16;(6)输出结果保留10位。(2)提高部分根据所学知识,设计出一个具有频率控制功能DDS要求输出频率分别为10KHz和100KHz将输出的两路数字信号进彳T叠加,并通过所设计的FIR滤波器进行滤波,将滤波输出的数字信号通过D/A转换电路输出波形,并用示波器观察输出波形,并完成测试结果分析。结构框图如图1-1所示。图2-1整体结构框图三、设计原理3.1 FIR滤波器由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。当我们处理有限的离散数据

3、时,线形系统的响应(包括对冲击的响应)也是有限的。若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。3.2 线性FIR滤波器原理FIR滤波器响应(简称FIR)系统的单位脉冲响应h(n)为有限长序列,系统函数H(z)在有限z平面上不存在极点,其运算结构中不存在反馈支路,即没有环路。如果h(n)的长度为N,则它的系统函数和差分方程一般N1H(z)=£h(n)z八有如下形式:n0N1y(n)=h(m)x(n-m)m=0根据差分方程直接画出FIR滤波器的结构,称为直接型结构。如图3-1所示:图3

4、-1FIR滤波器直接结构FIR滤波器的特点:单位脉冲响应序列为有限个;可快速实现;可得到线性相位;滤波器阶数较高。对线性时不变系统保持线性相位的条件是:单位脉冲响应为偶对称或奇对称。即:为设计线性滤波器,应保证h(n)为对称的。0n:0h(n)=-h(N-1-n)0<n<N-1若N为偶数,其线性相位FIR滤波器的对称结构流图如图3-2所示:如)图3-2若N为偶数线性相位FIR滤波器的对称结构流图图中:“+1”对应偶对称情况,“-1”对应奇对称情况。当n为奇数时,支路断开。若N为奇数,其线性相位FIR滤波器的对称结构流图如图3-3:刎图3-3N为奇数线性相位FIR滤波器的对称结构流图

5、其中y(n)和x(n)分别是输出和输入序列。有限冲激响应滤波器的一种直接型实现,可由式(2)生成,M=5的情况如图3-4(a)所示。其转置,如图3-4(b)所示,是第二个直接型结构。通常一个长度为M的有限冲激响应滤波器由M个系数描述,并且需要M个乘法器和(M-1)个双输入加法器来实现。x(n)x(n)-iI-1-1I-Lznzfzgz-+h(0)/h(1)/h(2)/h(3)/h(4)/图3-4(a)直接型一图3-4(b)直接型长度为M的线性相位有限冲激响应滤波器由对称的冲激响应h(n)=h(M-1-n)或反对称的冲激响应h(n)=-h(M-1-n)描述。利用线性相位有限冲激响应滤波器的对称(

6、或反对称)性质,可以将传输函数的直接型实现所需的乘法器总量减少一半。例如,图3-5显示了一个具有对称冲击响应的、长度为7的有限冲激响应传输函数的实现。图3-5线性相位有限冲激响应结构四、设计方案因为N=16为偶数,根据老师上课时所讲,可以按照上面第一个原理图设计滤波器,如图4-1所示。必)图4-1若N为偶数线性相位FIR滤波器的对称结构流图本设计取h(n)为偶对称的情况,则图中:应取“+1”。由上图可分析得到,要完成滤波器的设计,需要设计的底层文件包括延时单元、加法电路单元、乘以负一单元、乘法器单元及截取10位数单元。由各单元VHD闾程后,生成相应的符号文件。最后连接成顶层原理图。整个电路的原

7、理图设置方案如图4-2所示:Din9.0Dout9.0-1z-1z-1z-1-1-1-1z-1z-1z-1z-1z-1z图4-2滤波器整体设计方案原理图L-Izzz-1z-1z-1z五、设计内容及结果分析首先使用matlab计算出符合设计要求的滤波器冲激响应系数。后将整个电路规划为语言编辑和原理图编辑两个单元,其中语言编辑部分负责编辑整个滤波器电路中所需用的单元器件,包括寄存器、加法器、减法器以及乘法器几个单元器件;最后将所有的器件连接成顶层原理图。在进行编译及仿真。5.1基于matlab的FIR滤波器系数计算在matlab命令编辑窗口输入Fdatool指令,再点回车即可打开FilterDes

8、ign&AnalysisTool窗口,在该工具的帮助下,我们就可以完成f.i.r.滤波器系数的计算。Fdatool界面总共分两大部分,一部分是designfilter,在界面的下半部分,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。designfilter部分主要分为:ResponseType(响应类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的滤波器。根据本次作业要求,在该选项中选择Lowpass选项。DesignMethod(设计方法)选项,包括IIR滤波器的Bu

9、tterworth(巴特沃思)法、ChebyshevTypei(切比雪夫i型)法、ChebyshevTypeii(切比雪夫ii型)法、Elliptic(椭圆滤波器)法等和Window(窗函数)法等多种方法。结合本次课设要求,选if¥FIR滤波器的窗函数法进行设计。选定窗函数法后,会在右侧出现Options区域,进行窗函数法相关参量的设置,根据作业要求选择Kaiser窗并设置Beta为:0.5。FilterOrder(滤波器阶数)选项,定义滤波器的阶数,包括Specifyorder(指定阶数)和Minimumorder(最小阶数)。在Specifyorder中填入所要设计的滤波器的阶数

10、(n阶滤波器,specifyorder=n-1),如果选择Minimumorder则matlab根据所选择的滤波器类型自动使用最小阶数。本次作业要求设计16阶滤波器,所以选定Specifyorder并填入15。FrenquencySpecifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由ResponseType选项和DesignMetho选项决定。我们要求的Lowpass(低通)滤波器只需要定义Fs=80KH乙Fc=10KHz.本次课设中的参数全部设定后的结果如图5-1所示。FilterPcsiieit£AnalysisTool-fi

11、mtitlcdrfda*国同区Fil*EditAnAlysiET空的1.工Vl4v百鼠加Halp4Q目底为向如反亡I艮I国田碧电田广展阑。国回中CLtrertFillerhiomiBtioniFlter等led配的onsSlructi/e.IDired-FartnFfi力refer:50写WuYmSeuree:DefilriedStoreFiter.旧加ITFc_ResjponseType®LawpflKOH步.整Q:'6enc|WI5-SQ-EandstapFilerOtder.缶Specifyorcfer:,写。Minrnumorder_DesnMeinDd.DiH

12、71;rXiar|gr-Qirijais恒I?用万&河:JRBUtemEh®'FIRXWicfciwBdaFrerencySpecificationsh网ilu曲SpecHRticmUnis::kHiTfte留时abortsteul口H1rpqticnpc5¥仅旧/$。日(haifHitpassbars?ganlvyndow:MewReady图5-1参数全部设定后图参数设定完毕,单击工具窗口下方的DesignFilter按钮,就开始进行相关参数计算。在计算结果中可以看到该滤波器的一些相关曲线,如幅频响应(如图5-2)、相频响应(如图5-3)、冲激响应(如图5

13、-4)等。图形如下:FlItbEtcwign-ftIxiMlyaiaiTdl-IuniilIci.fdlfe!JtaliJ4itilyiiETiukliIlw口H&r口好口里O国£>山父D屈E瓦IES把看巴R/OrasffiFitfOrdw.HinfiiraFtlai.口nmCvUM-5c.图5-2幅频响应曲线_mfinoKHSpgiwm-Hw事t述所IIRilfJWKEEItiWlHl1*1IMflFepfldbarxlXU->flHeiVadipiiAn.41j0irTo*l-untitled.fd&»1Eil»tEiicahiL的

14、i靠上口白口百正田月父UE田国目总专印广匚"国目lCimriFflrfn'nrni-AiStfWrirfOrSec15SwmC'wirefi.RHjwnse"弄e-LCwpHlOMtfWWODw<*»Ba0Bv第卿OQ1*g*i.CydorH.3F«fCrdfrn5U+lF值闺*>Ssec-gbog图5-3相频响应曲线图5-4冲激响应计算的结果可通过File下拉菜单中的Export命令取出,点击Export打开Export对话框(如图5-5),点击Export按钮可将滤波器系数数据存放到当前工作空间,并以Nu*名。图5-5冲激

15、系数输出对话框保存并关闭滤波器设计分析工具回到matlab主窗口,在命令编辑区输入Num可得到工具的计算结果(如图5-6)。»NwnColumns1through8-0.0153-0.D432-0.0517-0.02650.03430.116S0.19560.2436Columns9throueh16Q.24300BIS560.11630.Q343-Q.0统5-Q.Q517-0JQL53图5-6输出在matlab的冲激系数对FIR滤波器的系数进行调整,做整数化操作。可得到滤波器整数化的系数为卜31-88-106-547023940149949940123970-54-106-88-3

16、1,如图5-7所示:>>rowid(Him*(211)ans=Colum31throughM-31-88-106-54702394D149949940123970-54-106Colum315through16-88-31图5-7整数化后的冲激系数5.2单元器件的编辑及仿真5.2.1、 寄存器模块在本次课设中延迟单元可用寄存器来替代,寄存器用于寄存一组二值代码,只要求它们具有置1、置0的功能即可。在本设计中使用带异步复位rst端白D触发器,当rst=1时,输出信号q=0,当rst=0且上升沿脉冲到达时q=d,即延迟了一个在周期。其程序代码如下:LIBRARYieee;USEieee

17、.std_logic_1164.all;ENTITYjicunqiISPORT(rst,clk:INSTD_LOGIC;d:INSTD_LOGIC_VECTOR(9DOWNTO0);q:OUTSTD_LOGIC_VECTOR(9DOWNTO0);ENDjicunqi;ARCHITECTUREdff16OFjicunqiISPROCESS(rst,clk)BEGINIF(rst='1')THENq<=(OTHERS=>'0');ELSIF(clk'EVENTANDclk='1')THENq<=d;ENDIF;ENDPROC

18、ESS;ENDdff16;BEGIN程序编译后就可进行仿真,仿真结果如图5-8所示:|4MattaTmeBarOpe<|*|pbrftar口a3不Iritetvafc©匕二;r:SlatEndA-t如q340Jj)n、曲1,喀-!-i-1QQ串ns120.0ns1“pnx图5-8寄存器模块仿真结果由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-9所示图5-9寄存器元件图5.2.2、 加法器模块即实现两个有符号数的相加运算。即将输入的两数,在时钟脉冲到来时相加运算,输出结果。在本设计中共有8个:两个10位有符号数相加产生一个11位有符号数的加

19、法器、一个18位和19位有符号数相加产生20位有符号数的加法器、一个两个20位有符号数相加产生一个21位有符号数的加法器、一个两个19位有符号数相加产生一个20位有符号位数的加法器、一个20位和21位有符号数相加产生22位有符号数的加法器,以及一个20位和22位有符号数相加产生23位有符号数的加法器电路。具体如下:两个10位有符号数相加产生一个由分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYadd101011ISPORT(a,b:INSIGNED(9DOWNTO0);clk:

20、INSTD_LOGIC;s:OUTSIGNED(10DOWNTO0);ENDadd101011;ARCHITECTUREsum101011OFadd10101111位有符号数的加法器设计:BEGINPROCESS(clk)BEGINIF(clk'EVENTANDclk='1')THENs<=(a(9)&a)+(b(9)&b);ENDIF;ENDPROCESS;ENDsum101011;IS程序编译后就可进行仿真,仿真结果如图5-10所示:Opt出尿epll:47.6ntIrtewMRMdKfierTmeBaippiSQ.0htWqnx&C.

21、0A300ntIDOpfiM120pmpnixI&0,01B06nVLrL_rL_r_L_n_n_n_n_rLrL_rL_rLT_L_rLrLTTT_L_ri_n_cztlqe?zlEZtZl!L图5-10两个10位有符号数相加结果波形图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-11所示rjaddlOIOli图5-11两个10位有符号数相加元件图18位和19位有符号数相加产生20位有符号数的加法器设计:由分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_ari

22、th.all;ENTITYadd181920ISPORT(a:INSIGNED(17DOWNTO0);b:INSIGNED(18DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(19DOWNTO0);ENDadd181920;ARCHITECTUREsum7023918OFadd181920ISBEGINGM4sfterTmeB*s<=(a(17)&a(17)&a)+(b(18)&b);ENDIF;PROCESS(clk)ENDPROCESS;BEZeVENTANDclk='1')THEN52391比程序编译后就可进行仿真,

23、仿真结果如图5-12所示:Opsm:Ncfvdt金彳!:SWtEnd|pM10,9g驶Q30flai4口qmT?»609囊工7口9Q»90m100pni11。0»9p-iII_II_II_II_II_I_II_II_II_II_II_IIIges15B027,-3QMIfi药商"j(如弼个-非工-开博帕:TFieojf国而KRT1团472工宝虹曲"JPG有瓯工一访的西厂丽郁-X卸能工gun3T土-grn耳吃而第)£”1:函222g22里的j;,:*萨晒_*福g5*_TH6通K礴i渤E碑垢中皿诉/福乐乐而斗牛LS86T等陋图5-1218

24、位和19位有符号数相加结果波形图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-13所示iah,riiraBajribe*amr:aMnisadd181920?a(l7.Os(19,。1叩B5:一elkIinst图5-1318位和19位有符号数相加元件图两个20位有符号数相加产生一个由分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYadd202021ISPORT(a:INSIGNED(19DOWNTO0);b:INSIGNED(19DOWN

25、TO0);clk:INSTD_LOGIC;s:OUTSIGNED(20DOWNTO0);ENDadd202021;ARCHITECTUREsum40149919OF21位有符号数的加法器设计:add202021ISBEGINPROCESS(clk)BEGINIF(clk'EVENTANDclk='1')THENs<=(a(19)&a)+(b(19)&b);ENDIF;ENDPROCESS;ENDsum40149919;程序编译后就可进行仿真,仿真结果如图5-14所示:4FE5腥200fit400hs46扁ter得ILJ-LJL:手5瓦正X-国8而才

26、潮M-S3TS尸额匚寻呼1-牖0妁X-SfeG2fl而而X*才躬T31BtHHHS潮尹诿西¥-11溺1Y姐划&M36加40工均融XTIL,先造画用¥-£6通力”现由户更至义工4邦粕4片且nC整啊X飞航陛天:*64X;可期.工q相.X奖重亮.工辱.W-X.36.1史3,工1j至胆工晅咽.丫宅昼理工工军望匚犬立灵;图5-14两个20位有符号数相加结果波形图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-15所示图5-15两个20位有符号数相加元件图两个19位有符号数相加产生一个20位有符号位数的加法器设计:由分析可写出如下

27、程序:LIBRARYieee;ISUSEieee.std_logic_1164.all;BEGINUSEieee.std_logic_arith.all;PROCESS(clk)ENTITYadd191920ISBEGINPORT(a:INSIGNED(18DOWNTO0);IF(clk'EVENTANDclk='1')THENb:INSIGNED(18DOWNTO0);s<=(a(18)&a)+(b(18)&b);clk:INSTD_LOGIC;s:OUTSIGNED(19DOWNTO0);ENDIF;ENDPROCESS;ENDadd19192

28、0;ENDsum181819;ARCHITECTUREsum181819OFadd191920程序编译后就可进行仿真,仿真结果如图5-16所示:二_PflitVPlhici:JnT加F*elk:457EftfiSia-ir1pl叫3血9Q300I-50.0u170.EB3B0.0p90B9100Q9Jpl_I电电*可SIn3*1MTT;二ssa工吼整的工-TQ64QJgra»X-LL*M3:、2MgsXm分3询仃K-LHT71QJTMS6&燧T::1SB5g7、即XLtlJSBXLTXaifl乂L4HHx丫7或通)LK57E(5x喈再出6注丁:1一*下购E*1tF(-|7LT

29、52.tZzLlOC国b倒5由上图可知,图5-16两个19位有符号数相加结果波形图与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-17所示HAI>hiI>iMjaa»1W-8.1>ia>11>>>ihi:addi9iQ20-Oj叩B31clk:mst鼠igo|图5-17两个19位有符号数相加元件图20位和21位有符号数相加产生22位有符号数的加法由分析可写出如下程序:LIBRARYieee;ISUSEieee.std_logic_1164.all;BEGINUSEieee.std_logic_arith.all;PR

30、OCESS(clk)ENTITYadd202122ISBEGINPORT(a:INSIGNED(19DOWNTO0);b:INSIGNED(20DOWNTO0);IF(clk'EVENTANDclk='1')THENs<=(a(19)&a(19)&a)+(b(20)&b);clk:INSTD_LOGIC;ENDIF;s:OUTSIGNED(21DOWNTO0);ENDPROCESS;ENDadd202122;ENDsum192021;ARCHITECTUREsum192021OFadd202122程序编译后就可进行仿真,仿真结果如图5-18

31、所示:小|Pairtsr.MasterTmeBar.M互1PE|f11|I1|11iI111I1:MS,J-巾ma工MMBS工TM34XXKt?循工T4K28K工:92SM5X-962SWXSSW841种1K6XCT8犹白X-M13TO1-8MT播XT0M13X田雌:0SM961)J-催侬帼E3岫分腕处码郑,:二-12630怖;-13燮侬)扰】09B里图5-1820位和21位有符号数相加结果波形图冽祐mStart;244E幅SnlcfYnl:n.x40ni50,DiuSO.Qm70.Qnx60:Qns由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-19所示

32、'add'202i22"0s2V0-b200)clkinst图5-1920位和21位有符号数相加元件图(6)20位和22位有符号数相加产生23位有符号数的加法器电路设计(最后一级带舍位):在此加法器电路中在引入低位舍去功能只保留最终10位输出,最终保留10IS位输出采用了直接取输出23位数的高十位的方法,因此在输出中近似等于除掉了2A13即8192以后的结果。为了比较,特又引出了一个23位全输出引脚(quan)其程序如下:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYa

33、dd202223ISPORT(a:INSIGNED(19DOWNTO0);BEGINPROCESS(clk)VARIABLEc:SIGNED(22DOWNTO0);BEGINb:INSIGNED(21DOWNTO0);IF(clk'EVENTANDclk="1")THENquan:OUTSIGNED(22DOWNTOc:=(a(19)&a(19)&a(19)&a)+(b(21)&b);0);ENDIF;clk:INSTD_LOGIC;s:OUTSIGNED(9DOWNTO0);ENDadd202223;ARCHITECTUREsum1

34、92110OFadd202223s<=c(22DOWNTO13);quan<=c;ENDPROCESS;ENDsum192110;程序编译后就可进行仿真,仿真结果如图5-20所示口口二Pahter-1937ri:iMmalSlat.E>nd.3g109r工加,Qi30,0ns40、Qn鼻50fnsWymTQp口工pc:蒸。匕5-1打西f-丈一无弼由广停而*3)£48的彳一*-X-咱的09X"携烈丁【-MfTTMJr工工-】“频工UftEi飞*5海1X1百裳)叫34WT50一“父.打渤X71万38X疵同工工打WT?-XUlTOST演m币x不x币x刁x丽xX欣

35、麻图5-2020位和22位有符号数相加结果波形图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图图5-2120位和22位有符号数相加元件图5.2.3、减法器模块:它实现零值减去两个有符号数的减法运算。即用零值减去输入的两数,在时钟脉冲到来时做减法运算,输出结果。注意:-31和-88的乘结果都只包含了乘系数31和88的数值,并没有将两个负号代入,所以两乘法器后面的加法器运算改为减法器模块,采用0-31*累加结果-88*累加结果的方法,实现(-31)*累加结果+(-88)*累加结果的计算-106和-54后面的加法器采用同样的方式处理。-31和-88的减法器设计:由

36、分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYjian3188isPORT(clk:inSTD_LOGIC;Din1:insigned(15downto0);Din2:insigned(17downto0);Dout:outsigned(18downto0);ENDjian3188;ARCHITECTUREsub318817ofjian3188ISSIGNALs1:signed(17downto0):=(Din1(15)&Din1(15)&Din1);SIGN

37、ALs2:signed(18downto0):=(OTHERS=>'0');BEGINPROCESS(Din1,Din2,clk)BEGINIFclk'eventandclk='1'THENDout<=s2-Din2-s1;ENDIF;ENDPROCESS;ENDsub318817;程序编译后就可进行仿真,仿真结果如图5-22所示:elkiiDivl田讥/田Opt2jjJPotrtlK62.1nt626mStrtEnd*ps20.pns4。.gns60.0ns00.0m160.pu120.pu»flJI,LLJJ_jLrLrL_n一

38、触so2的弗rJ审q厂前3060M川制总工aoe&iT丽/?一在小*”如?堂【讴理)-il珈Yf描if二必"Y1函7if亦85工品蟠、5W1户1语时3扰tm节6mj,图5-2231和-88的减法器结果仿真图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调图5-23-31和-88的减法器元件图-106和-54的减法器的设计:由分析可写出如下程序:LIBRARYieee;ENDjian10654;USEieee.std_logic_1164.all;ARCHITECTUREsub1065417ofjian10654ISUSEieee.std_logic_arit

39、h.all;SIGNALs1:signed(17downto0):=(Din2(16)&Din2);ENTITYjian10654isSIGNALs2:signed(18downto0):=(OTHERS=>'0');PORT(clk:inSTD_LOGIC;BEGINDin1:insigned(17downto0);Din2:insigned(16downto0);PROCESS(Din1,Din2,clk)BEGINDout:outsigned(18downto0);IFclk'eventandclk='1'THEN用,其生成图如图5-

40、23所示;Dout<=s2-Din1-s1;ENDIF;ENDPROCESS;ENDsub1065417;4A英乳*Porter25.13h&Interval25.13nsSlaitEnd:JfUFiO-clk0Dini回1D<1Masteilime日幽>S)phio.a也.qhmggw.cso.pn=m.on=to.cao.ffw,9100.pn=nopn=J1I_1_-',I-II-II-:ESIM叩971宣厂1139s厂丽两"X1口&i倒工431门XI凝孺X90903咨246X词4货Xa334冠丽1:仃yITS6T汇飞X2864厂K-&

41、#163;3S54->T1&99戈”549£即3/654加工20s)TTTi藏湎5">eaoge水ttbs-7&<35-196521y-1Q517ft-Q6E13程序编译后就可进行仿真,仿真结果如图5-24所示:图5-24-106和-54的减法器结果仿真图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-25所示;i暄n10654Iii一dk0014180T一,Dio117.0|-4Din2l60|IirstIsniiiTi'irarMin-iriamaiEniriKMiniilai-MrrMia

42、riiHrKrwHim:HMiia图5-25-106和-54的减法器元件图5.24乘法器模块:实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上开沿时,将两数输入,运算并输出结果。从资源和速度方面考虑,常系数乘法运算可用移位相加来实现。将常系数分解成几个2的幕的和形式,然后再分别进行运算。滤波器系数分别为-31、-88、-106、-54、70、239、401、499、499、401、239、70、-54、-106、-88、-31。算法:其中带负号数先乘去负号的整数部分,在后面的求和中做减法运算。编码方式如下:31被编码为2A5-2A0、88被编码为2A6+2A4+2A3、106被

43、编码为2A6+2A5+2A3+2A1、54被编码为2A6-2A3-2A1、70被编码为2A6+2A2+2A1、239被编码为2A8-2A4-2A0、401被编码为2A9-2A7+2A4+2A0、499被编码为2A9-2A3-2A2-2A0。具体如下:乘31电路设计:0);PORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(15DOWNTO由分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYmult31ISELSE

44、ARCHITECTUREmul31OFmult31ISSIGNALs1:SIGNED(15DOWNTO0);SIGNALs2:SIGNED(10DOWNTO0);SIGNALs3:SIGNED(15DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1<=Din&"00000”;s2<=Din;IF(Din(10)='0')THENs3<=('0'&s1(14downto0)-("00000"&s2(10DOWNTO0);s3<=('1

45、9;&s1(14downto0)-("11111"&s2(10DOWNTO0);ENDIF;ENDPROCESS;A2:PROCESS(clk,s3)BEGINIFclk'EVENTANDclk='1'THENDout<=s3;ENDIF;ENDPROCESS;ENDmul31;程序编译后就可进行仿真,仿真结果如图5-26所示:13nsIntervd:4.13rwS山it4MailerTintBar,JPoriei:图5-26乘31电路结果仿真图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5

46、-27所示;SIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(14DOWNTO0);SIGNALs3:SIGNED(13DOWNTO0);SIGNALs4:SIGNED(17DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1<=Din&"000000"s2<=Din&"0000";mult31EFFelkDautl501Din1O.O;inst1:、,|iiirqnirq,.,图5-27乘31电路元件图乘88电路设计:由分析可写出如下程序:LIBRAR

47、Yieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYmult88ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(17DOWNTO0);ENDmult88;ARCHITECTUREmult88OFmult88ISENDPROCESS;A2:PROCESS(clk,s4)BEGINIFclk'EVENTANDclk='1'THENDout<=s4;ENDIF;ENDPROCESS;ENDmult88;s3<

48、=Din&"000"IF(Din(10)="0")THENs4<=('0'&s1(16downto0)+("000"&s2(14DOWNTO0)+("0000"&s3(13DOWNTO0);ELSEs4<=('1'&s1(16downto0)+("111"&s2(14DOWNTO0)+("1111"&s3(13DOWNTO0);ENDIF;程序编译后就可进行仿真,仿真结果如图5

49、-28所示:TimeBai:Ops4jjpontef:5A.71n*Interval:58.71ns5WitEnd:,p工20.0ns40.口tl'eM.0的.0ns100.Dns12D_0ns0tl'e0:nxJIIIM-I)P-SLrTTTTTTTTTTl_Ti_TTTT_rT_rT_rT_rT_rL_rL_rT_rTF"X-2ST破口Fx"碓丫干"3395r"XaT户带MT隹广而")(-1叩B"花"X7伯尤收4旧X7的殒谈5耻3施6X3击瑜丁丁咖欧二丽"历陵:瘀翁»泛中税4密H存环&

50、gt;;-15砌碱彳冠刀口贤方0时腰图5-28乘88电路结果仿真图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-29所示;|.JJIII1.J.1IlliI,1IIIILIIIIIIIIIIIII.IIIII.I.BIIIII.1.IIIIIl,l.BIIII1,1.1,IIII,I.LIII1.1.Lemult88elkDout170-L,Din100inst图5-29乘88电路元件图乘106电路设计:由分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.al

51、l;ENTITYmult106ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(17DOWNTO0);ENDmult106;ARCHITECTUREmult106OFmult106ISSIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(15DOWNTO0);SIGNALs3:SIGNED(13DOWNTO0);SIGNALs4:SIGNED(11DOWNTO0)SIGNALs5:SIGNED(17DOWNTO0)BEGINA1:PROCESS(Din,s1,s2,s3,s4)BEGINs

52、1<=Din&"000000"s2<=Din&"00000"s3<=Din&"000"s4<=Din&'0'IF(Din(10)="0")THENs5<=('0'&s1(16downto0)+("00"&s2(15DOWNTO0)+("0000"&s3(13DOWNTO0)+("000000"&s4(11DOWNTO0);ELSEA

53、2:PROCESS(clk,s5)BEGINIFclk'EVENTANDclk='1'THENDout<=s5;ENDIF;ENDPROCESS;ENDmult106;5-30所示:s5<=('1'&s1(16downto0)+("11"&s2(15DOWNTO0)+("1111"&s3(13DOWNTO0)+("111111"&s4(11DOWNTO0);ENDIF;ENDPROCESS;程序编译后就可进行仿真,仿真结果如图由上图可知,与预期相符,其

54、生成图如图5-31所示;图5-30乘106电路结果仿真图即设计正确,再将其生成为一个元件以便后来调用,jiu通,hirauI1MBiaiiiHiHiiiimiiiiiimhhiii:jmuft106elkDoutT7.jDin10Q|乘106电路元件图图5-31乘54电路设计:由分析可写出如下程序:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYmult54ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(16DOWNTO0

55、);ENDmult54;ARCHITECTUREmult54OFmult54ISSIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(13DOWNTO0);SIGNALs3:SIGNED(11DOWNTO0);SIGNALs4:SIGNED(16DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1<=Din&"000000"s2<=Din&"000"s3<=Din&'0'IF(Din(10)='0')THENs4

56、<=('0'&s1(15downto0)-("00"&s2(13DOWNTO0)-("0000"&s3(11DOWNTO0);ELSEs4<=('1'&s1(15downto0)-("11"&s2(13DOWNTO0)-("1111"&s3(11DOWNTO0);ENDIF;ENDPROCESS;A2:PROCESS(clk,s4)BEGINIFclk'EVENTANDclk="1"THENEND

57、IF;ENDPROCESS;Dout<=s4;ENDmult54;程序编译后就可进行仿真,仿真结果如图5-32所示:nIhnDoutL.MasgTEcB却A英Poinlei:20.0n=15.27n?Inteival|15.27mStart:End40.0ns&0.0nsi100.0ns120.pD5j=LJ=LJ=LZr一加8刎工7韭/"四国XT51a4K55口如门书552Y35SlC)(号5图5-32乘54电路结果仿真图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图5-33所示;>mnbieiuumiiaBi>iuiBiiiiibmiiiaiamblimuN54=1i-dkDoutfiaD)-i1。"0IinstLl:ItaMUIMaiIVHIJMUILBItlCMMlIIUMILUMIJIMItll

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论