基于IEEE754浮点乘法器设计程序--verilog(共4页).doc
《基于IEEE754浮点乘法器设计程序--verilog(共4页).doc》由会员分享,可在线阅读,更多相关《基于IEEE754浮点乘法器设计程序--verilog(共4页).doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上上溢、下溢与除以零等异常情况在大多数系统中是经常发生的。以双精度浮点数为例,如果只考虑格式化数,则它的溢出有四种情况:(1)正数大于(1-)2 的情况为正上溢;(2)正数小于0.52的情况为正下溢;(3)负数小于-(1-2)2的情况为负上溢;(4)负数大于0.52的情况为负下溢。在浮点运算过程中一个很重要的步骤是舍入。舍入的目的是使得有效数据的位数保持在固定位数范围内。IEEE754标准规定了四种舍入模式:(1)就近舍入(偶数):目标是使舍入结果尽可能接近实际值。最大误差为LSB(Least Significant Bit)。(2)零舍入RZ:通过截断实际值的多余位来
2、实现。最大误差为土LSB。(3)+舍入:结果向正无穷大方向舍入。所有值被舍入到下一个可能值,负数的舍入结果将截去多余位,正数的舍入结果为下一个较大的有效值。(4)-舍入:结果向负无穷大方向舍入。负数的舍入结果将为下一个较小的有效值,正数的舍入结果将截去多余位。下表给出了不同的舍入方法下的舍入结果,以8位值舍入为4位值为例。不同舍入方法的舍入值数值就近舍入零舍入+舍入-舍入.0111.0110.0111.0110-.-.0111-.0110-.0110-.0111.1000.1000.1001.1000-.1000-.1000-.1000-.1001.1000.1000.1000.1000浮点运
3、算单元源代码:module alu(flout_a,flout_b,clk,en,rst,flout_c,yichu); /浮点运算单元模块 input31:0 flout_a; /输入的被乘数 input31:0 flout_b; /输入的乘数 input clk; /时钟信号 input en; /使能信号 input rst; /复位信号 output31:0 flout_c; /输出运算结果 output1:0 yichu; /输出溢出标志 reg31:0 flout_c;reg1:0 yichu;reg1:0 overflow; reg s3; reg s1,s2; /符号 reg7
4、:0 exp1,exp2,exp3; /阶码 reg22:0 man1,man2,man3; /尾数reg n; reg7:0 temp1; reg7:0 temp2; reg8:0 temp3; reg23:0 temp; reg45:0 comeout; reg23:0 all; /小数部分 reg1:0 zheng; /整数部分 always(posedge clk) /提取flout_a的符号,阶码,尾数 begin if(!rst) begin s1=1b0; exp1=8b; man1=23b0; end else if(en) begin s1=flout_a31; exp1=f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 IEEE754 浮点 乘法器 设计 程序 verilog
限制150内