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

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

3天内不再提示

如何导出IP以供在 Vivado Design Suite 中使用

OpenFPGA 来源:OpenFPGA 作者:Aoife Marsh 2022-07-08 09:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在 AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介中,使用 C 语言在 HLS 中创建包含 AXI4-Lite 接口的 IP。

在本篇博文中,我们将学习如何导出 IP 以供在 Vivado Design Suite 中使用、如何将其连接到其它 IP 核与处理器以及如何在板上运行工程。

本篇博文将分为 3 个部分:

1. 从 Vitis HLS 导出 IP。

2. 使用Vivado Design Suite创建硬件。

3. 在Vitis 统一软件平台中编写软件并在板上运行。

01

导出 IP

在AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介中(AXI 第六讲请回复本公众号AXI 获得),我们创建了 1 个包含 AXI4-Lite 接口的 IP。如果要把新 IP 连接到任何其它 IP 或者连接到 PS,则首先需要将软件代码综合成 RTL(即,将其转换为硬件)。随后,我们就可以将 RTL IP 导出到 Vivado Design Suite,以便在其中将其连接到其它 IP 核或者连接到 PS。

1.1. 按如下所示编辑代码,然后保存。

int example(char *a, char *b, char *c)

{

#pragma HLS INTERFACE s_axilite port=a bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=b bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=c bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A

*c += *a + *b;

int result = 0;

result = *c;

return result;

}

1.2. 鉴于我们将在板上运行此代码,因此需要将综合设置更改为对应于可用的开发板的设置。

我这里选择的是 Zynq UltraScale+ ZCU106 评估板。要更改所使用的开发板,请转至“解决方案 (Solution) -> 解决方案设置 (Solution Settings) -> 综合设置 (Synthesis Settings)”,然后选择如下所示高亮的“...”即可选择可用的开发板。

3a094bc4-fe56-11ec-ba43-dac502259ad0.png

1.3. 选择屏幕顶部的绿色运行按钮即可运行 C 语言综合。这样即可将代码转换为 RTL:

3a33b27e-fe56-11ec-ba43-dac502259ad0.png

1.4. 完成综合后,您可选择“导出 RTL (ExportRTL)”工具栏按钮,或者也可以单击“解决方案 (Solution) -> 导出 RTL (Export RTL)”以打开“Export RTL”对话框。

3a4941d4-fe56-11ec-ba43-dac502259ad0.png

1.5. 打开的对话框应如下截屏所示。

本文包含有关所有可用选项的详细解释。

选择“配置 (configuration)”选项,为新 RTL IP 添加详细信息。将显示名称更改为“Example”,然后选择“确定 (OK)”。当您在 Vivado Design Suite 中打开自己的 IP 时,将显示此名称。

选择“浏览 (Browse)”按钮以选择 Vivado IP (.zip) 文件的输出位置及其名称。输出的 ZIP 文件将包含您的 RTL IP,您可将其导入 Vivado Design Suite。

3a740efa-fe56-11ec-ba43-dac502259ad0.png

1.6. 等待工具完成导出,然后打开 Vivado Design Suite。选择“创建新工程”选项:

3a893f82-fe56-11ec-ba43-dac502259ad0.png

1.7. 对于后续所有其它步骤,请选择“下一步 (Next)”。选择器件时,请务必选择您在创建工程时所选的器件。如果您不确定,可在 Vitis HLS 中的“解决方案设置 (solution settings) -> 综合设置 (synthesis settings)”下找到该器件。如果您选择其它器件,那么将您的 IP 导入 Vivado Design Suite 时可能会出现问题。

最后,选择“完成 (Finish)”以打开空工程。

1.8. 要使用 Vivado 工程中生成的 IP,首先必须将新 IP 存储库添加到 Vivado 工程中。此处所示文件夹包含从 Vitis HLS 导出的 .zip 文件。要添加存储库,请选择“设置 (Settings) -> IP -> 存储库 (Repository)”。选择 + 按钮并在 Vitis HLS 中选择 IP 导出的位置(即,以上第 6 步)。

