为什么在ModelSim仿真器中仿真期间使用函数时,我的基于altsyncram的内存无法正确初始化?

如果顶级测试平台包含任何其他信号的初始化,则readmemh函数可能无法在仿真期间正确初始化基于altsyncram的内存。

由于ModelSim仿真器调度信号初始化的方式,会出现问题。

当没有额外的信号初始化时,ModelSim仿真器的时间表如下:

1)内部存储器复位序列。
2)从testbench执行

当测试平台中存在任何其他初始化时,ModelSim仿真器将按如下方式安排:

1)从testbench执行
2)内部存储器复位序列。

该序列导致在应用函数之后存储器内容被重置,导致内容被全部读出。

解决/修复方法

要确保在存储器复位阶段之后应用该功能,您应该延迟如下所示:

初始#1(<文件名>,<内存路径>);

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

提问于 2018-08-04 14:35:56 +0800

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

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