【发布时间】:2013-05-18 11:15:59
【问题描述】:
我正在尝试为流水线处理器进行后门级仿真。 我有 vhdl 格式的网络列表,我现在需要再次模拟它,以确保功能在合成后正确。 问题是我有一个用于指令的 2 个 RAM,另一个用于数据,在后门级模拟中,我无法查看内存列表视图并将我的指令和数据加载到我的 2 个 RAM 中。 当我的数据被翻译成触发器和多路复用器时,如何将我的数据插入到内存中?
提前致谢。
【问题讨论】:
我正在尝试为流水线处理器进行后门级仿真。 我有 vhdl 格式的网络列表,我现在需要再次模拟它,以确保功能在合成后正确。 问题是我有一个用于指令的 2 个 RAM,另一个用于数据,在后门级模拟中,我无法查看内存列表视图并将我的指令和数据加载到我的 2 个 RAM 中。 当我的数据被翻译成触发器和多路复用器时,如何将我的数据插入到内存中?
提前致谢。
【问题讨论】:
根据您的描述,我假设这两个 RAM 用于指令缓存和数据缓存。由于它们通常具有很大的尺寸,即使在较小的处理器上也是如此,我怀疑这些 RAM 是在触发器和多路复用器中实现的。因此,我的第一个建议是您检查网表以查看 RAM 是否实际上是单独的 RAM 原始模块。
原因是 RAM 原始模块有时(取决于模型)可能会使用文件的内容进行初始化。在这种情况下,您只需要制作一个格式正确的文件。
如果 RAM 原语模块实际上在网表中,但不允许初始化,另一种方法是用您自己的可初始化版本替换 RAM 原语模块。
如果 RAM 实际转换为触发器和多路复用器,则处理器可能支持一些缓存操作指令,通常可在受保护(内核)模式下使用。这些指令可用于将执行程序提供的内容加载到指令缓存和数据缓存中。以这种方式加载缓存 RAM 可能需要大量指令,因此需要一些模拟时间。
最后,您可以考虑不要在门级仿真上花费太多时间。运行一点可能没问题,只是为了确保网表没问题,但是商业知名的综合工具通常质量很高,所以这些不太可能是您设计中出现错误的原因。在项目的专用设计中出现错误的风险要大得多,因此您可能希望花更多时间在功能验证和代码审查上;-)
【讨论】: