购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.12 浮点数运算的HDL描述

在IEEE-754规范(32位和64位)和IEEE-854(可变宽度)规范中,都对浮点数进行了定义。很多年前,处理器和IP中就开始使用浮点数了。浮点格式是一种很容易理解的格式,它是一个符号幅度系统,其中对符号的处理不同于对幅度的处理。

下面给出在Vivado 2017.2中使用VHDL语言添加浮点支持的详细步骤。

(1)在“Sources”窗口中,找到并单击设计文件,如top.vhd文件。在下面的“Source File Properties”窗口中,找到并单击“Type:”右侧的 按钮,出现“Set Type”对话框。

(2)在“Set Type”对话框“File type”右侧的下拉框中找到并选择“VHDL 2008”,将该文件设置为支持VHDL 2008的语法标准。

:(1)对于综合而言,需要将浮点运算库的声明语句设置为

library ieee;

use ieee.float_pkg.all;

(2)对于仿真而言,需要将浮点运算库的声明语句设置为

library ieee_proposed;

use ieee_proposed.float_pkg.all;

对于VHDL语言而言,不同精度的浮点数的范围表示为

(1)对于32位浮点数而言,范围为(8 downto-23),声明数据类型为float32。

其中:

① 8表示符号位。

② 7 downto 0表示指数部分,即8位宽度。

③-1 downto-23表示小数部分,即23位宽度。

(2)对于64位浮点数而言,范围为(11 downto-52),声明数据类型为float64。

其中:

① 11表示符号位。

② 10 downto 0表示指数部分,即11位宽度。

③-1 downto-52表示小数部分,即52位宽度。

(3)对于128位浮点数而言,范围为(15 downto-112),声明数据类型为float128。

其中:

① 15表示符号位。

② 14 downto 0表示指数部分,即15位宽度。

③-1 downto-112表示小数部分,即112位宽度。

(4)对于可变长度的浮点数而言,范围为(m downto n)。

其中:

① m为正整数,n为负整数。

② m表示符号位。

③ m-1 downto 0表示指数部分,即m位宽度。

④-1 downto n表示小数部分,即n位宽度。

3.12.1 单精度浮点数加法运算的HDL描述

单精度浮点数加法运算的VHDL描述如代码清单3-25所示。

代码清单3-25 单精度浮点数加法运算的VHDL描述

:(1) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_add路径中,打开该设计的可综合文件。

(2) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_add_sim路径中,打开该设计的仿真文件。

单精度浮点数加法运算的仿真结果如代码清单3.31所示。

图3.31 单精度浮点数加法运算的仿真结果

思考与练习3-30 :请分析单精度浮点数加法运算的仿真结果,验证设计的正确性。

3.12.2 单精度浮点数减法运算的HDL描述

单精度浮点数减法运算的VHDL描述如代码清单3-26所示。

代码清单3-26 单精度浮点数减法运算的VHDL描述

:(1) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_sub路径中,打开该设计的可综合文件。

(2) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_sub_sim路径中,打开该设计的仿真文件。

单精度浮点数减法运算的仿真结果如图3.32所示。

图3.32 单精度浮点数减法运算的仿真结果

思考与练习3-31 :请分析单精度浮点数减法运算的仿真结果,验证设计的正确性。

3.12.3 单精度浮点数乘法运算的HDL描述

单精度浮点数乘法运算的VHDL描述如代码清单3-27所示。

代码清单3-27 单精度浮点数乘法运算的VHDL描述

:(1) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_mul路径中,打开该设计的可综合文件。

(2) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_mul_sim路径中,打开该设计的仿真文件。

单精度浮点数乘法运算的仿真结果如图3.33所示。

图3.33 单精度浮点数乘法运算的仿真结果

思考与练习3-32 :请分析单精度浮点数乘法运算的仿真结果,验证设计的正确性。

3.12.4 单精度浮点数除法运算的HDL描述

单精度浮点数除法运算的VHDL描述如代码清单3-28所示。

代码清单3-28 单精度浮点数除法运算的VHDL描述

:(1) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_div路径中,打开该设计的可综合文件。

(2) 读者可以定位到本书所提供资料的\fpga_dsp_example\float_point_div_sim路径中,打开该设计的仿真文件。

单精度浮点数除法运算的仿真结果如图3.34所示。

图3.34 单精度浮点数除法运算的仿真结果

思考与练习3-33 :请分析单精度浮点数除法运算的仿真结果,验证设计的正确性。 edgEiGSRA0c0X1FP+GJDwNjH9KULxSmq/YPX9HPB+NHyoMYVDlcxwXBXXVEIutiY

点击中间区域
呼出菜单
上一章
目录
下一章
×