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

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

3天内不再提示

如何通过NoC 从 Versal应用处理单元访问AXI BRAM

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-11-11 09:09 次阅读

本篇博文旨在演示如何通过 NoC 从 Versal 应用处理单元 (APU) 访问 AXI BRAM。

设计示例是使用 Vivado 2020.2 版本创建的,评估板使用的是 VCK190 评估板。

Versal

Versal 架构将“Scalar Engine”(标量引擎)、“Adaptable Engine”(自适应引擎)和“Intelligent Engine”(智能引擎)这三种不同类型的引擎与丰富的连接和通信功能以及片上网络 (NoC) 有机结合,从而支持实现覆盖整个器件的无缝式存储器映射访问。

智能引擎包括:

SIMD VLIW AI 引擎,适用于自适应推断和高级信号处理计算

DSP 引擎,适用于定点运算、浮点运算和复杂的 MAC 运算。

自适应引擎将可编程逻辑块与存储器有机结合,它具备专为应对高计算密度需求而设计的架构。
标量引擎包括 Arm Cortex-A72 和 Cortex-R5 处理器,支持计算密集型任务。

片上网络 (NoC)

片上网络 (NoC) 是一个 AXI 互连网络,用于在可编程逻辑 (PL)、处理器系统 (PS) 和其它硬核块中的 IP 端点之间共享数据。
此基础架构覆盖整个器件,基于专有的切换开关形成高速集成的数据路径。

模块框图

de6089de-6158-11ed-8abf-dac502259ad0.png

Vivado 步骤

步骤 1:

以 VCK190 评估板为目标创建工程,并在 IP integrator 内创建块设计。
步骤 2:

添加 versal_cips IP (Control, Interfaces and Processing System),并运行块自动化设置。在设置中配置 NoC 的存储器控制器 (DDR4),并将 PL 时钟和 PL 复位的数量配置为 1。

de8fb5e2-6158-11ed-8abf-dac502259ad0.png

步骤 3:

双击打开 NoC IP,在“General”(常规)选项卡中进行以下设置:
Number of AXI Master Interfaces(AXI 主接口数)= 1
Number of AXI Clocks(AXI 时钟数)= 7

deaab374-6158-11ed-8abf-dac502259ad0.png

步骤 4:

转至“Connectivity”(连接)选项卡,检查 S0xAXI 与 M00_AXI 之间的连接,然后单击“OK”(确定)。

dec31e32-6158-11ed-8abf-dac502259ad0.png

步骤 5:

将 AXI BRAM 添加到块设计中,单击“Run Connection Automation”(运行自动连接),然后选中 pl_clk0 作为从接口的时钟源。

def79784-6158-11ed-8abf-dac502259ad0.png

步骤 6:

再次运行“Run Connection Automation”,配置 ext_reset_in接口。

df2056ce-6158-11ed-8abf-dac502259ad0.png

步骤 7:

运行“validation”(确认)步骤,确认成功后,检查“Address Editor”(地址编辑器)选项卡。

df46133c-6158-11ed-8abf-dac502259ad0.png

步骤 8:

为 BD 创建顶层文件,运行综合与实现,然后生成器件镜像。

步骤 9:

导出硬件设计以获取 XSA 文件。

Vitis 步骤

步骤 1:

在 Vitis 中创建新的应用工程,然后切换至“Create a new platform from hardware”(基于硬件创建新平台)选项卡。
单击“+”,选择从 Vivado 导出的 XSA 文件。

e08c1818-6158-11ed-8abf-dac502259ad0.png

步骤 2:

提供工程名称,并选择处理器。

e0a9e37a-6158-11ed-8abf-dac502259ad0.png

步骤 3:

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

e0bf4f62-6158-11ed-8abf-dac502259ad0.png

代码修改

创建完应用工程后,在 main.c 中修改代码对 AXI BRAM进行读写。
Xil_Out64 函数用于将数据写入 64 位地址,而Xil_In32 函数则用于地址中读取 32 位数据。
示例:

写入数据 API

Xil_Out64(bram_address_write,write_data);

读取数据 API

read_data=Xil_In32(bram_address_read);

代码快照:

e15c7a44-6158-11ed-8abf-dac502259ad0.png

运行设计
连接到VCK190 评估板,并设置启动模式为 JTAG 启动模式,然后运行应用。
控制台输出示例:

e17b1508-6158-11ed-8abf-dac502259ad0.png

审核编辑:郭婷

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

    关注

    552

    文章

    7962

    浏览量

    348195
  • 引擎
    +关注

    关注

    1

    文章

    360

    浏览量

    22528
