LabVIEW中定点数有什么用途?LabVIEW中定点数应用解析 - FPGA/AS
什么是定点数
顾名思义,在运算中小数点始终不会发生移动的数就是定点数。对于定点数,我们定义了其一共占有的bit位数以及小数点的位置,不同格式的定点数可以表达的数据范围和数据精度也会随之不同。
通常采用
图:有符号定点数表示方法
比如一个字长为8,整数字长为4的无符号定点数,其表示方法为<+,8,4>,表示范围从0—15.9375,增量值为0.0625。
图:LabVIEW对于定点函数的即时帮助
为什么选择定点数?
【效率高,占用资源较少】
一般说来,定点数的运算在计算机中实现起来比较简单,效率较高;而浮点数的运算在计算机中实现起来比较复杂,效率相对较低。
图:定点数以及单精度浮点数加乘运算占用资源
【执行时间短】
定点数的运算可以在FPGA一个单周期定时循环(SCTL)中完成,但是如若想在单周期定时循环中执行浮点运算则会编译失败
定点数的max、min和delta的计算
定点数的max和min是由符号位,字长和整数字长共同决定的,而delta的大小却与符号位无关。
我们定义一个定点数表示为<+,m,n>,当m个全部字长都为1的时候,该值有最大取值;当m个全部字长都为0的时候,该值为最小值。
图:无符号定点数delta值表示
一个无符号定点数的最大值为 ,最小值为0,其增量值Delta为相似的,对于有符号的定点数来说,符号位为0,其余所有位为1时取最大值;符号位为1,其余所有位为0时,此时取最小值;其增量值Delta依然为。
定点数的运算
【加法】
定点数在进行相加的时候,对于<+, m, n> 与<+, m, n>进行相加,用<+, m+1, n+1>是完全可以包含其所有可能结果的。也就是分数部分位数不变,整数由于可能进位,所以整数部分位数加1,字长也相应加1。
图:两个相同配置的无符号定点数相加
如果Add节点两端的定点数配置不同,分数部分位数取A与B中较大值,整数部分位数取A与B中较大值+1,字长等于分数位数与整数位数之和。
图:两个不同配置的无符号定点数相加
【减法】
无论减数和被减数是否有符号,其结果必然为有符号定点数。也就是两配置为<+, m, n>的定点数相减,结果为<±,m+1, n+1>,当然两配置为<±,m, n>的定点数相减,结果依然为<±,m+1, n+1>。
图:定点数的减法
查看评论 回复