LogiCORE RapidIO v4.3 - 注册管理器错误地处理对未映射地址空间的维护请求

问题描述

当Serial RapidIO端点收到维护请求时,它将重新布线到MREQ接口。未正确处理具有指向未映射地址空间的偏移量的维护请求。

解决/修复方法

注册管理器参考设计(reg_manager.v)错误地处理对未映射地址空间的维护请求。在这种情况下,最常见的症状是注册管理器状态机将挂起在后续维护请求上。

必须将ELSE IF语句更改为ELSE才能解决问题。下面的代码显示了所需的更改:

在Register_Manager.v的LINE 1153上

// ------------------------------------------------ ------------------------------

//超时计数器

//如果地址空间的地址不存在,则为响应

// 永远不会发生。发生这种情况时超时到期。

始终@(posedge clk或negedge reset_n)开始

if(!reset_n)

time_out_cntr <= 6'h0;

//读取丢弃或写入丢弃或空闲状态

否则if(rx_ns ==`REG_RX_IDLE |!rdy_n)

time_out_cntr <= 6'h0;

else // if(!mgt_phy_sel_n_wire |!mgt_log_sel_n_wire |!mgt_usr_sel_n_wire)<----------将ELSE IF更改为ELSE

time_out_cntr <= time_out_cntr + 1;

结束

assign req_timeout = time_out_cntr [5];

注意:此问题已在v4.4 Serial RapidIO解决方案中得到纠正。

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

提问于 2018-08-18 20:26:09 +0800

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

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