fpga ddr3 app接口学习记录

软件环境

本次使用vivado 2018.3 和modelsim 10.6c 进行ddr3 app接口的读写时序仿真和测试

DDR3 介绍

DDR3 SDRAM(Double-Data-Rate Three Synchronous Dynamic Random Access Memory)是 DDR SDRAM 的第三代产品,相较于 DDR2,DDR3 有更高的运行性能与更低的电压。DDR SDRAM 是在SDRAM 技术的基础上发展改进而来的,同 SDRAM 相比,DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟,DDR SDRAM 的读写速度可以比传统的SDRAM 快一倍。
通过查找资料 DDR3 的时序非常复杂,如果直接写 DDR3 的控制器代码,工作量大,性能难以保证。可以使用 Xilinx 公司 FPGA 自带的 DDR3 MIG IP 核来实现 DDR3 读写测试,从而大大降低了 DDR3 的开发难度。

MIG IP核介绍

在这里插入图片描述
上图为MIG IP 核的结构图,可以看到MIG IP 核对外有两组接口,左侧是用户使用的接口,我们只有充分掌握了这个接口才能操作 MIG。右侧为 DDR 物理芯片接口,负责产生具体的操作时序,并直接操作芯片管脚。DDR 物理芯片接口 我们只用负责分配正确的管脚,其他不用关心。
在这里插入图片描述
在这里插入图片描述
以上是用户端的信号,我们并不需要去掌握所有信号,只要掌握我们所需要使用的信号。
在这里插入图片描述
如上图所示,写数据有三种方法可以写入正确的数据,后面我将使用第1种方法进行ddr3的写入数据。
在这里插入图片描述
在这里插入图片描述
如上图所示,当发出读命令后,我们只需等待数据有效信号(app_rd_data_valid)拉高,为高表明
此时数据总线上的数据是有效的返回数据。需要注意的是,在发出读命令后,有效读数据要晚若干周期才
出现在数据总线上。

MIG IP核 配置

