利用FPGA技术能更方便灵活设计出浮点运算器.docx

上传人:lao****ou 文档编号:797398 上传时间:2024-05-26 格式:DOCX 页数:10 大小:182.84KB
下载 相关 举报
利用FPGA技术能更方便灵活设计出浮点运算器.docx_第1页
第1页 / 共10页
利用FPGA技术能更方便灵活设计出浮点运算器.docx_第2页
第2页 / 共10页
利用FPGA技术能更方便灵活设计出浮点运算器.docx_第3页
第3页 / 共10页
利用FPGA技术能更方便灵活设计出浮点运算器.docx_第4页
第4页 / 共10页
利用FPGA技术能更方便灵活设计出浮点运算器.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《利用FPGA技术能更方便灵活设计出浮点运算器.docx》由会员分享,可在线阅读,更多相关《利用FPGA技术能更方便灵活设计出浮点运算器.docx(10页珍藏版)》请在第一文库网上搜索。

1、利用FPGA技术能更方便灵活设计出浮点运算器FPGA(现场可编程门阵列)技术的理论研究和实际应用正越来越受到人们的重视。FPGA技术常常使一些原来比较难解决的技术瓶颈得以轻松实现,从而使产品的开发周期大为缩短,性能价格比大幅提高。运算器作为计算机的加工处理部件,是里(中央处理器)的重要组成部分。作为典型的PC机一般都至少具有一个定点运算器。在586之前的机型中,由于当时硬件条件和工艺的限制,浮点运算器一般以协处理器的形式出现。进入20世纪90年代后,随着工艺水平的提高,一个甚左上集成度不断提高,如今浮点运算所要求的一些硬件已可以集成到CPU中,因此,作为浮点运算器的代表的协处理器也逐渐被集成度

2、很高的CPU中的一部分所代替。浮点运算定点运算器主要是用于实现对定点整数和定点小数的算术运算、对逻辑数据的逻辑运算以及对主存的地址计算等。浮点数比定点数的表述范围宽,有效精度高,更适合于科学计算与工程计算。浮点运算可分为两类:非规格化和规格化浮点运算。非规格化浮点运算,不要求操作数是规格化数,对运算结果也不要求规格化处理。而规格化浮点运算只能对规格化的浮点数进行操作,并且要求对运算结果加以规格化处理。由于规格化浮点数具有惟一的表示形式,而且在计算机中尾数能获得最大的有效数字,所以在一般的计算机中一般选用规格化浮点运算。浮点加、减运算浮点加减法运算规则设有两个浮点数X和y,分别为其中EX和Ey分

3、别为数X和y的阶码,Mx和My分别是数X和y的尾数。两浮点数进行加减的运算规则是(2)月T.M2=&W口,所浮点加减法运算步骤完成两个浮点数加法或减法运算,需要以下几个步骤完成。(1)对阶:两浮点数进行加减,必须使它们的阶码相等,这个过程称为对阶。对阶的第1步是求阶差:对阶的规则是小阶向大阶看齐,即使阶码小的尾数向右移位,每右移一位阶码加1,直至两数的阶码相等(E=O)为止。右移的位数等于阶差IEo当然尾数右移也会发生数码丢失,但这时丢失的仅仅是尾数的低位部分,误差较小,而且可以通过舍入方法来控制误差。(2)求和或求差:按定点加减的规则求两尾数的和或差。这个过程中所使用运算逻辑单元与定点运算逻

4、辑单元类似。(3)规格化:求和之后得到的数可能不是规格化的数,为了增加有效数字的位数,提高运算精度,必须将求和的结果规格化。当尾数用二进制表示时,浮点规格化的定义是尾数M应满足:(4)溢出判断:在进行运算时,可能出现阶码溢出的情况。当阶码超出上限时,称为阶码上溢,它表示浮点数的绝对值超出表述范围。当阶码小于下限时,称为阶码下溢,它表示浮点数的绝对值已在浮点数表示的分辨率之下。通常阶码上溢时要进行相应的处理,阶码下溢时要当作机械零处理。浮点乘、除运算浮点乘除法运算规则两浮点数乘法的运算规则是即两浮点数相乘,其乘积的阶码为相乘两数的阶码之和,其乘积的尾数为相乘两数尾数之积。两浮点数除法的运算规则是

