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
    +关注

    关注

    1602

    文章

    21302

    浏览量

    593109
  • 寄存器
    +关注

    关注

    30

    文章

    5025

    浏览量

    117706
  • IP
    IP
    +关注

    关注

    5

    文章

    1402

    浏览量

    148267
  • API
    API
    +关注

    关注

    2

    文章

    1380

    浏览量

    60983
  • Kernel
    +关注

    关注

    0

    文章

    48

    浏览量

    11034

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

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

收藏 人收藏

    评论

    相关推荐

    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 208次阅读
    <b class='flag-5'>kernel</b>到android核心启动过程

    kernel的启动分为哪两个阶段

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

    kernel日志写入logd介绍

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

    Vitis AI Library体验之OCR识别

    Vitis AI Library是一组高层次库和 API,专为利用 DPU 高效执行 AI 推断而构建。它是基于 Vitis AI运行时利用 Vitis运行时统一 API 来构建的,能够为 XRT 提供完整支持。
    的头像 发表于 10-17 08:23 622次阅读
    Vitis AI Library体验之OCR识别

    瑞芯微RK3568|SDK开发之Kernel编译

    本文介绍了如何使用Kernel手动编译1.1版本,并提供了详细的编译命令和过程。编译过程包括进入Kernel目录、选择默认配置文件和编译镜像等步骤。
    的头像 发表于 09-26 17:21 873次阅读
    瑞芯微RK3568|SDK开发之<b class='flag-5'>Kernel</b>编译

    Xilinx运行时(XRT)发行说明

    电子发烧友网站提供《Xilinx运行时(XRT)发行说明.pdf》资料免费下载
    发表于 09-14 10:01 0次下载
    Xilinx运行时(<b class='flag-5'>XRT</b>)发行说明

    Vivado中BRAM IP的配置方式和使用技巧

    FPGA开发中使用频率非常高的两个IP就是FIFO和BRAM,上一篇文章中已经详细介绍了Vivado FIFO IP,今天我们来聊一聊BRAM IP
    的头像 发表于 08-29 16:41 2968次阅读
    Vivado中BRAM <b class='flag-5'>IP</b>的配置方式和使用技巧

    Linux kernel的kretprobe机制和kprobe有何区别?

    Linux kernel 的 kretprobe 机制和 kprobe 完全不同,本质原因在于,函数的入口地址是固定的,但函数的返回地址不固定,由于返回位置不固定,无法固定函数大小,无法事先插桩。
    的头像 发表于 08-07 09:15 597次阅读
    Linux <b class='flag-5'>kernel</b>的kretprobe机制和kprobe有何区别?

    IP和UDP协议介绍

    电子发烧友网站提供《IP和UDP协议介绍.pdf》资料免费下载
    发表于 07-31 16:51 0次下载
    <b class='flag-5'>IP</b>和UDP协议<b class='flag-5'>介绍</b>

    为Alveo卡安装Xilinx运行时(XRT)需要多长时间?

    安装 XRT 需要一分多钟时间,因为它需要时间来编译驱动程序
    的头像 发表于 07-10 15:57 213次阅读
    为Alveo卡安装Xilinx运行时(<b class='flag-5'>XRT</b>)需要多长时间?

    Linux Kernel Panic的产生的原因?

    明如何确定是哪个源文件的哪一行导致的panic,因此感兴趣的同学可以搜索一些这样的**看看,这里指说明一下解决kernel panic的一般步骤和注意事项。 对于抓取kernel log的方法前面有介绍
    发表于 06-15 06:24

    你知道kernel version的实现原理和细节吗?

    kernel 启动时通常会看到下面第二行信息的内容,它们代表了当前 kernel 的版本、编译工具版本、编译环境等信息。
    的头像 发表于 06-05 14:59 629次阅读
    你知道<b class='flag-5'>kernel</b> version的实现原理和细节吗?

    kernel执行第一个init应用程序的实现原理

    Linux系统启动过程中通过`init_task`创建0号idle进程。然后通过`kernel_thread`创建1号init进程。
    的头像 发表于 06-05 14:53 499次阅读
    <b class='flag-5'>kernel</b>执行第一个init应用程序的实现原理

    TQT507如何更换启动logo(包括uboot和kernel)

    T507 logo使用bmp格式,已实现uboot到kernel的连续显示。
    的头像 发表于 04-28 08:57 381次阅读
    TQT507如何更换启动logo(包括uboot和<b class='flag-5'>kernel</b>)