FPGA中浮点运算实现方法——定标
方法 实现 FPGA
2023-09-14 09:08:15 时间
有些FPGA中是不能直接对浮点数进行操作的,仅仅能採用定点数进行数值运算。对于FPGA而言,參与数学运算的书就是16位的整型数,但假设数学运算中出现小数怎么办呢?要知道,FPGA对小数是无能为力的,一种解决的方法就是採用定标。数的定标就是将要运算的浮点数扩大非常多倍,然后取整,再用这个数进行运算,运算得到的结果再缩小对应的倍数就能够了。在设计中,一定不要忘记小数点。在FPGA 中是体现不出来小数点的,小数点的位置仅仅有程序猿知道。Q表示小数点的位置,Q15就表示小数点在第15位。
浮点数(x)转换为定点数(xq): xq=(int)x*2^Q
定点数(xq)转换浮点数(x): x= (float)xq*2^(-Q)
比方,16进制数2000H,用Q0表示就是8192;若用Q15表示,则为0.25。
以下介绍Q格式运算中Q值的确定:
(1)定点加减法:须要转换成同样Q格式才干加减
(2)定点乘法:不同Q格式的数据相乘,相当于Q值相加
(3)定点除法:不同Q格式的数据相除,相当于Q值相减
(4)定点左移:相当于Q值添加
(5)定点右移:相当于Q值降低
比方,Q15表示的4000H(浮点数0.5)乘以Q15表示的4000H,4000H×4000H=1000 0000H,乘完之后Q值变为15+15=30,即结果为0.01B,即为浮点数0.25。
相关文章
- 【说站】css中box-shadow方法如何使用
- spring异常:No runnable methods 解决方法
- Python dict字典方法完全攻略(全)
- MongoDB Limit与Skip方法-7详解数据库
- Linux下Read命令的使用方法(linuxread命令)
- Linux下禁止删除文件的方法(linux禁止删除文件)
- Redis实现高效数据去重方法(redis去重)
- Linux快速安全保存只读文件的方法(linux保存只读文件)
- MySQL中explan的使用方法及优化技巧(mysql中explan)
- MySQL三段封锁协议保证数据一致性的有效方法(mysql三段封锁协议)
- Oracle中求和的实现方法(oracle中如何列求和)
- Oracle数据库按月划分表的实现方法(oracle不同月份的表)
- js类中获取外部函数名的方法
- JS链式调用的实现方法
- myeclipse智能提示设置的实现方法
- 解析在WTL下使用双缓冲的实现方法
- Android控件(button)对齐方法实现详解
- DataGrid中实现超链接的3种方法
- IP连接SQLSERVER失败(配置为字符串失败)图文解决方法
- Java快速批量移动文件的实现方法
- PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
- 实例解读Ajax与servlet交互的方法
- destoon实现调用当前栏目分类及子分类和三级分类的方法