5、即两浮点数相除,商的阶码为被除数的阶码减去除数的阶码所得到的差,尾数为被除数的尾数除以除数的尾数所得的商。浮点乘除法运算步骤两个浮点数乘除运算步骤为:完成两浮点数阶码的加减运算,并判断结果是否溢出;完成两浮点数尾数的乘除运算;根据结果的阶码判断溢出,如果上溢则置溢出标志。浮点运算器的设计与实现硬件平台浮点运算器的设计与实现都是在开发的多功能师实验台上完成的。该EDA实验台采用FPGA-XC4010EPC8462256CP1D和其它外围芯片(例如741S244,741S275)组成。XI1INX公司XC4000系列是高容量、高成本的FPG,能够进行无限次重新编程,配合公司的相应软件FoUNDAT

6、1ON3.1,用户可以设计和调试出具有相当功能的控制逻辑。根据不同的要求,规划不同控制逻辑,通过把控制逻辑上我到FPGA芯片中构成自己的硬件平台。基于VHD1语言方式VHD1语言具有极强的描述覆盖能力,在使用VHD1语言实现的过程中,我们采用自顶向下的方法来实现浮点运算器。步骤如下:(1)分析系统的内部结构并进行系统划分,确定各个模块的功能和接口。在设计中,根据浮点运算器的功能,将其划分为时序产生模块、浮点数输入模块、浮点运算模块和结果输出模块4个模块来实现。浮点运算器逻辑框图如图1所示。stae1k时序产生c1tI郭萍1U“12号号号号JJJJ图1浮点运算器4Z/铝果物H1将这4个模块组合成

7、顶层设计f1oat_a1u,该顶层设计的端口定义分别为Pomdata_1输入数的8位尾数:data_2入数的8位尾数:Suse1_2exp_1输入数的4位阶玛:eatin,f1oat_a1uis:inStdjogiJVeCtof(7downto0);第1组:inStdjOgiJVeCtO7downto0);第2组输inStdJogic;第1组数的输入触发开关:inStdJogic;第2组数的输入触发开关::m$td_1ogic_vectoi(3downto0);第1组exp_2:instd_1ogic_vectoK3downtoO);第2组袍入数的4位阶玛:RM1jadd:intdJogic;

8、浮点运算功能加:ftmc_sub:m$td_iogic:浮点运算功能减:RmJnIU1:mStdJogic;浮点运算功能乘:Amjdiv:inStdJogic;浮点运算功能除:StarJc1k:inStdJogic;浮点运算启动开关:e1k:instd_1ogic:系统工作时钟:dau_out:outstd_1ogxc_vector(7downtoO);输出结果8位尾数:exjut:outstdjogc-vecto(3downto0);输出结果4位阶玛;OVr:。UtStdJogic;上溢出报警:zero:outStd1ogic;下溢出报警:);玩?西旦endf1oata1u;,1-J。,i”

9、(2)根据浮点运算器各模块的功能,分别编写程序,输入VHD1代码,并将其编译成标准的VHD1文件。时序产生模块:该模块功能是对系统时钟进行分频产生相应的时钟信号。本模块中使用计数器级连的方法实现分频。浮点数输入模块:开关Se11和se1_2为输入数据的触发信号。多功能EDA实验台上其余开关对应于8位尾数和4位阶码输入。当Se11开关按下,即Se11=1时,输入开关中的数据作为第1组输入数的8位尾数和4位阶码;当se1_2开关按下,即sc12=1,时,输入开关中的数据作为第2组输入数的8位尾数和4位阶码。在该模块中用进程PrOCeSS(se1_1)和PrOCeSS(se1_2)来实现。1oad_