收藏 人收藏

    评论

    相关推荐

    OMAP5912应用处理器数据表

    电子发烧友网站提供《OMAP5912应用处理器数据表.pdf》资料免费下载
    发表于 08-07 09:16 0次下载
    OMAP5912应<b class='flag-5'>用处理</b>器数据表

    Xilinx NVMe AXI4主机控制器,AXI4接口高性能版本介绍

    NVMe AXI4 Host Controller IP可以连接高速存储PCIe SSD,无需CPU,自动加速处理所有的NVMe协议命令,具备独立的数据写入和读取AXI4接口,不但适用高性能、顺序
    的头像 发表于 07-18 09:17 469次阅读
    Xilinx NVMe <b class='flag-5'>AXI</b>4主机控制器,<b class='flag-5'>AXI</b>4接口高性能版本介绍

    SoC设计中总线协议AXI4与AXI3的主要区别详解

    AXI4和AXI3是高级扩展接口(Advanced eXtensible Interface)的两个不同版本,它们都是用于SoC(System on Chip)设计中的总线协议,用于处理器和其它外设之间的高速数据传输。
    的头像 发表于 05-10 11:29 6007次阅读
    SoC设计中总线协议<b class='flag-5'>AXI</b>4与<b class='flag-5'>AXI</b>3的主要区别详解

    基于FPGA设计的BRAM内部结构

    再看末级触发器对BRAM时序性能的影响,下图依次展示了7系列FPGA、UltraScale+和Versal芯片在未使用和使用末级触发器两种情形下时钟到输出的延迟。
    发表于 04-25 10:42 375次阅读
    基于FPGA设计的<b class='flag-5'>BRAM</b>内部结构

    NoC DDRMC LPDDR4上运行AMD Versal™ Adaptive SoC DCMAC设计示例

    注释:默认 DCMAC 设计示例不包含 NoC DDRMC
    的头像 发表于 04-24 09:44 744次阅读
    <b class='flag-5'>NoC</b> DDRMC LPDDR4上运行AMD <b class='flag-5'>Versal</b>™ Adaptive SoC DCMAC设计示例

    FPGA通过AXI总线读写DDR3实现方式

    AXI总线由一些核心组成,包括AXI处理器接口(AXI4)、AXI处理器到协
    发表于 04-18 11:41 1207次阅读

    用于高级应用处理器的电源管理单元LP3971数据表

    电子发烧友网站提供《用于高级应用处理器的电源管理单元LP3971数据表.pdf》资料免费下载
    发表于 04-02 15:23 0次下载
    用于高级应<b class='flag-5'>用处理</b>器的电源管理<b class='flag-5'>单元</b>LP3971数据表

    用于高级应用处理器的电源管理单元LP3972数据表

    电子发烧友网站提供《用于高级应用处理器的电源管理单元LP3972数据表.pdf》资料免费下载
    发表于 04-02 15:21 0次下载
    用于高级应<b class='flag-5'>用处理</b>器的电源管理<b class='flag-5'>单元</b>LP3972数据表

    AMD Versal AI Edge自适应计算加速平台之PL通过NoC读写DDR4实验(4)

    Versal的DDR4是通过NoC访问,因此需要添加NoC IP进行配置。
    的头像 发表于 03-22 17:18 2080次阅读
    AMD <b class='flag-5'>Versal</b> AI Edge自适应计算加速平台之PL<b class='flag-5'>通过</b><b class='flag-5'>NoC</b>读写DDR4实验(4)

    【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍(2)

    【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍,以及Versal 芯片开发流程的简介。
    的头像 发表于 03-07 16:03 960次阅读
    【ALINX 技术分享】AMD <b class='flag-5'>Versal</b> AI Edge 自适应计算加速平台之 <b class='flag-5'>Versal</b> 介绍(2)

    AMD Versal AI Edge自适应计算加速平台之Versal介绍(2)

    Versal 包含了 Cortex-A72 处理器和 Cortex-R5 处理器,PL 端可编程逻辑部分,PMC 平台管理控制器,AI Engine 等模块,与以往的 ZYNQ 7000 和 MPSoC 不同,
    的头像 发表于 03-06 18:12 1385次阅读
    AMD <b class='flag-5'>Versal</b> AI Edge自适应计算加速平台之<b class='flag-5'>Versal</b>介绍(2)

    Versal FPGA中的浮点计算单元DSPFP32介绍

    Versal FPGA中最新的DSP原语DSP58,它在最新的DSP48版本上已经有了许多改进,主要是27x18有符号乘法器和48位后加法器增加到了27x24和58位。
    的头像 发表于 02-22 09:22 1364次阅读
    <b class='flag-5'>Versal</b> FPGA中的浮点计算<b class='flag-5'>单元</b>DSPFP32介绍

    谈存储芯片的演进之路

    NoC的角度来看,我觉得有趣的是,你必须优化这些路径,处理器到NoC通过控制器
    发表于 01-24 11:46 366次阅读

    FPGA实现基于Vivado的BRAM IP核的使用

    Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM IP核的使用。 BRAM是FPGA
    的头像 发表于 12-05 15:05 1546次阅读

    XILINX FPGA IP之AXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互连以及其他AXI4系统外设上生成特定序列(流量)。它根据IP的编程和选择的操作模式生成各种类型
    的头像 发表于 11-23 16:03 2338次阅读
    XILINX FPGA IP之<b class='flag-5'>AXI</b> Traffic Generator