基于ZCU104的PS和PL数据交互例程(四):vivado中制作Block Design

基于ZCU104的PS和PL数据交互例程(四):vivado中制作Block Design

基于ZCU104的PS和PL数据交互例程(一):简介
基于ZCU104的PS和PL数据交互例程(二):vivado中封装现有工程成IP
基于ZCU104的PS和PL数据交互例程(三):vivado中创建IP
基于ZCU104的PS和PL数据交互例程(四):vivado中制作Block Design
基于ZCU104的PS和PL数据交互例程(五):Petalinux流程
基于ZCU104的PS和PL数据交互例程(六):上板流程
基于ZCU104的PS和PL数据交互例程(七):驱动编写与测试

1.设计架构

本次工程的架构设计思路如下

  1. PS与PL交互数据总共分为两类,第一类是控制信号,第二类是数据信号。这里第一类控制信号走AXI4-LITE,第二类数据信息走CDMA
  2. 整体数据流程
    1. PS端开始任务后,首先通过CDMA把初始数据送到BRAM_INIT
    2. 初始数据传输完成后,PS端通过AXI4-LITE给控制器发送初始数据加载完成信号
    3. 拿到PS给的初始数据完成信号后,控制器发送Start_DUT信号给DUT
    4. DUT通过BRAM_INIT_Port读取BRAM_INIT中的数据(这里按照自己DUT的逻辑读取即可)
    5. DUT读取完数据后,开始计算
    6. DUT计算完成后,把结果数据通过BRAM_RES_Port写到BRAM-RES
    7. DUT发送DUT_Finish信号给控制器
    8. 控制器通过AXI4-LITE发送PL处理结束信号
    9. PS端拿到PL处理结束信号后,通过CDMA把结果数据从BRAM_RES中读走
    10. 完成一次交互逻辑,后续重复操作

架构图

2.vivado中BD设计

参考block design的设计流程,这里给出完成的工程

封装IP的详细流程见另外两篇博客
基于ZCU104的PS和PL数据交互例程(二):vivado中封装现有工程成IP
基于ZCU104的PS和PL数据交互例程(三):vivado中创建IP

新建工程之后,选择zcu104板卡

点击Settings把准备好的IP路径加入进来

image-20231021173808914

点击新建block design

image-20231021173644326

配置PS的IP

然后加入PS端的IP

image-20231021173926506

点击Run Block Automation,会自动配置PS端

image-20231021173953805

然后双击PS端,进行特殊配置

DDR配置,根据ZCU104的User Guide,这里选择后缀为083E的型号

image-20231021174327088

PS与PL端口配置,master接口1个,slave接口1个

image-20231021174433422

默认PS给PL的时钟是100M,中断引脚打开,所以我们不再修改,完成配置

添加BRAM的IP

image-20231021174725502

配置成真双口,这里要注意BRAM的数据位宽和地址,这里数据位宽是32bit,跟DUT里面一致,就不再修改。依次加入BRAM_INIT和BRAM_RES

image-20231021175105849

添加bram controller

image-20231021175220918

这里给BRAM_RES和BRAM_INIT每个都配置一个bram controller,所以bram controller配置成一个接口就行

image-20231021175325365

目前添加的IP情况如下

image-20231021175503334

添加CDMA

image-20231021175545189

配置如下

image-20231021175558267

后面连接的时候,使用的AXI SmartConnect,这样数据传输更快。

添加自己的IP

添加自己的IP,controller和dut,不需要配置

image-20231021175642797

image-20231021175703336

自动连接IP

点击block design的左上角的Run Connect Automation

按照下图配置

image-20231021180230207

配置BRAM_INT_ctrl

image-20231021180356931

image-20231021180539389

配置BRAM_RES_ctrl

image-20231021180606531

image-20231021180619375

controller和ps的保持默认就行

配置dut的BRAM端口,选择对应的就行

最后点击OK

image-20231021185428565

手动连接

连接clk_PL,start_DUT,DUT_finish,rst_n这些信号

(这里的cdma的中断引脚cdma_introut应该要跟ps的pl_ps_irq连接的,一开始忘记连接了,这里一定要连接上)

