0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Pynq是不是用Python编程FPGA的新物种?

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-07-23 09:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

Pynq是不是用Python编程FPGA的新物种?

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

因为在2月28日,Vitis HLS工具前端开源了!!!

0c52d0ba-0a22-11ed-ba43-dac502259ad0.png

这是Xilinx的开源战略和承诺的一部分,通过Vitis HLS工具链前端开源可以

Add support for new high-level languages beyond C/C++ and OpenCL

Add new domain-specific optimization pragmas or compiler directives

Customize the transformations to the LLVMIR (new LLVM passes)

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

例如,自定义语言支持和全新特定于应用的编译器指令,以及更多的可能性。

0c63251e-0a22-11ed-ba43-dac502259ad0.png

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

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

因此可通过结合最新的HLS优化(例如用于脉动阵列的PolySA和用于模板的SODA与数据流体系结构),产生高效的空间体系结构。

0c7723d4-0a22-11ed-ba43-dac502259ad0.png

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22503

    浏览量

    639281
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

    90307
  • PYNQ
    +关注

    关注

    4

    文章

    62

    浏览量

    3389

原文标题:PYNQ框架下用Python编程FPGA不是梦-Vitis HLS前端开源

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用Python/MyHDL创建自定义FPGA IP

    使用 Python/MyHDL 创建自定义 FPGA IP,与 Vivado 集成,并通过 PYNQ 进行控制——实现软件上的简单硬件设计。
    的头像 发表于 04-09 09:53 225次阅读
    使用<b class='flag-5'>Python</b>/MyHDL创建自定义<b class='flag-5'>FPGA</b> IP

    FPGA 入门必看:Verilog 与 VHDL 编程基础解析!

    很多开发者第一次接触FPGA,都会有同样的疑问:FPGA是硬件,不是软件,怎么写程序?答案就是硬件描述语言(HDL),最常用的就是Verilog和VHDL。今天,我们就带你入门,搞清
    的头像 发表于 01-19 09:05 717次阅读
    <b class='flag-5'>FPGA</b> 入门必看:Verilog 与 VHDL <b class='flag-5'>编程</b>基础解析!

    CW32F030是不是支持keil?

    各位大佬,请问CW32F030是不是支持keil 啊?
    发表于 01-19 07:02

    Python中借助NVIDIA CUDA Tile简化GPU编程

    NVIDIA CUDA 13.1 版本新增了基于 Tile 的GPU 编程模式。它是自 CUDA 发明以来 GPU 编程最核心的更新之一。借助 GPU tile kernels,可以比 SIMT
    的头像 发表于 12-13 10:12 1430次阅读
    在<b class='flag-5'>Python</b>中借助NVIDIA CUDA Tile简化GPU<b class='flag-5'>编程</b>

    请问使用ChirpIoT 是不是可以实现mesh组网?

    使用ChirpIoT 是不是可以实现mesh组网?
    发表于 12-11 06:58

    使用L031封装是20pin的,是不是不需要外置晶振就可以

    使用L031封装是20pin的,是不是不需要外置晶振就可以?如果想用外置晶振有参考配置吗?
    发表于 12-08 08:27

    cw32L系列是不是用不了JTAG?只是SWD接口?

    cw32L系列是不是用不了JTAG?只是SWD接口?
    发表于 12-08 06:21

    ALINX教程分享_Zynq UltraScale+ MPSoC PYNQ3.1.2移植

    本教程在 Ubuntu22.04.1 虚拟机中安装了 Xilinx 2024.1 的开发环境,基于该环境从源码编译 PYNQ 3.1.2 工程,生成能够在 ALINX AXU15EGB 开发板上运行的 PYNQ 系统镜像。
    的头像 发表于 11-30 16:06 6129次阅读
    ALINX教程分享_Zynq UltraScale+ MPSoC <b class='flag-5'>PYNQ</b>3.1.2移植

    请问IR 调制器是不是复用串口的啊?

    请问,IR 调制器是不是复用串口的啊?
    发表于 11-26 06:36

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python不是 Java? 结论: “调研阶段 Python,上线后如果 QPS 爆表再考虑 Java 重构。” 二、整体架构速览(3 分钟看懂) 三、
    的头像 发表于 10-21 16:59 627次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    请问中断管理机制是所有核都能用吗?如果能是不是可以放进内核管理中?

    在artpi2上面看到的用法。是不是用在其他芯片也可以
    发表于 09-24 07:06

    你错了,AD采集FPGA不是最好的方案!

    在选择FPGA和ARM处理器进行AD数据采集时,没有绝对的“更好”,需根据具体应用场景的需求来判断。以下从核心差异、适用场景、优缺点等方面对比分析,帮助大家选择更合适方案。
    的头像 发表于 09-23 15:22 790次阅读
    你错了,AD采集<b class='flag-5'>用</b><b class='flag-5'>FPGA</b><b class='flag-5'>不是</b>最好的方案!

    对于没有bsp包,也没有芯片创建的功能是不是就不能用rtthread?

    公司的冷门芯片,不能生成BSP包,然后发现芯片创建也没有,是不是不能用rtthreead了?
    发表于 09-23 08:27

    基于FPGA的压缩算法加速实现

    法的速度。我们将首先使用C语言进行代码实现,然后在Vivado HLS中综合实现,并最终在FPGA板(pynq-z2)上进行硬件实现,同时于jupyter notebook中使用python来进行功能验证。
    的头像 发表于 07-10 11:09 2595次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法加速实现

    CYUSB3014使用块传输和使用流传输,可达到的最大吞吐率是不是差很多?

    先问,使用块传输和使用流传输,可达到的最大吞吐率是不是差很多? 我的应用是这样的,FPGA通过3014传送数据,每150us传输两个包的数据,每个包1024个字节,上位机程序一直循环接收,实际的传输
    发表于 05-08 06:33