首页 | 嵌入式系统 | 显示技术 | 模拟IC/电源 | 元件与制造 | 其他IC/制程 | 消费类电子 | 无线/通信 | 汽车电子 | 工业控制 | 医疗电子 | 测试测量
首页> 分享下载> 嵌入式系统> Xilinx Vivado HLS中Floating-Point(浮点)设计编码风格与技巧

Xilinx Vivado HLS中Floating-Point(浮点)设计编码风格与技巧

资料介绍
尽管通常Fixed-Point(定点)比Floating-Point(浮点)算法的FPGA实现要更快,且面积更高效,但往往有时也需要Floating-Point来实现。这是因为Fixed-Point有限的数据动态范围,需要深入的分析来决定整个设计中间数据位宽变化的pattern,为了达到优化的QoR,并且要引入很多不同类型的Fixed-Point中间变量。而Floating-Point具有更大的数据动态范围,从而在很多算法中只需要一种数据类型的优势。
Xilinx Vivado HLS工具支持C/C++ IEEE-54标准单精度及双精度浮点数据类型,可以比较容易,快速地将C/C++ Floating-Point算法转成RTL代码。与此同时,为了达到用户期望的FPGA资源与性能, 当使用Vivado HLS directives时需要注意C/C++编码风格与技巧相结合。


Xilinx Vivado HLS中Floating-Point(浮点)设计

编码风格与技巧

George Wang (王宏强) – Xilinx DSP Specialist



尽管通常Fixed-Point(定点)比Floating-
Point(浮点)算法的FPGA实现要更快,且面积更高效,但往往有时也需要Floating-
Point来实现。这是因为Fixed-
Point有限的数据动态范围,需要深入的分析来决定整个设计中间数据位宽变化的patte
rn,为了达到优化的QoR,并且要引入很多不同类型的Fixed-
Point中间变量。而Floating-
Point具有更大的数据动态范围,从而在很多算法中只需要一种数据类型的优势。

Xilinx Vivado HLS工具支持C/C++ IEEE-
54标准单精度及双精度浮点数据类型,可以比较容易,快速地将C/C++ Floating-
Point算法转成RTL代码。与此同时,为了达到用户期望的FPGA资源与性能,
当使用Vivado HLS directives时需要注意C/C++编码风格与技巧相结合。



1. 编码风格
1.1 单双精度浮点数学函数



#include

float example(float var)

{

return log(var); // 双精度自然对数

}



在C设计中, 这个例子, Vviado HLS
生成的RTL实现将输入转换成双精度浮点,并基于双精度浮点计算自然对数,然后将双精度
浮点输出转换成单精度浮点.
标签: VivadoHLS
Xilinx Vivado HLS中Floating-Point(浮点)设计编码风格与技巧
本地下载

评论