1、打开vivado点击 ip catalog
在这里插入图片描述
2、搜索mig,选择mig IP核
在这里插入图片描述
3、点击next
在这里插入图片描述
4、如下图所示选择“Create Design”,在“Component Name”一栏设置该 IP 元件的名称,这里取默
认软件的名称,再往下选择控制器数量,默认为“1”即可。 AXI4 接口不勾选,使用app接口。
在这里插入图片描述
5、如下图所示,主要是让我们选择可以兼容的芯片,默认不勾选,即不需要兼容其他的FPGA 芯片。配置完成点击“Next”。
在这里插入图片描述
6、如下图所示,我们选择ddr3 sdram。配置完成点击“Next”。
在这里插入图片描述
7、如下图所示,配置完成点击“Next”。
在这里插入图片描述
Clock Period:DDR3 芯片运行时钟周期,这个参数的范围和 FPGA 的芯片类型以及具体类型的速度等级有关。
PHY to Controller Clock Ratio:DDR3 物理芯片运行时钟和 MIG IP 核的用户端(FPGA)的时钟之比一般有 4:1 和 2:1 两个选项。由于 DDR 芯片的运行时钟是 400Mhz,因此 MIG IP 核的用户时钟(ui_clk)就是 100Mhz。一般来说高速传输的场合选择 4:1,要求低速的场合选择 2:1。当 DDR3 时钟选择选择了 350M 到最高的 400M,比例默认只为 4:1,低于 350M 才有 4:1 和 2:1 两个选
VCCAUX_IO:这是 FPGA 高性能 bank(High Performance bank)的供电电压,Vccaux_io 必须设置为2.0V 以实现最高数据速率。在 FPGA 高范围 bank(High Range banks)中无法使用 Vccaux_io。
Memory Type:DDR3 储存器类型选择。
Memory Part:DDR3 芯片的具体型号。
Memory Voltage:是 DDR3 芯片的电压选择。
Data Width:数据位宽选择.
ECC:ECC 校验使能,数据位宽为 72 位的时候才能使用。
Data Mask:数据屏蔽管脚使能。勾选它才会产生屏蔽信号,
Number of Bank Machines:Bank Machine 的数量是用来对具体的每个或某几个来单独控制的,选择
多了控制效率就会高,相应的占用的资源也多.
ORDERING:该信号用来决定 MIG 控制器是否可以对它收到的指令进行重新排序,选择 Normal 则
允许,Strict 则禁止。
8、如下图所示,配置完成点击“Next”。
在这里插入图片描述
Input Clock Period:MIG IP 核的系统输入时钟周期,该输入时钟是由 FPGA 内部产生的.
Read Burst Type and Length:突发类型选择,突发类型有顺序突发和交叉突发两种,其突发长度固定为 8。
Output Driver Impdance Control:输出阻抗控制。
RTT:终结电阻,可进行动态控制。
Controller Chip Select Pin:片选管脚引出使能。选择 enable,表示把片选信号 cs#引出来,由
外部控制。
BANK_ROW_COLUMN:寻址方式选择。
9、如下图所示,配置完成点击“Next”。
在这里插入图片描述
System Clock:MIG IP 核输入时钟。
Reference Clock:MIG IP 核参考时钟。
System Reset Polarity:复位有效电平选择。
Debug Signals Control:该选项用于控制 MIG IP 核是否把一些调试信号引出来,它会自动添加到 ILA,
这些信号包括一些 DDR3 芯片的校准状态信息。
Sample Data Depth:采样深度选择。
Internal Vref:内部参考管脚,表示将某些参考管脚当成普通的输入管脚来用。
IO Power Reduction:IO 管脚节省功耗设置。选择“ON”,开启。
XADC Instantiation:XADC 模块例化。使用 MIG IP 核运行的时候需要进行温度补偿,可以直接选择
XADC 模块的温度数据引到 MIG IP 核来使用,否则需要额外提供温度数据,选择“Enable”。
10、如下图所示,内部高性能 bank 端接匹配阻抗的设置,默认 50 欧姆即可,配置完成点击“Next”。
在这里插入图片描述
11、如下图所示,ddr3的管脚绑定,Pin/Bank Selection Mode:管脚模式选择。选择第二种,继续点击“Next”按钮,
在这里插入图片描述
绑定管脚后,后点击“Validate”,此时会跳出对话框,表明已经验证通过,点击“OK”,此时“Next”变成可选,点击“Next”完成管脚分配
在这里插入图片描述
12、如下图所示,软件默认设置,直接点击“Next”。
在这里插入图片描述
13、如下图所示, DDR3 IP 配置的总结,没有问题 直接点击“Next”。
在这里插入图片描述
14、如下图所示, 选择“Accept”,直接点击“Next”。
在这里插入图片描述
15、如下图所示, PCB 信息选项卡,直接点击“Next”。
在这里插入图片描述
16、如下图所示, MIG IP 核设计的汇总,直接点击“Generate”。
在这里插入图片描述
到这完成了 MIG IP 核的配置

DDR3 仿真测试

1、ddr3 读时序仿真
连续读出8个数据
在这里插入图片描述
2、ddr3 写时序仿真
连续写入8个数据
在这里插入图片描述
后续会补充上板测试的结果。

