小技巧一种简单的办法在verilog中处理小数运算

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小技巧一种简单的办法在verilog中处理小数运算相关的知识,希望对你有一定的参考价值。

很多情况下,我们需要在FPGA中处理小数,而不是直接量化。这里介绍一种自己以前常用的处理方法。感觉还不错,可以试试。

我们定义一个二进制,总共12位宽:

A1A2A3A4B1B2B3B4B5B6B7B8.

其中A1A2A3A4为整数,B1B2B3B4B5B6B7B8为小数。

做加法减法的时候,不考虑整数位位宽不够用的情况,那么可以直接相加:

A1A2A3A4B1B2B3B4B5B6B7B8.+A1A2A3A4B1B2B3B4B5B6B7B8.

这个就维持了加减法小数位不增加的原则。

如果是乘法,不考虑整数位位宽不够用的情况

A1A2A3A4B1B2B3B4B5B6B7B8.*A1A2A3A4B1B2B3B4B5B6B7B8.

将得到A1A2A3A4A1A2A3A4,B1B2B3B4B5B6B7B8B1B2B3B4B5B6B7B8

此时,只要将结果的低8位去掉,,高位的4位去掉就可以了。

这样处理之后,小数位还是8位,整数位还是4位。

如果整数位考虑溢出情况,那么进行位宽扩展就可以了。

比较简单的经验,可能大家都知道,随便写写,有需要的参考参考。

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于小技巧一种简单的办法在verilog中处理小数运算的主要内容,如果未能解决你的问题,请参考以下文章

FPGA教程案例26在FPGA中通过verilog来实现小数的基础运算

用verilog实现log2的一种方法

关于js中小数运算丢失精度的处理办法

Verilog状态机使用技巧

Verilog 浮点数运算模块

Android 开发常用控件的小技巧