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

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

3天内不再提示

XRT_Kernel与XRT_IP介绍

XILINX开发者社区 来源:XILINX开发者社区 作者:Yang Chen 2022-07-04 11:09 次阅读

本文作者:赛灵思工程师 Yang Chen

从2020.2开始,XRT提供了新的Native API,以区别行业标准OpenCL API的,在FPGA加速应用上,两者都是可以使用的。XRT Native API的优势是更加契合FPGA加速应用,而OpenCL的优势则是平台通用性比较好。

XRT Native API里面有两个API比较有意思,可能会产生混淆,一个是xrt_kernel,另一个是xrt_ip。IP这个概念,在FPGA中还是比较常用的,典型的就是IP catalog里面的IP,当然这次讲到的IP更倾向于custom IP,即用户自定义IP(以下略作IP)。无论使用Vitis_hls, V++,Package_xo中哪种生成方法,最后生成的kernel的端口类型都是固定的,另外控制端口AXI_LITE的寄存器配置也是保持固定的(当然会因参数数量不同而变化)。

截取以下网址-page 274 S_AXILITE Control Register Map作参考:

(https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_2/ug1399-vitis-hls.pdf )

97321a98-f21b-11ec-ba43-dac502259ad0.png

这些寄存器设置都是工具自动生成的,用户不需要进行修改。具体这些信号是如何让控制这些模块的,以后有机会可以再讲。那么如果有些需求是,我是一名RTL设计者,设计里面有Xilinx IP需要配置功能,我想用更多一点的寄存器空间作额外配置,现有的寄存器空间不够,不能满足我的要求:假设,一个IP中内嵌了一个axi_timer IP(截图取自:https://www.xilinx.com/support/documentation/ip_documentation/axi_timer/v2_0/pg079-axi-timer.pdf page 12)

那么我该如何配置它呢?

97624f06-f21b-11ec-ba43-dac502259ad0.png

这时,之前提到xrt_ip就可以派上用场了,用户可以自己定制控制寄存器而不用受限于规定的control register map,当然端口类型还是需要按照kernel的要求来设计。沿用上述的寄存器配置,我们可以额外地添加寄存器:

97785fe4-f21b-11ec-ba43-dac502259ad0.png

所以我们可以看到,kernel应该算IP中的一个子集,只是IP的话更加的灵活些。但是由于IP控制寄存器配置的不固定,导致xrt无法自动管理IP(不知道哪个寄存器代表的含义),所以只能提供了寄存器接口让用户自己访问控制。从这方面来说,使用的便利性会降低,无论是IP的启动停止,还是寄存器配置都需要用户来控制。相对来说,xrt_kernel匹配的set_arg,run,wait等操作,它能够代替用户做一些底层操作,更加地省时省力。

原文标题:开发者分享|XRT Native API: XRT_Kernel & XRT_IP 介绍

文章出处:【微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

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

    关注

    1625

    文章

    21664

    浏览量

    601679
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119981
  • IP
    IP
    +关注

    关注

    5

    文章

    1643

    浏览量

    149323
  • API
    API
    +关注

    关注

    2

    文章

    1484

    浏览量

    61802
  • Kernel
    +关注

    关注

    0

    文章

    48

    浏览量

    11136

原文标题:开发者分享|XRT Native API: XRT_Kernel & XRT_IP 介绍

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Vivado中FFT IP核的使用教程

    本文介绍了Vidado中FFT IP核的使用,具体内容为:调用IP核>>配置界面介绍>>IP核端口介绍
    的头像 发表于 11-06 09:51 330次阅读
    Vivado中FFT <b class='flag-5'>IP</b>核的使用教程

    如何申请xilinx IP核的license

    在使用FPGA的时候,有些IP核是需要申请后才能使用的,本文介绍如何申请xilinx IP核的license。
    的头像 发表于 10-25 16:48 192次阅读
    如何申请xilinx <b class='flag-5'>IP</b>核的license

    动态住宅IP的奥秘与科技魅力# IP代理

    IP
    jf_62215197
    发布于 :2024年08月14日 07:22:06

    如何使用代理IP转换国外IP

    IP
    jf_62215197
    发布于 :2024年07月17日 07:33:17

    介绍如何使用海外住宅IP培养海外社交媒体账号#海外住宅IP

    IP
    jf_62215197
    发布于 :2024年06月25日 07:12:30

    介绍如何切换动静态IP方法 # 全球ip代理#静态IP

    IP
    jf_62215197
    发布于 :2024年06月06日 08:45:01

    选择合适的海外IP代理?#全球ip代理 #海外代理ip排行榜

    IP
    jf_62215197
    发布于 :2024年04月25日 06:44:36

    OpenVINO™协同Semantic Kernel:优化大模型应用性能新路径

    作为主要面向 RAG 任务方向的框架,Semantic Kernel 可以简化大模型应用开发过程,而在 RAG 任务中最常用的深度学习模型就是 Embedding 和 Text completion,分别实现文本的语义向量化和文本生成
    的头像 发表于 03-08 10:41 625次阅读
    OpenVINO™协同Semantic <b class='flag-5'>Kernel</b>:优化大模型应用性能新路径

    OpenCL多Kernel并行计算结果讨论分析

    : 第二次实验修改了Kernel的例化方式,main函数端使用计算单元名称将连接相同的CU(对称计算单元)整合到一组中,让xrt自动调度: `// std::vector<cl
    发表于 12-31 21:31

    kernel到android核心启动过程

    总结一个图:kernel 到android核心启动过程 kernel镜像执行跳转到start_kernel开始执行,在rest_init会创建两个kernel 进程(线程),其分别是为
    的头像 发表于 12-04 16:59 883次阅读
    <b class='flag-5'>kernel</b>到android核心启动过程

    kernel的启动分为哪两个阶段

    kernel的启动主要分为两个阶段。 1、阶段一 从入口跳转到start_kernel之前的阶段。 对应代码arch/arm/kernel/head.S中stext的实现: ENTRY (stext
    的头像 发表于 12-04 16:45 608次阅读

    kernel日志写入logd介绍

    kernel日志写入logd介绍 通过logcat命令获取kernel日志比较特殊,故作为一个例子进行梳理。 2.3.1 整体流程 2.3.2 命令打印kernel日志 通过logca
    的头像 发表于 11-23 17:11 639次阅读
    <b class='flag-5'>kernel</b>日志写入logd<b class='flag-5'>介绍</b>