3a984720-fe56-11ec-ba43-dac502259ad0.png

选择位于对话框底部的“应用 (Apply)”按钮,然后选择“确定 (OK)”。

1.9. 选择 IP 目录 (Select IP Catalog)。现在,您的新存储库应已显示在目录中。

如已成功导入 IP,那么详细信息窗口中所列出的 IP 数量应为“1”。

3ac3b608-fe56-11ec-ba43-dac502259ad0.png

注:如果列出的 IP 数量为 0,那么您可右键单击自己的新存储库并选择“将 IP 添加到存储库中 (Add IP to Repository)”。选择您从 Vitis HLS 导出的 ZIP 文件。随后,存储库中的 IP 数量应已显示为“1”。如果未显示正确数量,请检查您在 Vitis HLS 中所选的板/器件与您在 Vivado 中所使用的是否相同,否则,则表示您的 IP 可能不兼容。

3af1fa40-fe56-11ec-ba43-dac502259ad0.png

1.10. 在 Flow Navigator 中,选择“创建模块设计 (Create Block Design)”。

在显示的选项卡中,选择 + 按钮并搜索您在第 6 步中在 Vitis HLS 中指定的 IP 名称(即,Example)。

3b0c79e2-fe56-11ec-ba43-dac502259ad0.png

祝贺您!您已成功创建了 IP、将其从 Vitis HLS 导出并已添加到 Vivado Design Suite 中的模块设计中。

3b1ae842-fe56-11ec-ba43-dac502259ad0.png

单击 s_axi_BUS_A 旁的 + 按钮即可展开端口。如需获取更多相关信息,请参阅(PG155 )中的 “端口描述”。

3b3023ba-fe56-11ec-ba43-dac502259ad0.png

3b3f62d0-fe56-11ec-ba43-dac502259ad0.png

02

创建硬件

您可能会想要连接到 PS 以便充分利用其功能。添加 PS IP(如 ZCU106 评估板上提供的 Zynq UltraScale+ MPSoC IP)即可支持您执行此操作。如需获取有关 Zynq UltraScale+ MPSoC IP 的更多信息,请扫码参阅:

3b601232-fe56-11ec-ba43-dac502259ad0.png

2.1. 将 Zynq UltraScale+ MPSoC IP 添加到模块框图中。添加完成后,将在屏幕顶部出现一条提示信息。选择“运行自动连接功能 (Run Connection Automation)”。

3b71e43a-fe56-11ec-ba43-dac502259ad0.png

2.2. 这样即可得到如下图示。或者,您可为此 IP 手动添加所有器件,并如该图所示连接这些器件。这样即可得到如下图示:

3b958ade-fe56-11ec-ba43-dac502259ad0.png

2.3. 右键单击“源 (Source)”选项卡下的.bd 以创建 HDL 封装器 (wrapper)。运行综合、运行实现,然后生成比特流。下一步,选择“文件 (File) -> 导出 (Export) -> 导出硬件 (Export Hardware)”。请务必选中包含比特流的选项,并记下所选导出位置。这样即可创建包含所有硬件信息的 XSA 文件。现在,您可以关闭 Vivado。

03

编写软件

鉴于您的硬件已完成创建并导出,我们需要编写软件以向硬件提供操作指示。我们将在Vitis中编写软件。您将需要从赛灵思网站下载 Vitis Core 开发套件(扫码查阅)。

3bba47f2-fe56-11ec-ba43-dac502259ad0.png

3.1. 打开 Vitis。在打开的菜单中,选择“创建平台工程 (Create Platform Project)”。这将生成工程基本信息,我们将在其中添加硬件信息(XSA 文件)并编写一些软件定义。出现提示时,请选中“从 XSA 文件创建 (create from XSA file)”选项。随后,我们需要选择以上步骤 2.3 中的 XSA 文件导出位置。继续完成其它设置,最后单击“完成 (Finish)”。

