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