2022年数字信号处理FPGA实现.docx

上传人:H****o 文档编号:56606220 上传时间:2022-11-02 格式:DOCX 页数:23 大小:762.54KB
返回 下载 相关 举报
2022年数字信号处理FPGA实现.docx_第1页
第1页 / 共23页
2022年数字信号处理FPGA实现.docx_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《2022年数字信号处理FPGA实现.docx》由会员分享,可在线阅读,更多相关《2022年数字信号处理FPGA实现.docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用数字信号处理的学院:班级:小组成员:第一题:FPGA实现要求:用无符号DA 的 LUT为: b5E2RGbCAP LUT查找表:2 / 12 名师归纳总结 - - - - - - -第 2 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用就结果应为:4、代码清单:DAfilterFIR 滤波器)、 LUT查找表)、 DAtesttestbench 文件)1)DAfilter;p1EanqFDPw table_out : OUT INTEGER RANGE 0 TO 6 END

2、 COMPONENT;END da_package;LIBRARY work;USE work.da_package.ALL; -使用包LIBRARY ieee;USE ieee.std_logic_1164.ALLUSE ieee.std_logic_arith.ALLENTITY DAfilter IS PORT clk : IN STD_LOGIC x_in0, x_in1, x_in2 :IN STD_LOGIC_VECTOR2 DOWNTO 0; DXDiTa9E3d y : OUT INTEGER RANGE 0 TO 63END DAfilter;3 / 12 名师归纳总结 -

3、- - - - - -第 3 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用ARCHITECTURE fpga OF DAfilter IS TYPE STATE_TYPE IS s0, s1 SIGNAL state : STATE_TYPE SIGNAL x0, x1, x2, table_in : STD_LOGIC_VECTOR2 DOWNTO 0;RTCrpUDGiT SIGNAL table_out : INTEGER RANGE 0 TO 7 BEGIN table_in0 ;table_in1 ;table_in2 ; PROCES

4、S VARIABLE p : INTEGER RANGE 0 TO 63;- temp. register5PCzVD7HxA VARIABLE count : INTEGER RANGE 0 TO 3; - counts shifts jLBHrnAILg BEGIN WAIT UNTIL clk = 1; CASE state IS WHEN s0 = -初始化状态 state = s1;count := 0;p := 0;x0 = x_in0;x1 = x_in1;x2 IF count = 3 THEN -count=3 终止滤波 y = p;state *4/2/2+x1*4/2+x

5、2*4 ;xHAQX74J0X x00 ; -向右移位 x01 ;x10 ;x11 ;x20 ;x21 ;count := count + 1;state table_in, table_out = table_out;LDAYtRyKfE 4 / 12 名师归纳总结 - - - - - - -第 4 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用END fpga;2)LUT;Zzz6ZB2Ltk table_out : OUT INTEGER RANGE 0 TO 6 END LUT;ARCHITECTURE LEs OF LUT IS BEGI

6、N - This is the DA CASE table for - the 3 coefficients: 2, 3, 1 - automatically generated with dagen.exe - DO NOT EDIT. dvzfvkwMI1 PROCESS table_in BEGIN CASE table_in IS WHEN 000 = table_out table_out table_out table_out table_out table_out table_out table_out table_out = 0 END CASE; END PROCESS EN

7、D LEs;3)DAtest SIGNAL x_in1 : STD_LOGIC_VECTOR2 DOWNTO 0 SIGNAL x_in2 : STD_LOGIC_VECTOR2 DOWNTO 0 SIGNAL y : INTEGER RANGE 0 TO 635 / 12 名师归纳总结 - - - - - - -第 5 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用COMPONENT DAfilter PORT clk : IN STD_LOGIC x_in0 : IN STD_LOGIC_VECTOR2 DOWNTO 0 x_in1 : IN

8、STD_LOGIC_VECTOR2 DOWNTO 0 x_in2 : IN STD_LOGIC_VECTOR2 DOWNTO 0 y : OUT INTEGER RANGE 0 TO 63 ;END COMPONENT;BEGIN i1 :DAfilter PORT MAP clk = clk, x_in0 = x_in0, x_in1 = x_in1, x_in2 = x_in2, y = y ;init : PROCESS - variable declarations BEGIN CLOCK_LOOP : LOOP -创建一个时钟,周期为 100ns clk = transport 0;

