
HLS
这个专栏将描述我学习HLS工具的方法。HLS工具在FPGA与IC设计过程中的优势已经慢慢体现了出来,值得大家学习。
朽月
苏州大学信息与通信工程专业研究生,研究方向自适应信号处理,擅长信号处理算法的FPGA实现,对信号处理与FPGA技术有浓厚兴趣。21年将就职于恩智浦,职业方向为SOC设计工程师。希望大家共同进步。
展开
-
VIVADO HLS函数层面的优化
VIVADO HLS函数层面的优化参考文献项目简述数据类型对函数实现inline操作函数的Allocation操作函数的dataflow操作总结参考文献[1]、lauren的FPGA(微信公众号)项目简述这篇文章简单从函数层面描述HLS约束的方法有哪些,进一步的掌握HLS的约束方法。数据类型要尽量使用任意精度数据类型。例子如下:对函数实现inline操作inline:将简单的函数进行合并。例子如下:阻止inline的方法如下:可以看出把inline关掉的话,相应的资源与吞吐率得到原创 2020-07-19 16:37:43 · 851 阅读 · 0 评论 -
VIVADO HLS数组的优化
VIVADO HLS数组的优化项目简述数组的分割对数组采用Partition展开操作对一维数组采用Partition展开操作对多维数组采用Partition展开操作数组的映射和重组数组的MAP数组的ARRAY_RESHAPE总结项目简述前面一篇文章,我们已经进行了讲解软件程序中最重要的两个指标是时间复杂度、空间复杂度。上面循环语句的优化主要体现在时间复杂度的优化,那么这篇文章我们将着重于空间复杂度的优化。时间复杂度体现在循环语句上面,而空间复杂度则体现在数组上面,所以这篇文章我们将讲解VIVADO HL原创 2020-07-19 16:06:36 · 3553 阅读 · 0 评论 -
VIVADO HLS循环语句的优化
VIVADO HLS循环语句的优化参考文献项目描述for循环的衡量指标对for循环设置Pipeline操作对for循环设置Unrolling操作for循环的合并对于两个完全并列的for循环约束方法——合并for循环对于并列for循环的循环边界为不同常数的循环合并对于并列for循环的循环边界一个为常数一个为变量的合并对于并列for循环的循环边界两个均为变量的合并for循环的优化——dataflowfor循环的结果被另外多个for循环使用,为了使用dataflow解决办法另一个不能使用dataflow的例子及解原创 2020-07-19 12:43:09 · 2458 阅读 · 0 评论 -
VIVADO HLS的接口描述
VIVADO HLS的接口描述参考文献项目描述基本介绍顶层函数握手信号ap_ctrl设置Port-leve I/O参考文献[1]、lauren的FPGA(微信公众号)项目描述我们在进行HLS编译的时候会设置顶层文件,顶层文件中包括形参、返回值等等。这些映射到硬件电路中会产生信号,这些信号具体又遵循什么样的接口描述我们需要设置,这不仅可以帮助我们设置更优的约束条件使得编译出来的硬件电路更加完美,更重要的是可以让我们精确了解端口所遵循的时序,只有这样我们才可以控制输入输出数据流,进而完成一定的功能。另一原创 2020-07-18 20:23:23 · 3478 阅读 · 4 评论 -
Vivado HLS中的数据类型
Vivado HLS中的数据类型参考文献项目简述为什么在VIVADO HLS中使用任意精度数据类型VIVADO HLS中如何使用任意精度数据类型VIVADO HLS中数据类型的转换VIVADO HLS中的复合数据类型参考文献[1]、lauren的FPGA(微信公众号)[2]、小鱼FPGA(微信公众号)项目简述我们知道C、C++中数据类型的大小都是以字节为单位,这在FPGA中式相当浪费资源,因为只能式8bit的整数倍。所以在VIVADO HLS中我们需要具体指定每个数据类型的位宽,比如5位、10位。原创 2020-07-16 17:04:29 · 3452 阅读 · 0 评论 -
高层次综合(HLS)常用时间术语的解释
高层次综合(HLS)常用时间术语的解释参考文献项目简述HLS工作原理高层次综合(HLS)指标总结参考文献[1]、小鱼FPGA(微信公众号)[2]、lauren的FPGA(微信公众号)项目简述前面一篇关于HLS的文章,我们已经进行了讲解,我们学习HLS并不是为了学习C、C++代码如何编写。我们是为了学习如何使用HLS进行加速,将高层次代码编译成底层逻辑。那么编译的好坏必然会引入一些指标,接下来我们将对这些指标进行进一步的说明,以便大家可以理解HLS设计。HLS工作原理进行HLS约束的主要原理如下原创 2020-07-16 14:55:47 · 4857 阅读 · 1 评论 -
学习XILINX HLS工具的官方资料
学习XILINX HLS工具的官方资料参考文献项目简述官方学习资料Xilinx官方教程总结参考文献[1]、小鱼FPGA(微信公众号)项目简述HLS工具是Xilinx官方发布的一个高层次综合工具,可以把用C、C++、System C编写的程序装换成HDL代码。并且给出一些策略,这些策略可以使得编译出来的HDL代码在面积与速度之间取得平衡,从而达到设计者的设计要求。现在市面上面关于HLS的资料比较少,已知的有米联客的教程,但是上面的教程并没有着重讲解HLS本身,反而讲了一些算法,至于为什么对C++代码进原创 2020-07-13 13:07:39 · 2812 阅读 · 0 评论