image-20231021185610233
在这里插入图片描述

将rst_KEY_PL引出来,通过按键复位。右键rst_KEY_PL,选择Make External

image-20231021185738000

最后点击验证

image-20231021185841802

image-20231021185905904

验证通过后查看地址分配情况,后面Linux下映射虚拟地址到物理地址有用

image-20231021190037488

3.打包BD

在sources页面,右键bd,选择Generate Output Products

image-20231021190130614

image-20231021190216649

完成后,创建顶层文件,如下图选择

image-20231021190408445

image-20231021190446022

4.添加约束文件

set_property PACKAGE_PIN B3 [get_ports rst_KEY_PL_0]
set_property IOSTANDARD LVCMOS33 [get_ports rst_KEY_PL_0]

5.生成比特流

image-20231021190523449

image-20231021213625309

6.导出硬件文件(XSA)

image-20231021213708746

image-20231021213735057

image-20231021213833037

最后成功得到.XSA文件,包含了硬件的信息,后面Petalinux会用

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Vivado Block Design 是一种用于 FPGA 设计的可视化设计工具,可以通过简单的拖拽和连接操作快速设计出复杂的硬件电路。在 Vivado Block Design ,用户可以将不同的硬件模块抽象成一个个 IP 核,并将它们拼接在一起构成一个完整的硬件系统。同时,用户还可以通过 Block Design 来进行 RTL 设计和仿真等工作,提高设计效率和设计质量。 ### 回答2: Vivado Block Design 是 Xilinx 公司的一款图形化设计工具,可以用于 FPGA 的设计和实现。它可以帮助设计人员在不需要编写代码的情况下,通过拖拽和连接各种模块来创建一个完整的 FPGA 设计。 Block Design 的核心组成部分是 IP(Intellectual Property)模块。这些模块提供了各种功能,比如时钟管理、数据传输等,让设计人员能够轻松地将各种模块打包在一起创建一个完整的设计。 使用 Block Design 进行 FPGA 的设计有许多优点。首先,它可以加速设计时间,因为设计人员只需要拖放和连接各种 IP 模块,而无需进行繁琐的手动设计。此外,它还可以提高设计的可重用性和可维护性,使得更容易进行调试和功能升级。 当设计人员使用 Vivado Block Design 时,他们可以从 IP 目录选择不同的 IP 模块。这些 IP 模块既可以是由 Xilinx 公司提供的标准 IP,也可以是用户自己编写的 IP。此外,Block Design 的界面非常简单,任何人都可以在很短的时间内学会如何使用它。 总之,Vivado Block Design 是一款极为强大的 FPGA 设计工具,可以帮助设计人员快速创建高质量的 FPGA 设计。无论是从时间、可重用性还是可维护性来看,它都是一个高效能的工具,值得设计人员掌握和使用。 ### 回答3: Vivado Block Design 是一种基于 IP 核的设计方法,可以在 Vivado 工具创建和管理复杂的 FPGA 系统。它的主要目的是简化 FPGA 设计流程,并提高设计效率和可重用性。 Vivado Block Design 是一个包含多个 IP 核的设计,这些 IP 核可以通过拖放和连接,用于创建复杂的逻辑系统。在 Vivado Block Design ,设计人员可以通过 IP Integrator 界面来方便的建立复杂的硬件系统,并在此界面上建立各个 IP 和他们的连接方式。这种方法可以减少硬件设计人员的工作量,也可以增加他们的创作灵活性,进一步优化设计效率。 此外,Vivado Block Design 还具有简单且易于维护的特性。在设计过程,设计人员可以将设计分成多个模块,从而提高设计的可重用性。这使得修改和维护单个模块成为可能,而不必打破系统整体功能。这也是一种很好的方式,可以使 FPGAs 设计团队更为高效地协作。 总之,Vivado Block设计是一种快速、高效设计FPGA System的方法,它极大地降低了硬件开发周期和成本。通过掌握Vivado Block Design的技术,设计人员可以更好地管理系统设计的细节,并快速地创建可以满足应用需求的硬件系统。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水流water

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值