Vivado - JTAG to AXI Master (DDR4初始化读写测试)

目录

1. 简介

2. JTAG 直接操作 DDR4

2.1 Block Design

2.2 AXI SmartConnect

2.3 DDR4 MIG

2.3.1 时钟和复位

2.3.2 AXI Slave 接口

2.4 XDC 约束

2.5 TCL 代码

2.5.1 写入 DDR4

2.5.2 读取 DDR4

3. HLS IP 操作 DDR4

3.1 Block Design

3.2 HLS IP

3.2.1 HLS 代码

3.2.2 HLS Report

3.3 TCL 代码

3.3.1 基本 proc

3.3.2 验证写入和读取

3.3.3 执行 HLS IP

4. 格式化显示报告

4.1 report_hw_axi_txn

4.2 保存到本地

4.2.1 带记录功能的读过程

4.2.2 带记录功能的写过程

4.2.3 将记录存储到本地

4.2.4 加载文件到控制台

5. 总结


1. 简介

本文分享了使用 JTAG to AXI Master 调试 DDR4 IP 的全过程。

  • 在 Block Design 中通过 AXI SmartConnect 和 DDR4 MIG 进行地址分配和时钟管理。
  • 对于 AXI SmartConnect 的时钟域管理,分享了同步和异步转换的优缺点,提供了在设计中优化时钟域交叉的方法,以减少延迟和资源消耗。
  • 在 DDR4 MIG 的配置中,本文列出了时钟和复位信号的功能。
  • 分享了 XDC 约束文件。
  • 使用 TCL 脚本实现了对 DDR4 的读写操作,展示了如何通过创建 AXI 事务来进行数据传输。
  • 通过封装 TCL 过程,使得写入和读取操作更加简洁和高效。
  • 使用 HLS IP 初始化,分享内存访问的基本操作方法。
  • 介绍了如何格式化 AXI 事务报告,以及如何将操作记录保存到本地文件中,便于后续的分析和调试。

2. JTAG 直接操作 DDR4

2.1 Block Design

地址分配:

2.2 AXI SmartConnect

  • 默认情况下,SmartConnect 上的所有接口都在相同的时钟域中运行,通过 aclk 引脚接收。
  • 支持多个时钟域(aclk1…aclkn),工具会自动识别并连接到对应的时钟域。
  • 当沿任何 AXI 通道在属于不同时钟域的接口之间交换信息时,时钟转换逻辑会自动插入路径中。
  • 当工具确定时钟域之间的关系是整数比,范围在1:16到16:1之间,并且时钟来自同一时钟源时,工具会自动配置时钟转换器以执行同步转换;否则,时钟转换器配置为异步模式。
  • 当时钟转换器配置为异步模式时,所有时钟域交叉都在 FIFO 生成器核心的底层实例中执行,该核心设计用于在其写入和读取时钟域内部重新同步,无论相位或频率关系如何。在异步模式下,核心会生成适当的仅数据路径的时序约束,以覆盖所有重新同步路径。
  • 时钟转换器会引入延迟。与同步转换相比,异步转换会产生更多延迟并使用更多的逻辑资源。
  • 为了减少系统中的时钟转换器数量,可以级联 AXI SmartConnect 核心实例,将时钟相似的设备组合在一起。例如,将一组低频 AXI4-Lite 从设备连接到低频时钟的单独 AXI SmartConnect 核心,可以将时钟域交叉合并到级联的 AXI SmartConnect 核心实例之间的单个转换器路径中。

2.3 DDR4 MIG

2.3.1 时钟和复位

| 信号                    | 方向   | 功能
|-------------------------|------- |--------------------------------------------------------
| C0_SYS_CLK              | input  | DRAM IP Core 时钟
| c0_ddr4_aresetn         | input  | AXI 复位输入,应该与 FPGA 逻辑时钟同步。
| sys_rst                 | input  | 系统复位,高电平有效,重置整个内存模块
| c0_ddr4_ui_clk          | output | 用户接口时钟,AXI 接口同步时钟取自 ui_clk。(Table 4-39)
| c0_ddr4_ui_clk_sync_rst | output | 用户接口复位,高电平有效

sys_rst 信号重置整个内存设计,包括由 MMCM 时钟(clkout0)驱动的通用互连(fabric)逻辑和 RIU 逻辑。MicroBlaze™ 和校准逻辑由 MMCM 时钟(clkout6)驱动。sys_rst 输入信号在内部同步,以创建 ui_clk_sync_rst 信号。ui_clk_sync_rst 重置信号同步地被断言和同步地被解除断言。
图3-14显示,在断言 sys_rst 后几个时钟延迟,ui_clk_sync_rst(fabric 重置)会同步断言。当 ui_clk_sync_rst 被断言时,在关闭时钟之前还有几个时钟周期。

2.3.2 AXI Slave 接口

  • AXI4 从接口是可选的。
  • AXI4 从接口块将 AXI4 事务映射到 UI(User Interface)。
  • UI 在表 4-14 中描述(PG150),并连接到 FPGA 用户逻辑,以访问外部存储设备。
  • UI 构建在早先在控制器描述中提到的本地接口之上。
  • 两种工具之间的RTL是一致的。

2.4 XDC 约束

############# DDR4 Memory Controller ################################
set_property PACKAGE_PIN K22 [get_ports C0_SYS_CLK_0_clk_p]

set_property PACKAGE_PIN L22   [get_ports {c0_alert_n[0]}]
set_property IOSTANDARD SSTL12 [get_ports {c0_alert_n[0]}]

############# External Memory Interface - Clock #####################
set_property PACKAGE_PIN G24 [get_ports {ddr4_rtl_0_ck_t[0]}]

############# External Memory Interface - ADDR & CMD ################
set_property PACKAGE_PIN D26 [get_ports {ddr4_rtl_0_adr[0]}]
set_property PACKAGE_PIN D25 [get_ports {ddr4_rtl_0_adr[1]}]
set_property PACKAGE_PIN E26 [get_ports {ddr4_rtl_0_adr[2]}]
set_property PACKAGE_PIN C24 [get_ports {ddr4_rtl_0_adr[3]}]
set_property PACKAGE_PIN C26 [get_ports {ddr4_rtl_0_adr[4]}]
set_property PACKAGE_PIN F24 [get_ports {ddr4_rtl_0_adr[5]}]
set_property PACKAGE_PIN M26 [get_ports {ddr4_rtl_0_adr[6]}]
set_property PACKAGE_PIN B25 [get_ports {ddr4_rtl_0_adr[7]}]
set_property PACKAGE_PIN G26 [get_ports {ddr4_rtl_0_adr[8]}]
set_property PACKAGE_PIN B26 [get_ports {ddr4_rtl_0_adr[9]}]
set_property PACKAGE_PIN E25 [get_ports {ddr4_rtl_0_adr[10]}]
set_property PACKAGE_PIN H26 [get_ports {ddr4_rtl_0_adr[11]}]
set_property PACKAGE_PIN D23 [get_ports {ddr4_rtl_0_adr[12]}]
set_property PACKAGE_PIN F25 [get_ports {ddr4_rtl_0_adr[13]}]
set_property PACKAGE_PIN K25 [get_ports {ddr4_rtl_0_adr[14]}]
set_property PACKAGE_PIN E23 [get_ports {ddr4_rtl_0_adr[15]}]
set_pr
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值