10、data_1:process(s1_1)beginif(se1_1-andse1-event)thenregdata/尸_iendif;浮点运算模块:该模块主要完成各种浮点运算,是整个系统的核心部分。根据输入功能选择按键,在start/Ik信号上升沿的触发下,对输入的两组浮点数进行运算。浮点运算模块的流程图如图2所示。规格化浮点数加减运算流程图如图3所示,规格化浮点数乘除运算流程图如图4所示。结束)JUzZz图2浮点运算噢“规格化浮4馀造普篇程结果输出模块:该模块的功能是将浮点运算的结果输出至多功能EDA实验台相应的发光二极管,以供观测。(3)VHD1源代码进行综合优化处理。经过上述分析后,用

11、VHD1语言对各个模块进行描述和实现,最后对VHD1源代码进行综合优化处理。(4)仿真与配置。设计的正确性可以通过仿真来验证。图5是浮点减法的时序仿真图。图5中的信号定义如表1所示。其它各种运算的时序仿真方法相同,在此不再描述。表1浮点运算器信号定义序号网络速线名称或总段名称g功解加用途1Tm11Bit2TnVe2Bit阶码输入图分.TmpZ为3Tm13Bxt岛Q4TmP4Btt5TmPIBgBu八位)尾数箱人部分6Brt第1组数编人触发信号7Sa-2Bst第2岁效物入触发侑号8Bit程序更位触发信号9Start_mBtt功能执行触发信号10S:g_add_mBtt加法比鼻使能信号I1Si1R

12、bABrt减法运Jr使胞信号12Sig_nii1_mBit乘法运Ir使能信号BSig_dn_inBit除法运算使爬信号14Fuu1_outBm(SfiE)结祟尾数输出15Add1-OUtBhSZ)加诚法结果输出16MUI_oiJtBus(4乘法结果处出(高8位17Reg1DBg4位)束法结果输出(娃8位)18Pad1-4mBh(4位)结果阶码输出19Pad5.SmBg4a溢出报警输出20E1busBS位)第1组数阶码21EiKBus4位)第2粗数阶码22Data1baoBa(8位)W1如数尾数23Data2bmBH(S位)第2组数尾数24C1kBrtA落季25CUc1Brtz;笊曾尼舒综合优化

13、处理后的VHD1程序经仿真正确后再将生成的位流(bit)文件配置到到FPGA的逻辑单元阵列,以定义器件内的逻辑功能块和其互连的功能。(5)下载验证。将步骤(4)得到的器件编程文件下载到目标芯片中,进行硬件的测试。浮点运算的结果显示在多功能EDA实验台相应的发光二极管上,通过观测,可以证实所设计的浮点运算器是正确的。基于原理图方式采用原理图方式设计一个浮点运算器,首先必须分析出运算器的组成,然后使用基本的逻辑门和触发器来实现。根据前面的分析可知,浮点四则运算比起定点运算来要复杂一些。在浮点运算中,阶码和尾数是分别进行运算的,并且都是定点数(阶码为定点整数,尾数为定点小数)。因此,可以说,浮点运算

14、器是定点运算器的扩充和强化。一般浮点运算器都至少具有两个定点数逻辑运算单元,一个用于阶码的比较和运算,另一个用于尾数的运算。从运算器结构来讲,不但要有尾数运算器,而且还要有阶码运算器。阶码运算器用来求阶差、修改阶码等操作,一般只进行加减运算。而尾数部件不但有加法器用以求和,还应有左移和右移线路,以实现对尾数的操作。我们设计的浮点运算器以尾数为8位,阶码为4位的浮点数为例,根据实验开发平台资源,其组成如图6所示。第2蛆效尾数(8)=结果足就(8依)寄存禽多篇开关仁KES=(图6浮点运克器经工7由于XI11NX公司FOUNDAT1ON3.1软件本身提供的器件相当丰富,小到逻辑门,大到全加器,类型丰富,所以我们开发软件选用X111NX公司的FOUNDAT1oN3.I0在FOUNDAT1ON3.1原理图编辑环境中设计出如图5所示浮点运算器的具体原理电路,规定器件的输入/输出,并定义好相应的网络名称和总线名称。在整个浮点运算器的设计过程中,核心部件是加法器、移位寄存器和计数器。计数器选择FOUnda旦on3.1的标准库中CB4C1ED(4-Bit1oadab1eCascadab1eBidirectiona1BinaryCounterwithC1ockEnab1eandAsynchronousC1ear)。移位寄存

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服