从您的描述来看,您在使用PL端(可编程逻辑)通过AXI总线控制PS端(处理器系统)的DDR(动态随机存取存储器)进行读写操作时遇到了一个问题,即从机(DDR)的wready信号不会一直拉高,只有在发出wvalid信号时才会拉高。而awready信号则一直拉高。您想知道如何判断采用的握手方式以及这是否与PS端DDR的机制有关。
首先,我们需要了解AXI总线的握手协议。AXI总线有三种握手协议:ACK-based、LIGHTWT和HANDSHAKE。在这些协议中,wready和awready信号的行为可能会有所不同。
1. ACK-based:在这种协议下,wready信号会在每个事务开始时拉高,表示目标设备准备好接收数据。awready信号也会在每个事务开始时拉高,表示目标设备准备好接收地址。
2. LIGHTWT:在这种协议下,wready信号不会在每个事务开始时拉高,而是在目标设备准备好接收数据时才拉高。awready信号的行为与ACK-based协议相同。
3. HANDSHAKE:在这种协议下,wready和awready信号都会在目标设备准备好接收数据或地址时拉高。
根据您的描述,从机(DDR)的wready信号在发出wvalid信号时才会拉高,而awready信号一直拉高。这种情况可能更接近LIGHTWT协议。但是,为了确定采用的握手方式,您需要检查设计中的AXI总线配置。
关于PS端DDR的机制问题,这可能与您使用的DDR控制器或MIG(Memory Interface Generator)核有关。不同的DDR控制器或MIG核可能有不同的握手协议实现。您可以通过查看文档或仿真来了解您使用的DDR控制器或MIG核的具体实现。
建议您采取以下步骤来解决问题:
1. 检查设计中的AXI总线配置,确定采用的握手协议。
2. 查阅您使用的DDR控制器或MIG核的文档,了解其握手协议的实现方式。
3. 如果可能,尝试修改设计或使用不同的DDR控制器/MIG核,以适应您的项目需求。
4. 如果问题仍然存在,您可以考虑寻求专业人士的帮助,或者在相关论坛和社区寻求建议。
从您的描述来看,您在使用PL端(可编程逻辑)通过AXI总线控制PS端(处理器系统)的DDR(动态随机存取存储器)进行读写操作时遇到了一个问题,即从机(DDR)的wready信号不会一直拉高,只有在发出wvalid信号时才会拉高。而awready信号则一直拉高。您想知道如何判断采用的握手方式以及这是否与PS端DDR的机制有关。
首先,我们需要了解AXI总线的握手协议。AXI总线有三种握手协议:ACK-based、LIGHTWT和HANDSHAKE。在这些协议中,wready和awready信号的行为可能会有所不同。
1. ACK-based:在这种协议下,wready信号会在每个事务开始时拉高,表示目标设备准备好接收数据。awready信号也会在每个事务开始时拉高,表示目标设备准备好接收地址。
2. LIGHTWT:在这种协议下,wready信号不会在每个事务开始时拉高,而是在目标设备准备好接收数据时才拉高。awready信号的行为与ACK-based协议相同。
3. HANDSHAKE:在这种协议下,wready和awready信号都会在目标设备准备好接收数据或地址时拉高。
根据您的描述,从机(DDR)的wready信号在发出wvalid信号时才会拉高,而awready信号一直拉高。这种情况可能更接近LIGHTWT协议。但是,为了确定采用的握手方式,您需要检查设计中的AXI总线配置。
关于PS端DDR的机制问题,这可能与您使用的DDR控制器或MIG(Memory Interface Generator)核有关。不同的DDR控制器或MIG核可能有不同的握手协议实现。您可以通过查看文档或仿真来了解您使用的DDR控制器或MIG核的具体实现。
建议您采取以下步骤来解决问题:
1. 检查设计中的AXI总线配置,确定采用的握手协议。
2. 查阅您使用的DDR控制器或MIG核的文档,了解其握手协议的实现方式。
3. 如果可能,尝试修改设计或使用不同的DDR控制器/MIG核,以适应您的项目需求。
4. 如果问题仍然存在,您可以考虑寻求专业人士的帮助,或者在相关论坛和社区寻求建议。
举报