9、 WAIT FOR 10 ns WAIT FOR 40 ns clk - variable declarations BEGIN EmxvxOtOco x_in0 =001; - code executes for every event on sensitivity list x_in1 =011;-赋初值 x_in2 SixE2yXPq5 其中, 3 个系数 ak=480,-302,31;3 个系数的 CSD码如下:从表中可以留意到,结构显现了4 次;假如构造一个暂时变量 hn=2xn-xn-1就可以用 yn=256hn-16hn-32hn-1+hn-1 3.20 运算滤波器的输出;a).

10、代入 hn=2xn-xn-1验证 3.20);b).得到 3.19)的直接 CSD实现和子表达式共享的实现分别 需要多少个加法器?c1).用 QuartusII 实现 8 位输入的子表达式共享滤波器;c2).仿真滤波器的脉冲响应;c3).确定所用资源 LE、乘法器和 Performance;解:xn +-256-64+16+2xn-1+32-1xn-2 7 / 12 名师归纳总结 - - - - - - -第 7 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用 =2562xn-xn-1+-1322xn-1-xn-2+ -1162xn-xn-1+ 2

11、xn-1-xn-26ewMyirQFL =256hn-16hn-32hn-1+hn-1 即可验证 3.20 式);xn+-256-64+16+2xn-1+32-1xn-2 kavU42VRUs 由表达式可知,需要 7 个加法器;子表达式共享yn=256hn-16hn-32hn-1+hn-1 只要 4 个加法器;c1)利用 CSD编码将系数变为 2 的倍数,即可将乘法器换成移位寄存器,从 而大大削减程序的运算时间;结构如图:提出子表达式,进一步削减了加法器的个数;子表达式共享滤波器的结构如图:代码清单:CSD代码、 CSDtestbench代码1、CSD代码 y_out : OUT STD_LO

12、GIC_VECTOR17 DOWNTO 0 END CSD;ARCHITECTURE share OF CSD IS SIGNAL xtemp1,xtemp2: INTEGER RANGE -128 TO 127:=0 y6v3ALoS89 SIGNAL htemp,htemp1,ytemp:INTEGER RANGE -131072 TO 131071:=0; M2ub6vSTnP BEGIN PROCESSclk,en BEGIN IFen=0THEN IFclkEVENT AND clk=1THEN xtemp1; -把 VECTOR类型装换 INTEGER 0YujCfmUCw xte

13、mp2 htemp htemp1 ytemp=256*htemp-16*htemp-32*htemp1+htemp1;y_out; -把 INTEGER类型装换回 VECTOR eUts8ZQVRd END IF; END IF;END PROCESS END share;2、CSDtestbench代码LIBRARY ieee;USE ieee.std_logic_1164.all ENTITY CSD_vhd_tst IS END CSD_vhd_tst;ARCHITECTURE CSD_arch OF CSD_vhd_tst IS - constants - signals SIGNAL

14、 clk : STD_LOGIC SIGNAL en : STD_LOGIC SIGNAL x_in : STD_LOGIC_VECTOR7 DOWNTO 0 SIGNAL y_out : STD_LOGIC_VECTOR17 DOWNTO 0COMPONENT CSD PORT clk : IN STD_LOGIC en : IN STD_LOGIC9 / 12 名师归纳总结 - - - - - - -第 9 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用x_in : IN STD_LOGIC_VECTOR7 DOWNTO 0 y_out : O

15、UT STD_LOGIC_VECTOR17 DOWNTO 0 ;END COMPONENT;BEGIN i1 : CSD PORT MAP - list connections between master ports and signals sQsAEJkW5T clk = clk, en = en, x_in = x_in, y_out = y_out ;init : PROCESS - variable declarations BEGIN CLOCK_LOOP : LOOP -创建一个时钟,周期为 100ns clk = transport 0; WAIT FOR 10 ns WAIT

16、 FOR 40 ns clk - variable declarations BEGIN en = transport 1; - code executes for every event on sensitivity list TIrRGchYzg WAIT FOR 10 ns; en = transport 0; -开启使能端 x_in =01010000; -x0)=80; WAIT FOR 100 ns x_in =00011110; -x1)=30; WAIT FOR 100 ns x_in =01111000; -x2)=120; WAIT FOR 100 ns WAIT;10 /

17、 12 名师归纳总结 - - - - - - -第 10 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用END PROCESS always END CSD_arch;C+80*31=51020 输出结果正确 结果 51020 c3)确定所用资源 LE、乘法器和 M4K)和 Registered Performance 直接可以在表中看出所用资源情形:11 / 12 名师归纳总结 - - - - - - -第 11 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用申明:全部资料为本人收集整理,仅限个人学习使用,勿做商业用途;12 / 12 名师归纳总结 - - - - - - -第 12 页,共 12 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