跳转到主要内容

PYNQ框架下用Python编程FPGA不是梦-Vitis HLS前端开源

judy 提交于

本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/hTmb3sYtfn5jIcFVQjx_qQ"&gt; PYNQ开源社区微信公众号</a></span>

目前,虽然基于C/C++等高层次综合相较于手写RTL层级HDL语言已大幅提升了开发效率,但随着相关技术的不断进步,以及算法迭代的日益频繁,人们似乎并不满足于此。

不少刚刚接触到Pynq的用户第一个问号

<strong>Pynq是不是用Python编程FPGA的新物种?</strong>

在Pynq的FAQ中,我们强调的第一个重点就是PYNQ是一个开源框架而不是一个直接用Python编程FPGA的工具。但是,在不远的将来,我们也许就要修改这条FAQ了。

因为在2月28日,Vitis HLS工具前端开源了!!!
<center><img src="http://xilinx.eetrend.com/files/2021-03/wen_zhang_/100062928-125814-1.p…; alt=""></center>

这是Xilinx的开源战略和承诺的一部分,通过Vitis HLS工具链前端开源可以
<li>Add support for new high-level languages beyond C/C++ and OpenCL</li>
<li>Add new domain-specific optimization pragmas or compiler directives</li>
<li>Customize the transformations to the LLVMIR (new LLVM passes)</li>

这意味着,软硬件开发人员可以灵活地使用标准的 Clang / LLVM 基础架构,支持自由扩展,也可以定制高层次综合 (HLS) 编译过程的前端。

例如,自定义语言支持和全新特定于应用的编译器指令,以及更多的可能性。
<center><img src="http://xilinx.eetrend.com/files/2021-03/wen_zhang_/100062928-125815-2.p…; alt=""></center>

研究人员早就在开始探索增加Python高层次综合。例如2019年,Themefisher和康奈尔大学联合推出了HeteroCL。

HeteroCL是一种编程基础结构,由基于Python的域特定语言(DSL)和编译流程组成,其编译器在CPU上生成LLVM代码.

因此可通过结合最新的HLS优化(例如用于脉动阵列的PolySA和用于模板的SODA与数据流体系结构),产生高效的空间体系结构。
<center><img src="http://xilinx.eetrend.com/files/2021-03/wen_zhang_/100062928-125816-3.p…; alt=""></center>

将来要发生的事情,大家应该都有自己的想象空间了。

感兴趣者可与 pynq_china@xilinx.com 联系,共同合作拓展项目。