版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、除法器模块说明1. 前言在本项目中,需要用到非2的整数次幂的除法操作,所以不能通过移位操作来完成,而且不允许使用既有的IP核,这样,就需要在VHDL环境下自建一个除法功能模块,以在环路计算中实现除法操作。2. 任务分析此除法模块必须能够被重复调用,实现环路计算时对此模块时分复用,以达到节约逻辑资源的目的。另外,经过对环路数据的计算,需要除法操作的数据可以控制在二进制下32位宽度以内,所以,本次除法器的设计是以32位有符号数的运算为目的的。3. 设计原理 除法器的设计主要有两种方法,一是基于乘法操作,另一是基于减法操作。基于乘法操作的算法是把除法看做乘法的逆运算,实现时需要顺次进行,因此运算速度
2、较慢且需要耗费大量的逻辑资源,在FPGA中实现是不推荐此种方法,在此也不做讨论和采用;与此相比,在FPGA环境下,基于减法的操作不仅速度快,而且节省资源,而且通过除数与被除数的符号位判断,还能够实现有符号数运算,本次除法器的设计即采用基于减法的操作。除法的数学运算公式为:A = B * Q + R (1)其中,A为被除数,B为除数,Q为商数,R为余数。实现原理与步骤阐述如下:要方便的利用FPGA的特性进行求商运算,需先阐明一个运算关系。二进制下数值的左右移位等同于此数与2的n次幂的乘法,左移n位后低位补零结果等于原数值与2的n次幂的乘积,右移n位后高位补零结果等于原数值除以2的n次幂的结果。例
3、如,十进制数14,二进制表示为1110原数左移2位并补零后为 111000,即56,56=14*2*2。原数右移1位并补零后为 0111,即7,7=14/2。利用这个移位的性质,结合FPGA方便的移位操作,可以实现快速的除法运算。一个被除数A,仍以1110(14)为例,可以表示为,可以由最高位或者最低位开始,任意截取连续的几位数据去做运算,相当于原数据进行了移位后进行的运算,运算结果只需要再进行逆向的移位操作即可得到正确的结果。例如,当被除数B为0011(3)时,可以从1110的最高位开始,“提取”最高位出来移位至最低位后与被除数0011作比较和减法操作,1110最高位1(1),相当于1000
4、右移了3位,0001小于0011(3),次步骤的商Qt只能是0(十进制),将商再左移3位得到0000,余数R=A B * Qt =1000。再取A的次高位与上一步骤的余数相加,共同重复上述过程,所得的商和余数也各自叠加,直至被除数A所有位数都被轮询完毕。最后所得的商和余数既是所要求的结果。在FPGA环境下,鉴于移位和数据扩展及截取操作的方便性,上述过程,可以简化,将数据提取以及移位、叠加合并,全部用移位实现。具体操作可按下属过程执行:1. 将被除数A扩展至其原宽度的两倍,A占据低位,高位补零,扩展后用A_ext表示。如A=1110,则A_ext=00001110。2. 将被除数B扩展至其原宽度
5、的两倍,B占据高位,低位补零,扩展后用B_ext表示。如B=0011,则B_ext=00110000。3. 迭代运算:A_ext左移一位,低位补零,取移位后的高半部分数据,用A_ext_h表示,与被除数B作比较。此例中为0001对比0011。4. 若A_ext_h B,则商加1,A_ext_h=A_ext_h-B,否则商不加,也不做此减法操作。此时为方便,可用原A_ext的低位做为商Qt的存储空间,因为此时A_ext的低位的有效位已经被左移用作运算,低位补位的0没有实际意义,只起占位作用。同时,此步骤的余数Rt=A_ext_h B * Qt=0001,但在这种移位方法中,余数保持在A_ext_
6、h中原有的位置即可,省去了按位加减和移位操作。5. 重复上面4步,直至数据A的所有位都经过了轮询。最后,运算完毕的A_ext的低半部分即为商,高半部分即为余数。上述过程只阐述了无符号运算的办法,有符号数运算与此方法相同,只是在运算前先将有符号数转换成无符号数运算并提取原数据符号,计算完毕后再根据提取的符号位将结果逆变换回有符号数结果即可。4. 代码实现相应FPGA代码编写完毕后经过了静态时序仿真验证。代码如下:process(clk,reset)begin if(reset=1)then sign_quo = 0; sign_res = 0; elsif(clkevent and clk=1)
7、then if(dat_load_en=1)then sign_quo = (divisor(31) xor dividend(31) and sign_sel; -有符号数除法运算时商的符号 sign_res = dividend(31) and sign_sel; -除法器计算的余数符号与被除数相同 end if; end if;end process;process(clk,reset)begin if(reset=1)then tmpa 0); elsif(clkevent and clk=1)then if(dat_load_en=1)then -只在每次计算周期内更新一次值 if(
8、sign_sel=1)then -将有符号数运算转换为无符合数运算 if(dividend(31)=1)then tmpa = not dividend + 1; else tmpa = dividend; end if; else tmpa = dividend; end if; end if; end if;end process;process(clk,reset)begin if(reset=1)then tmpb 0); elsif(clkevent and clk=1)then if(dat_load_en=1)then if(sign_sel=1)then -将有符号数运算转换为
9、无符合数运算 if(divisor(31)=1)then tmpb = not divisor + 1; else tmpb = divisor; end if; else tmpb = divisor; end if; end if; end if;end process;process(clk,tmpa,tmpb)variable n : integer;variable tmpa_ext,tmpb_ext : std_logic_vector(63 downto 0);begin n := 0; tmpa_ext := 00000000000000000000000000000000 &
10、 tmpa; tmpb_ext := tmpb & 00000000000000000000000000000000;- if(clkevent and clk=1)then while(n=tmpb)then tmpa_ext := tmpa_ext - tmpb_ext + 1; end if; end loop; if(sign_quo=1)then tmpa_ext(31 downto 0) := not tmpa_ext(31 downto 0) + 1; end if; if(sign_res=1)then tmpa_ext(63 downto 32) := not tmpa_ex
11、t(63 downto 32) + 1; end if; if(reset=1)then quotient 0); residue 0); elsif(clkevent and clk=1)then quotient = tmpa_ext(31 downto 0); residue = tmpa_ext(63 downto 32); end if;end process;5. 仿真验证此程序已经经过了仿真验证,此仿真激励设置为被除数随机设置,除数固定为7。仿真波形如图1所示:图1.除法器静态时序仿真波形 由仿真波形可看到,被除数分别为-7,8,9,-10,11,12,13,-14,15,-16
12、,所得的商分别为-1,1,1,-1,1,1,1,-2,2,-2,余数分别为0,1,2,-3,4,5,6,0,1,-2。结果准确无误,时序正常,自数据输入至得到运算结果,共需2个时钟周期,如图2所示。图2,除法器时序6. 资源消耗Mapping to part: xc3s2000fg456-4Cell usage:BUF 4 usesFDC 64 usesFDCE 120 usesGND 1 useMULT_AND 22 usesMUXCY 39 usesMUXCY_L 1887 usesMUXF5 4 usesVCC 1 useXORCY 861 usesLUT1 361 usesLUT2 425 usesLUT3 816 usesLUT4 1514 usesI/O ports: 132I/O primitives: 131IBUF 67 usesO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光学投影仪的能耗优化方法考核试卷
- 物业管理的目标与原则考核试卷
- 平安新人培训参会管理
- 粤教翔云培训课程作业要求
- hse建设课程设计
- 无线支付技术探讨-洞察分析
- 水泥生产过程智能化分析-洞察分析
- 重庆市2023-2024学年高三物理上学期10月月考试题含解析
- 重庆市2023-2024学年高一数学上学期期中试题含解析
- 异常检测与故障诊断-洞察分析
- 内存扩展模块市场洞察报告
- 化学-安徽省2025届高三第一次五校(颍上一中、蒙城一中、淮南一中、怀远一中、涡阳一中)联考试题和答案
- 2024年旅行社业务承包授权书
- 中华人民共和国统计法
- 工程设计-《工程勘察设计收费标准》(2002年修订本)-完整版
- 第三单元《珍爱我们的生命》-2024-2025学年七年级道德与法治上册单元测试卷(统编版2024新教材)
- 行政职业能力测试真题2023年(行政执法类)
- 金属再生资源处理与综合利用项目可行性研究报告
- 农产品生鲜冷链仓储物流项目可行性研究报告
- GB/T 26527-2024有机硅消泡剂
- 雅思英语1智慧树知到期末考试答案章节答案2024年嘉兴大学
评论
0/150
提交评论