<think>嗯,用户问的是AXI协议是不是高速接口,或者属于什么类型。首先,我需要回忆一下AXI协议的基本知识。AXI是ARM公司推出的AMBA总线协议的一部分,主要用于芯片内部模块之间的通信。 用户之前的问题是关于FPGA中的高速接口,比如PCIe、以太网这些,现在突然转向AXI,可能是在理解不同协议的分类。所以需要明确AXI的定位,它不是传统意义上的高速接口,而是总线协议。 接下来要考虑用户可能的背景。用户可能在学习FPGA设计,遇到了AXI协议,想知道它的用途和分类。之前的回答里提到了高速接口,用户可能混淆了总线协议和外部高速接口的区别。需要解释清楚AXI的作用,比如用于内部连接IP核,管理数据流,而高速接口更多是处理与外部设备的高速数据传输。 然后,需要区分AXI的不同版本,比如AXI4、AXI4-Lite和AXI4-Stream,各自的应用场景。比如AXI4-Full用于高性能内存映射通信,Stream用于流数据。同时,要说明AXI的性能,虽然它本身不是高速接口,但在FPGA中,结合高速接口使用,比如通过AXI DMA控制器与PCIe或以太网交互。 还要考虑用户可能的后续问题,比如AXI和其他总线协议的对比,或者如何在设计中应用AXI。所以回答中需要涵盖这些点,但保持简洁,避免信息过载。需要确保用户理解AXI的角色,以及它如何与高速接口协同工作,比如在数据路径中的位置,如控制平面和数据平面的分离。 最后,检查是否有技术细节需要纠正,比如AXI的时钟频率、数据宽度对带宽的影响,以及实际应用中的例子,如Xilinx的IP核使用AXI接口。确保回答结构清晰,分点说明,帮助用户逐步理解AXI协议的本质和用途。</think>AXI(Advanced eXtensible Interface)协议是**一种高性能的片上总线协议**,属于ARM AMBA(Advanced Microcontroller Bus Architecture)标准的一部分,**主要用于芯片内部模块间的高效互联**。它并非传统意义上的“高速接口”(如PCIe或以太网),而是**面向SoC/FPGA内部IP核间通信的协议标准**。以下从技术特性、协议类型和应用场景分点解析: --- ### 1. **AXI协议的核心定位** - **本质**:AMBA总线协议的扩展,专注于**IP核间数据交互的标准化**。 - **性能特点**: - 支持高带宽传输(通过并行通道和突发传输)。 - 时钟频率典型范围:100 MHz ~ 500 MHz(取决于FPGA型号和时序约束)。 - 数据位宽可配置(32/64/128/256/512位等)。 - **与高速接口的关系**: - AXI常用于**连接FPGA内部的高速接口IP核**(如PCIe DMA控制器、以太网MAC等)。 - 示例:Xilinx的UltraScale架构中,PCIe硬核通过AXI接口与用户逻辑交互。 --- ### 2. **AXI协议的主要类型** | 类型 | 关键特性 | 典型应用场景 | |-------------------|------------------------------------------------------------------------|-----------------------------| | **AXI4** | - 支持突发传输(Burst,最大256次)<br>- 5个独立通道(读/写地址、读/写数据、写响应) | 高带宽内存访问(如DDR控制器交互) | | **AXI4-Lite** | - 简化版,单次传输<br>- 仅支持32/64位数据宽度 | 寄存器配置(如控制状态寄存器) | | **AXI4-Stream** | - 无地址的连续流传输<br>- 支持多数据流交织(TID/TDEST) | 视频流处理、ADC/DAC数据流 | --- ### 3. **AXI协议的技术优势** - **通道分离**:读/写通道独立,实现**全双工通信**。 - **突发传输优化**: - 通过`ARLEN`/`AWLEN`字段定义突发长度。 - 支持增量(INCR)和固定地址(FIXED)模式。 - **QoS支持**:通过`AWQOS`/`ARQOS`信号实现服务质量控制。 - **低功耗设计**:时钟门控(Clock Gating)和电源域隔离。 --- ### 4. **AXI在FPGA中的实际应用** - **数据通路架构示例**: ``` [DDR4控制器] <==AXI4==> [DMA引擎] <==AXI4-Stream==> [高速接口IP(如10G以太网)] ``` - **与高速接口的协同**: - **PCIe**:通过AXI Bridge实现TLP包与AXI事务的转换。 - **JESD204B**:ADC数据通过AXI4-Stream传输至处理逻辑。 - **千兆以太网**:MAC层通过AXI4-Lite配置PHY寄存器。 --- ### 5. **AXI与高速接口的性能对比** | 维度 | AXI协议 | 高速接口(如PCIe Gen4) | |--------------|----------------------------------|----------------------------------| | **传输范围** | 芯片内部 | 板级或系统级(跨设备) | | **速率上限** | 约25.6 Gbps(128位@200 MHz) | 单通道16 GT/s(实际带宽约2 GB/s) | | **协议开销** | 低(直接数据搬运) | 高(TLP包头、链路层校验等) | | **典型延迟** | 纳秒级(片上互联) | 微秒级(跨物理链路) | --- ### 6. **设计注意事项** - **时序收敛**:AXI接口需满足建立/保持时间(尤其在高时钟频率下)。 - **死锁避免**:合理设置`AWREADY`/`WREADY`握手信号优先级。 - **资源消耗**:AXI互联逻辑可能占用大量LUT/FF资源(需平衡性能和面积)。 - **验证方法**:使用VIP(Verification IP)进行协议一致性测试。 --- ### 总结 AXI协议是**面向芯片内部高性能互联的总线标准**,而非直接对外的高速物理接口。在FPGA系统中,它常作为“桥梁”连接用户逻辑与高速接口IP核,例如: - 通过AXI DMA将PCIe接收的数据传输至DDR内存。 - 使用AXI4-Stream将JESD204B接口的ADC采样数据送至数字信号处理模块。 如需设计含AXI的FPGA系统,建议结合Vivado的IP Integrator工具快速构建AXI互联架构,并通过ILA(Integrated Logic Analyzer)实时调试总线事务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值