问题描述
为什么即使存在错误消息“Memory Collision Error”,Verify -gate_level也会通过?
解决/修复方法
理解Verify -gate_level是否通过的关键取决于预期结果与仿真期间实际结果的比较。如果仿真通过,则是因为在仿真结构网表之后存在所有预期输出。因此,我们需要了解如何显示“Memory Collision Error”消息,但对仿真结果没有影响。
如果您的设计包含“SetDirective -memmap dp_sync_ram”命令定义的双端口存储器,则存在生成的RTL行为在同一时钟周期内从同一地址读取和写入的可能性。由于Block RAM不支持此功能,因此当读取地址和写入地址的值相同时,AccelDSP生成的RTL行为会创建“直通”电路。结果是输入数据被传递到输出,并且来自块RAM的数据被忽略。
块RAM的仿真模型包含检查以确定读写地址是否是相同的值。如果是,则无论是否使用Block RAM的输出端口,都会在仿真期间显示该消息。 Verification通过的原因是在导致显示“Memory Collision”消息的情况下,电路未使用Block RAM中的数据。
没有回复内容