Speedgoat FPGA板卡使用系列文章之浮点建模与过采样介绍

前言

Speedgoat实时仿真平台不仅支持CPU模型的浮点建模,同样也支持FPGA模型的浮点建模,这免去了FPGA建模的定标过程,加速开发,但是浮点模型在生成HDL代码时需要遵循一定的规则。对于过采样的理解,下文也将给出详细的解释。

 

浮点建模

对基于FPGA的运算而言,定点化的算法拥有更高的运算效率,但需要开发者花费一定的时间将算法定点化。开发者需要在资源、时序、数据范围、数据精度间权衡,以确定更优化的定点方式。

img1

1

定点化运算在特定应用中,难以实现足够的精度,这时就迫切需要FPGA以浮点的方式运算。

img2

2

 

根据IEEE754中的标准,浮点数表示的范围更大,如下图所示,但是在十进制浮点数转二进制的过程中不可避免的产生精度的损失。与之相比较,定点数转二进制的过程中可以保证精度,但同样也有缺点,既量程不足导致溢出,而浮点数因为表示的范围比较大,不必担心数据溢出的问题。

img3

3

 

从硬件实现的角度来说,浮点建模消耗的FPGA硬件资源比较多,且可能需要更多的FPGA时钟,进而导致时序上的延迟。其在FPGA内部的计算原理如下:

 

img4

4

 

HDL Coder支持Native Floating-point的方式浮点建模。基于此功能,用户可方便的搭建浮点的FPGA算法,并将其部署到Speedgoat FPGA板卡中。

 

1.浮点建模的方法

 

第一步:打开模型的Configuration Parameter修该浮点IP库为Native Floating Point

第二步:勾选Balance delays

具体的操作方法参见图5、图6

img5

5

img6

6

 

2.浮点建模与定点建模的对比

 

定点建模的特点(如图7

1)定点建模可以运行的更快

2)定点建模没有附加的延迟

img7

图7

 

浮点建模的特点(如图8

1)单精度运算符在FPGA设计中引入了额外的延迟。

2Delay Balance特性有助于调整并行信号路径。

3)代码生成模型考虑了添加的延迟。

img8

8

 

综上可见,在进行浮点或者定点建模的选择时,要充分考虑二者的优缺点,权衡之后,做出选择。如果硬件资源足够,并且不必担心额外的延迟对结果造成影响的话,那么浮点建模会极大的加速开发过程。

 

 

过采样的应用

Oversampling factor(过采样系数)是HDL Coder中的配置参数,用于指定全局时钟与模型工作基本速率的倍数关系。即最终FPGA运行的全局时钟,与搭建的算法运行步长间的比例关系。

 

1.过采样的设置

第一步:打开模型的Configuration Parameter

第二步:将过采样倍数设为你想设置的数(注:必须是正整数)。

具体设置过程如图9所示。

img9

9

 

2.过采样的解释

 

设置过采样后,将FPGA模型综合后下载到FPGA芯片中,这时FPGA模型的运行频率与FPGA芯片的频率关系为下述公式所示:

 

由公式所知,过采样其实是在不改变FPGA主频的前提下,降低模型的运行速率。利用该方式,可以降低模型在FPGA上的运行频率,同时为模型内部分算法的实现提供足够的时钟裕度(比如过采样为10,意味着模型一次运算有10FPGA时钟周期,则足够完成算法内需要8个时钟的浮点乘法运算)

img10

10

 

 

 

首页    技术blog和使用技巧    Speedgoat FPGA板卡使用系列文章之浮点建模与过采样介绍
创建时间:2020-08-06
浏览量:0