单精度浮点乘法器

上传人:公**** 文档编号:564534315 上传时间:2023-09-23 格式:DOC 页数:22 大小:552.50KB
返回 下载 相关 举报
单精度浮点乘法器_第1页
第1页 / 共22页
单精度浮点乘法器_第2页
第2页 / 共22页
单精度浮点乘法器_第3页
第3页 / 共22页
单精度浮点乘法器_第4页
第4页 / 共22页
单精度浮点乘法器_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《单精度浮点乘法器》由会员分享,可在线阅读,更多相关《单精度浮点乘法器(22页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上EDA/SOPC课程设计报告题目: 单精度浮点乘法器 姓 名: 张恺 学 号: 同组人:刘龙 指导教师:王晨旭 成 绩: 专心-专注-专业目录第1章 课程设计的要求1.1 课程设计的目的l 通过课堂所讲授的内容以及私下查阅资料,自主完成课程设计的题目,提高编 程能力,培养用计算机解决实际问题的能力,积累调试程序的经验,更好的消化老师课堂所讲授的内容,对Verilog这种语言也有了更深的了解;l 掌握较大工程的基本开发技能;l 培养综合运用Modelsim,ISE,Debussy工具进行硬件开发的能力;l 培养数字系统设计的基本能力;l 通过课设积累起的编程以及硬件的能

2、力对于今后的考研抑或是找工作都有非常实 际性的效果;1.2 课程设计的条件l 设计条件1:gVim编辑器以及Mentor公司开发的FPGA仿真软件Modelsim;l 设计条件2:Xilinx公司开发的硬件设计工具ISE以及Xilinx公司的开发板;l 设计条件3:虚拟机环境下的Linux系统具有的Design Compiler工具;l 设计条件4:虚拟机环境下的Linux系统具有的SDF工具以及Debussy工具;1.3 课程设计的要求l 设计要求1:能够在Modelsim工具下正确的完成程序的编译以及成功的实现波形的仿真;l 设计要求2:能够在ISE工具下正确的完成程序的综合以及合理的绑定

3、管脚并成功的将程序下载到开发板里,在开发板中实现程序的功能;l 设计要求3:能够在虚拟机的Linux系统下采用Design Compiler完成逻辑综合,并且评估其时序面积;l 设计要求4:能够在虚拟机的Linux系统下完成SDF反标仿真;第2章 课程设计的内容2.1 设计思路对于单精度浮点乘法器这一课程题目,重点在于正确理解IEEE-754标准,设计出符合IEEE-754标准的单精度浮点乘法器。2.1.1 符合IEEE-754标准的单精度浮点乘法器规格单精度浮点数32位由高位至低位可划分为1位符号位(s),8位阶码(e),23位尾数(f)。0e255时为规格化数;e=0且f=0为正负0;e=

4、0且f不等于0,为非规格化数;e=255且f=0,为正负无穷;e=255且f不等于0,为NaN(不是一个数)。图2-1 单精度浮点数的规格2.1.2 操作数类型符号/1位阶码/8位尾数/23位NaN0/1非0无穷0/123b000/1任意正常0/1(0,255)任意表2-1说明:1、NaN和任何数相乘都为NaN;2、无穷和0相乘为NaN,和其他数相乘都为无穷;3、0和替他数相乘都为0;4、正常数和正常数相乘再对他们的乘积进行判断(以上的每一种情况都是在其前面情况不成立情况下进行的);5、如flout_a与flout_b中有至少一个异常,那么flout_c的尾数部分为优先级高的异常情况的尾数部分

5、,无穷和0相乘特殊,指定其尾数为23b01,0的符号位为0,其他为sign_asign_b;2.1.3 运算规则两个规格化的单精度浮点数相乘时,运算规则如下:(1)符号位相异或得结果;(2)阶码为e=(e1-127)+(e2-127)+127;(3)尾数为两个尾数都扩展一位后再相乘,得出的为一个48位数cf1,取出cf1的第24位至第48位赋给cf3,即cf3=cf147:23,此时若cf122=0,舍去第1位至23位,若cf122=1,向第24位进1,并且舍去第1位至第23位;尾数规格化:判断cf324是否为1,若cf324=1,cf3右移1位,阶码位加1,若cf324=0,则不用进行规格化

6、;最后尾数取cf322:0。2.1.4 逻辑门级框图图2-2 逻辑门级框架简图2.2 软件流程图图2-3 总流程图图2-4 计算部分详细流程图2.3 HDL代码阐述module mux(flout_a,flout_b,clk,en,rst,flout_c,yichu); module mux(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

7、flout_c;/输出的单精度浮点数 output1:0 yichu;/溢出信号 reg31:0 flout_c; reg1:0 yichu;/变量类型声明 reg sign_a,sign_b,sign_c; /符号位 reg 7:0zhishu_a,zhishu_b,zhishu_c; /阶码 reg23:0zz_a,zz_b; reg47:0zz_c; /尾数 reg jiayi; /中间变量 always(posedge clk or negedge rst)begin if(rst)begin sign_a=0; sign_b=0; zhishu_a=0; zhishu_b=0; zz

8、_a=0; zz_b=0; end /输入复位模块 else if (en)begin sign_a=flout_a31; sign_b=flout_b31; zhishu_a=flout_a30:23; zhishu_b=flout_b30:23; zz_a=1b1,flout_a22:0; zz_b=1b1,flout_b22:0; end /使能赋初值模块 end always(sign_a or sign_b or zhishu_a or zhishu_b or zz_a or zz_b)begin if(rst)begin zhishu_c=0; zz_c=0; sign_c=0;

9、yichu=2b01; end /输出复位模块 else begin if(zhishu_a=255&(|zz_a22:0)begin zhishu_c=zhishu_a; yichu=2b11; zz_c46:23=zz_a; sign_c=sign_asign_b; end /数a不是一个数与数b任何数相乘都是不是一个数 else if(zhishu_b=255&(|zz_b22:0)begin zhishu_c=zhishu_b; yichu=2b11; zz_c46:23=zz_b; sign_c=sign_asign_b; end /数b不是一个数与数a任何数相乘都是不是一个数 el

10、se if(zhishu_a=255&(|zz_a22:0)begin if(zhishu_b=255&(|zz_b22:0)begin zhishu_c=zhishu_a; yichu=2b10; zz_c46:23=zz_a; sign_c=sign_asign_b; end /数a无穷与数b无穷相乘还是无穷 else if(zhishu_b=0) begin zhishu_c=zhishu_a; yichu=2b11; zz_c46:23=1b1; sign_c=sign_asign_b; end /数a无穷与数b0相乘为不是一个数 else if(zhishu_b0) begin zh

11、ishu_c=zhishu_a; yichu=2b10; zz_c46:23=zz_a; sign_c=sign_asign_b; end /数a无穷与数b规格化数相乘为无穷 end else if(zhishu_b=255&(|zz_b22:0)begin if(zhishu_a=0) begin zhishu_c=zhishu_b; yichu=2b11; zz_c46:23=zz_b+1b1; sign_c=sign_asign_b; end /数b无穷与数a0相乘为不是一个数 else if(zhishu_a0)begin zhishu_c=zhishu_b; yichu=2b10; zz_c46:23=zz_b; sign_c=sign_asign_b; end /数b无穷与数a规格化数相乘为无穷 end else if(zhishu_a=0)|(zhishu_b=0)begin yichu=2b00; zhishu_c=8b; sign_c=0; if(|zhishu_a)begin zz_c46:23=zz_a; end else begin zz_c46:23=zz_b; end end

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号