HLS开发学习-04- 数据类型的处理--任意精度数据类型

简介: HLS开发学习-04- 数据类型的处理--任意精度数据类型

数据类型


下图给出了C和C++的数据类型,同样也指出了在HLS中不支持的数据类型。

image.png

为什么要进行任意精度处理


在C语言的数据类型下,比特都是给定的8,16,32,64。而不同于FPGA内部可以实现任意位宽的一个调配。所以在这个标准的下,FPGA内部的资源可能会造成浪费。

在下图的PPT中,高亚军老师也给出了一个18*18的乘法器的例子,输入的端口为18比特仅仅比16多了2个比特,就浪费地使用了32位的资源这不是我们FPGA所期望的。

所以在HLS中我们就使用工具对精度进行了任意分配,以实现最大效率的利用资源。

image.png

任意精度数据类型


图中给出了常用的任意精度数据类型的表示方式,当然在使用时要进行头文件的包含。

image.png

使用任意精度的数据类型的对比


同样以前面的乘法器为例子对比结果如图,实现的结果中我们可以看出,任意精度的数据类型有更高的时钟频率,也就是我们的设计可以跑到更高的时钟。更快的数据吞吐,以及使用了更少的资源。

image.png

小技巧:在头文件中定义数据类型


  1. 让我们的设计可以更高效的进行修改,方便debug
  2. 同时在图中可以看到HLS的人性化设计,在Outline中对我们定义并使用到的数据类型进行了高亮显示,方便我们进行设计。

image.png

使用sizeof()函数


image.png

image.png

image.png

总结


image.png

目录
相关文章
|
7月前
|
存储 C语言
C语言中如何选择合适的方式将整数转换为浮点数
C语言中如何选择合适的方式将整数转换为浮点数
1693 0
|
7月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
134 4
|
存储 编译器 程序员
C++基础篇之什么是数据类型
C++基础篇之什么是数据类型
|
1月前
|
JavaScript 前端开发 Java
模板字符串和普通字符串的性能差异大吗?
总体而言,模板字符串和普通字符串的性能差异并非在所有场景下都非常显著,但在一些复杂的、对性能要求较高的场景中,模板字符串可能会展现出一定的优势。不过,在实际开发中,性能并非是选择使用哪种字符串的唯一考量因素,代码的可读性、可维护性以及开发效率等同样重要。
|
3月前
|
存储 Linux C语言
【C++基础】数据类型详解
这篇文章详细介绍了C++中各种基本数据类型,包括整型、浮点型、字符型、字符串型和布尔型,以及它们的使用方式和范围。
35 4
|
7月前
|
数据处理 Python
不同类型数据间的混合运算
在编程和数据处理中,我们经常需要处理不同类型的数据,如整数、浮点数、字符串等。当这些不同类型的数据需要进行混合运算时,我们需要特别注意数据类型之间的转换和运算规则。本文将介绍不同类型数据间的混合运算,并附上相应的代码示例。
141 0
|
C#
57【C#基础】C#数据类型总结
【C#基础】C#数据类型总结
68 0
C#基础Ⅲ-数据类型
C#基础Ⅲ-数据类型
|
C语言 C++
C++——数据类型之间的转换
C++——数据类型之间的转换
|
存储 安全 Java
【C#基础】C# 数据类型总结
编程语言 C# 数据类型的介绍 。
108 0
【C#基础】C# 数据类型总结