全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 通信网络 >

如何通过NoC从Versal™应用处理单元(APU)访问AXI B

时间:2023-03-13 10:23

人气:

作者:admin

标签: 存储器  APU  dsp  NoC  BRAM 

导读:Versal 架构将“Scalar Engine”(标量引擎)、“Adaptable Engine”(自适应引擎)和“Intelligent Engine”(智能引擎)这三种不同类型的引擎与丰富的连接和通信功能以及片上网络 (NoC) 有机结合...

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 端点之间共享数据。

此基础架构覆盖整个器件,基于专有的切换开关形成高速集成的数据路径。

模块框图

280f288c-bf9c-11ed-bfe3-dac502259ad0.png

Vivado 步骤

步骤 1:

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

步骤 2:

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

2830b4f2-bf9c-11ed-bfe3-dac502259ad0.png

步骤 3:

双击打开 NoC IP,在“General”(常规)选项卡中进行以下设置:

Number of AXI Master Interfaces(AXI 主接口数)= 1

Number of AXI Clocks(AXI 时钟数)= 7

284e606a-bf9c-11ed-bfe3-dac502259ad0.png

步骤 4:

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

286ba210-bf9c-11ed-bfe3-dac502259ad0.png

步骤 5:

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

2888bb2a-bf9c-11ed-bfe3-dac502259ad0.png

步骤 6:

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

28a81b14-bf9c-11ed-bfe3-dac502259ad0.png

步骤 7:

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

28c55a44-bf9c-11ed-bfe3-dac502259ad0.png

步骤 8:

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

步骤 9:

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

Vitis 步骤

步骤 1:

在 Vitis 中创建新的应用工程,然后切换至“Create a new platform from hardware”(基于硬件创建新平台)选项卡。

单击“+”,选择从 Vivado 导出的 XSA 文件。

28efc694-bf9c-11ed-bfe3-dac502259ad0.png

步骤 2:

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

29045172-bf9c-11ed-bfe3-dac502259ad0.png

步骤 3:

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

292476a0-bf9c-11ed-bfe3-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);

代码快照:

2953da8a-bf9c-11ed-bfe3-dac502259ad0.png

运行设计

连接到VCK190 评估板,并设置启动模式为 JTAG 启动模式,然后运行应用。

控制台输出示例:

297b24f0-bf9c-11ed-bfe3-dac502259ad0.png






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信