3.2. 下一步,我们需要创建包含软件的应用工程。它将基于我们的平台工程,因此其中包含我们的硬件信息,并且我们需要使用该应用工程在目标板上运行应用。选择“文件 (File) -> 新建 (New) -> 新建应用工程 (New Application Project)”。

3.3. 出现提示时,选中“选择存储库中的平台 (Select a platform from arepository)”选项。选择步骤 3.1 中创建的平台工程,然后单击“下一步 (Next)”。

3bc7ab18-fe56-11ec-ba43-dac502259ad0.png

3.4. 选择 Hello World 模板,然后单击“完成 (Finish)”。

3becfbfc-fe56-11ec-ba43-dac502259ad0.png

3.5. 现在,Hello World 代码会显示在/src/helloworld.c下。为了执行完整性检查,我们将通过 JTAG 把示例下载到板上,并使用 UART 终端查看 printf 信息。

为此,请连接目标板,并打开终端仿真器软件(例如,Tera Term)以读取输出消息。如果您不知晓如何执行此操作,请参阅板相关的用户指南。 编译并运行程序。正确完成此操作后,您应可在 Tera Term 中看到 Hello World 打印信息。

3.6. 现在,确认板已正确连接后,下一步即可创建使用 HLS IP 的代码。从Vitis_Code.c复制代码(随附于本教程)并将其粘贴到 helloworld.c 中,替换原有 helloworld 代码。

保存,然后重新编译并运行软件。这次 Tera Term 会提示您提供 2 项输入:A 和 B,这 2 项将作为输入一并传递给 HLS IP 中,并显示结果。

注:由于在 Vitis HLS 中,A 和 B 已定义为“char”类型,因此输入的值上限为 127。

3bfd6a64-fe56-11ec-ba43-dac502259ad0.png

示例代码使用由 Vitis 自动创建的函数,因此开发非常便捷。

在名为X.h的文件中以及在/hw/drivers//src 下可找到所使用的函数。

如需获取有关这些函数的详细信息,请扫码参阅。请查看此文件以及该文件夹中的其它相关文件。您可通过编辑这些文件来进一步控制自己的 IP 以及执行中断编程等操作。

3c21a352-fe56-11ec-ba43-dac502259ad0.png

原文标题:开发者分享 | AXI 基础第 6 讲 - 使用 AXI4-Lite 将 Vitis HLS 创建的 IP 连接到 PS

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

审核编辑:彭静

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

    关注

    68

    文章

    20148

    浏览量

    246941
  • 接口
    +关注

    关注

    33

    文章

    9443

    浏览量

    156109
  • 软件
    +关注

    关注

    69

    文章

    5296

    浏览量

    90855
  • Vivado
    +关注

    关注

    19

    文章

    846

    浏览量

    70454

