10.1 EDK,MPMC v4.00.a - 当PIM_RdFifo_Flush被置位时,NPI PIM_RdFifo_Empty信号错误地变为低电平

问题描述

我有一个NPI外设连接到MPMC控制器的64位PIM端口。我在硬件中观察到,当PIM_RdFifo_Flush信号有效(1个周期)时,两个周期之后,PIM_RdFifo_Empty信号将变为低电平一个周期。在RdFifo_Flush的断言处,PIM端口处于空闲状态,没有待处理的请求。错误的非空断言是监视它的FIFO读取逻辑的问题。

此问题仅影响P_INPUT_PIPELINE == 1的设计。

解决/修复方法

要解决此问题,必须通过RSTFlush信号同步复位pushaddr_r信号。将MPMC复制到项目pcores目录并修改mpmc_data_path.v (MPMC v3)或mpmc_read_fifo.v (MPMC v4)文件以匹配如下:

生成

if(P_INPUT_PIPELINE == 1)开始:gen_pushaddr_pipeline

总是@(posedge Clk)开始

if(Rst | Flush) - 添加

pushaddr_r <= 0; - 加

别的--add

pushaddr_r <= pushaddr;

// push_r <=推;

结束

结束

此问题已在MPMC v4.01.a中修复,该版本已在EDK 10.1 Service Pack 1中发布。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-18 20:40:33 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它