基于fpga的多轴数字信号处理技术_第1页
基于fpga的多轴数字信号处理技术_第2页
基于fpga的多轴数字信号处理技术_第3页
全文预览已结束

付费下载

下载本文档

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

文档简介

基于fpga的多轴数字信号处理技术

目前,f已成为各种数字处理器(pd)应用的强大解决方案。这种分布式解决方案可以更好地适应快速增长的标准、协议和性能的需求。并且FPGA相对于高端DSP处理器,具有集成优势和更低的系统成本。更为重要的是利用FPGA设计的浮点数乘法器、除法器以及加/减法器等模块具有很好的移植性,可以根据需要嵌入到不同的设计中,并且根据系统的要求自行定义内部运算的浮点数格式以达到运算精度与资源占用之间的平衡。1小额或半数阶码的产生根据IEEE标准,单精浮点数的格式如图1所示。图中“1”、“8”、“23”分别表示该部分所占位数。通常表示如下F=(−1)S×M×RE.F=(-1)S×Μ×RE.其中,S表示符号,‘0’表示正数,‘1’表示负数;M是尾数,E是阶码。R称作“阶的基数”,等于2。通常阶码E表示范围为0~255,这里将其减去偏移量2N-1使其表示范围为-128~127,其中为阶码长度。尾数M表示整数部分为‘1’的小数二进制数,即1.XXX…X。而在浮点数标准格式中,整数部分的‘1’是被省去的,也就是说F=(−1)S×1M′×RE−2N−1.F=(-1)S×1Μ′×RE-2Ν-1.故数A除以数B可表示为FA÷FB=[(−1)SA×1.M′A×REA−2N−1]÷[(−1)SB×1.M′B×REB−2N−1]=(−1)SA−SB×(1.M′A÷1.M′B)×R(EA−EB+2N−1)−2N−1.(1)FA÷FB=[(-1)SA×1.ΜA´×REA-2Ν-1]÷[(-1)SB×1.ΜB´×REB-2Ν-1]=(-1)SA-SB×(1.ΜA´÷1.ΜB´)×R(EA-EB+2Ν-1)-2Ν-1.(1)2浮点数除法器实现由式(1)可以看出,除法器运算可以分为三个部分,即阶码运算,尾数运算以及符号运算。2.1运算模块及余数循环位移反馈尾数部分除法运算需要将数据规格化后的尾数补1并相除。在QuartusII中自带有的除法运算的兆模块lpm_division。lpm_div_24是在QuartusII中生成的25位的除法器。然而,该除法运算模块是将输入数据相除并把结果以商与余数的形式输出,而在浮点数位数除法运算中需要得到整数位为1位,小数为23位的输出结果。根据浮点数规格化形式以及二进制除法运算原理,发现可以将余数循环移位反馈,并把每次余数循环运算所得到的商截位重组便可得到所需的结果。浮点数除法器尾数运算部分结构图如2所示。数据A的尾数作为被除数输入给storage1模块,storage1模块通过控制信号将被除数输入给除法模块,而除数B的尾数则直接输入给除法模块。将运算结果中的商截位并按位存储至storage模块中,同时将余数反馈到storage1模块,在storage1模块中进行移位并再次传递至除法模块。如此循环运算并得到最终结果。2.2时钟控制状态转移在尾数部分除法运算模块中由于需要进行循环运算,因此设计的关键是时钟控制模块。时钟控制模块采用状态机来生成控制时钟。状态机是实现高效率高可靠逻辑控制的重要途径,其工作方式是根据控制信号按照预先设定的状态进行顺序运行的,它实际上是纯硬件数字系统中的顺序控制电路。状态转移图,如图3所示。由图中可知,根据控制需要设计了九个状态:St0到St8。Start作为状态机启动触发信号上升沿有效,每个状态到达时分别输出控制信号clr、first_d、clock_s和sig_end信号。另外为了简化状态机,减少控制状态,这里采用了计数方法控制状态循环次数,即输出的控制信号状态相同则作为一个状态,利用计数完成状态跳转。图4是时钟控制模块仿真波形图,clock_main为基准脉冲信号,en、start为输入控制信号,共同控制有效脉冲信号的输出。由波形图可以看出,在一个周期内完整的产生了24个clk_s信号,并且在周期的开始和结束时输出了接口控制信号clr、first_d和sig_end信号。将时序控制模块与除法运算模块、storage1模块以及storage模块集合起来变得到尾数部分除法运算模块,如图5所示。2.3尾数部分除法运算由式2可知,根据规格化要求,阶码经减法器lmp_sub_8相减后必须加偏移量“01111111”。而我们在实现时利用改变偏移量常数,同时配合加法器进位位的运用完成尾数部分除法运算输出结果规格的化判断与实现。如果输出的商首位为‘1’则通过向加法器lmp_add_c输出进位位cin实现阶码加‘1’;如果首位为‘0’则阶码不变,尾数左移一位。符号位进行异或运算后,DAT_COM按照浮点数格式组合并输出32位除法运算结果DATA_out。浮点数除法器结构图。2.4改进的除法模块利用QuartusII中自带有的除法运算的兆模块可以使设计的可靠性提高,但其资源占用较大,综合后的浮点数除法器占用299个逻辑单元。通过分析我们发现,由于浮点数尾数的特殊性,可以大大简化尾数除法模块。改进的除法模块将输入的两数据进行比较,数据A大于数据B则输出‘1’,反之则输出‘0’。将输出的‘1’或‘0’按位存储在storage模块中,组合得到除法运算结果。在对输入数据比较后选择性的进行减法运算,得出的结果作为余数移位并存储到storage1模块中。然后storage1将余数输出,再与被除数同时为除法模块提供数据输入做循环运算。经过改进后,顶层浮点数除法运算模块的资源占用减少到125个逻辑单元,节省了58%的资源。2.5除法运算仿真结果对比我们选择了一些有代表性的数据进行验证,表1中列出了4组数据及其相应的除法运算结果,对比图6除法器仿真波形图可知,仿真结果完全正确。图6中,DATAA,DATAB分别为32位数据输入,DATAOUT为32位数据输出。3浮点数的改

温馨提示

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

评论

0/150

提交评论