原文标题:开发者分享 | AXI 基础第 6 讲 - 使用 AXI4-Lite 将 Vitis HLS 创建的 IP 连接到 PS

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    vivado中,怎么将e203内核源代码封装成ip核,并添加总线?

    vivado中,怎么将e203内核源代码封装成ip核,并添加总线?
    发表于 11-10 07:22

    vcs和vivado联合仿真

    我们在做参赛课题的过程中发现,上FPGA开发板跑系统时,有时需要添加vivadoip核。但是vivado仿真比较慢,vcs也不能直接对添加了vivado
    发表于 10-24 07:28

    Vivado浮点数IP核的一些设置注意点

    Vivado浮点数IP核的一些设置注意点 我们在vivado2018.3中使用了Floating-point(7.1)IP核,可以自定义其
    发表于 10-24 06:25

    Vivado无法选中开发板的常见原因及解决方法

    在使用 AMD Vivado Design Suite 对开发板(Evaluation Board)进行 FPGA 开发时,我们通常希望在创建工程时直接选择开发板,这样 Vivado
    的头像 发表于 07-15 10:19 1384次阅读
    <b class='flag-5'>Vivado</b>无法选中开发板的常见原因及解决方法

    AMD Vivado Design Suite 2025.1现已推出

    AMD Vivado Design Suite 2025.1 现已推出,支持 AMD Spartan UltraScale+ 和新一代 Versal 器件。这一最新版本还新增了多项功能,可显著提升 Versal SSIT 器件的
    的头像 发表于 06-16 15:16 1204次阅读

    如何使用AMD Vitis HLS创建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 来创建一个 HLS IP,通过 AXI4 接口从存储器读取数据、执行简单的数学运算,然后将数据写回存储器。接着会在 AMD Vivado Design
    的头像 发表于 06-13 09:50 1271次阅读
    如何使用AMD Vitis HLS创建HLS <b class='flag-5'>IP</b>

    如何使用One Spin检查AMD Vivado Design Suite Synth的结果

    本文讲述了如何使用 One Spin 检查 AMD Vivado Design Suite Synth 的结果(以 Vivado 2024.2 为例)。
    的头像 发表于 05-19 14:22 990次阅读
    如何使用One Spin检查AMD <b class='flag-5'>Vivado</b> <b class='flag-5'>Design</b> <b class='flag-5'>Suite</b> Synth的结果

    如何将S32K312 MBDT生成的代码导出到S32 Design Studio?

    Tool”并单击“Build, Deploy Start”后,我的评估板开始正常工作,没有问题。 然后,我导出了 S32 Design Studio 的示例 DIO 项目。我通过单击“File
    发表于 03-20 07:02

    VirtualLab Fusion应用:参数扫描结果的导出

    摘要 为了详细分析光学系统的功能和能力,需要能够改变光学系统的参数。为此,VirtualLab Fusion的参数运行提供了多种选项和可以应用不同的变化策略。不同迭代的结果以方便紧凑的方式提供在参数
    发表于 03-06 08:57

    Vivado FIR IP核实现

    Xilinx的FIR IP核属于收费IP,但是不需要像 Quartus那样通过修改license文件来破解。如果是个人学习,现在网络上流传的license破解文件在破解Vivado的同时也破解
    的头像 发表于 03-01 14:44 2556次阅读
    <b class='flag-5'>Vivado</b> FIR <b class='flag-5'>IP</b>核实现

    AMD Vivado Design Suite IDE中的设计分析简介

    本文档涵盖了如何驱动 AMD Vivado Design Suite 来分析和改善您的设计。
    的头像 发表于 02-19 11:22 904次阅读
    AMD <b class='flag-5'>Vivado</b> <b class='flag-5'>Design</b> <b class='flag-5'>Suite</b> IDE中的设计分析简介

    AMD Versal自适应SoC器件Advanced Flow概览(下)

    在 AMD Vivado Design Suite 2024.2 版本中,Advanced Flow 自动为所有 AMD Versal 自适应 SoC 器件启用。请注意,Advanced Flow
    的头像 发表于 01-23 09:33 1339次阅读
    AMD Versal自适应SoC器件Advanced Flow概览(下)

    Vivado Design Suite用户指南: 设计分析与收敛技巧

    电子发烧友网站提供《Vivado Design Suite用户指南: 设计分析与收敛技巧.pdf》资料免费下载
    发表于 01-15 15:28 2次下载
    <b class='flag-5'>Vivado</b> <b class='flag-5'>Design</b> <b class='flag-5'>Suite</b>用户指南: 设计分析与收敛技巧

    Vivado Design Suite用户指南:逻辑仿真

    电子发烧友网站提供《Vivado Design Suite用户指南:逻辑仿真.pdf》资料免费下载
    发表于 01-15 15:25 0次下载
    <b class='flag-5'>Vivado</b> <b class='flag-5'>Design</b> <b class='flag-5'>Suite</b>用户指南:逻辑仿真

    Vivado之实现布局布线流程介绍

    一、前言 本文将介绍Vivado进行综合,以及布局布线的内部流程,熟悉该流程后结合Settings中对应的配置选项,对于时序收敛调试将更具有针对性。 二、Implementation(实现) 实现
    的头像 发表于 12-06 09:08 2408次阅读
    <b class='flag-5'>Vivado</b>之实现布局布线流程介绍