| 人才招聘 | 联系我们 | 网站地图 语言:中文 | English

应用笔记
下载中心
技术指导
产品手册
软件
精彩视频

当前位置: Home / 技术支持 / 应用笔记 /

FPGA中定点数与浮点数的转换

作者:刘亮 美国国家仪器研发工程师    发布时间:2012年01月05日

定点数数据类型是一组用二进制或位表示的实数数据类型。与浮点数数据类型不同,使用固定的位数表示定点数。定点数一般用于不支持浮点数的硬件平台,如FPGA。
 
方法一:
点击浏览下一页
 
当将定点数(Fixed-Point)输入给数值至布尔数组转换时,其返回布尔数组的长度等于浮点数的字长(Word Length),该值可以是从1到64间的任意值。而将整数(Integer)输入给数值至布尔数组转换时,其返回布尔数组的长度等于整数的字长,与浮点数不同的是该字长的长度为固定值,如,8、16、32或64。数值至布尔数组转换返回的布尔数组为二进制表示法的整数,存储了定点数的各个位信息。
 
当把布尔数组输入给布尔数组至数值转换时,布尔数组将被当作二进制表示法的整数处理。默认情况下,布尔数组至数值转换输出的数值表示法和输入的布尔数组相关。如果需要转换成指定的表示法,可通过属性设置对应的表示法。
 
该方法的实现方式是通过布尔数组做为中间介质保存定点数或整数的位信息,然后再根据指定的表示法将布尔数组还原成定点数或整数。
 
方法二:
点击浏览下一页
 
当将定点数输入给转换为双字节整型时,只有定点数的整数部分被保留下来,并被转换为近似的整数。如果小数部分为“.5”,该定点数讲被转换为近似的偶数。例如,13.5和14.5都会被转换为14。由于所有的小数部分在转换过程中被舍弃,因此通过该方法转换成的整数无法再被转换为原来的定点数。
 
当将整数输入给转换为定点数时,整数会被转换为指定定点类型的定点数,可通过将对应定点类型的定点数接到定点类型端或者通过设置该功能的属性指定定点类型。如果没有指定对应的定点类型,该功能将按照输入的整数转换为对应的定点数。例如U8将被转换成定点类型为<+8,8>的定点数。
 
该方法中,转换为双字节整型在把定点数转整数时,丢失了定点数的部分位信息,因此通过转换为定点数已无法将该整数转换为原来的定点数。
 
方法三:
点击浏览下一页
 
该方法的实现方式和方法一相似,只不过隐藏了中间的转换过程。方法一是通过布尔数组做为中间介质保存定点数或整数的位信息,然后再根据指定的表示法将布尔数组还原成定点数或整数。而该方法是将定点数或整数在转换过程中解释成位信息,从而达到方法一中的效果。