是否可以制作 RTL 模块的完全编译和独立版本,如 Cadence 术语中的快照,然后将此编译模块实例化到测试平台中?最终,运行另一个编译步骤以创建最终快照,其中包含最初交付的快照,但现在在测试台中实例化。
如果是这样,在编译原始快照以启用此功能时是否有任何特殊考虑?您将如何在测试台中实例化这样的编译对象?
是否可以制作 RTL 模块的完全编译和独立版本,如 Cadence 术语中的快照,然后将此编译模块实例化到测试平台中?最终,运行另一个编译步骤以创建最终快照,其中包含最初交付的快照,但现在在测试台中实例化。
如果是这样,在编译原始快照以启用此功能时是否有任何特殊考虑?您将如何在测试台中实例化这样的编译对象?
是的。但是每个仿真工具对编译流程的方法都略有不同。大多数工具将此流程分为几个步骤:解析、优化、细化和初始化(您提到的快照是最后一步)。并非所有工具都可以让您访问所有单独的步骤。
有几种方法可以实现您的要求,但选择实际上取决于您为什么要这样做,以及您愿意接受哪些限制。
您可以将模块的源代码解析到一个库中,然后重新使用同一个库来编译许多不同的测试平台。但通常耗时的部分是优化。
Questa 在他们所谓的预编译设计单元 (PDU) 流程中提供您正在寻找的内容。您可以优化您的 RTL 模块并将其保存回库中,并且 Questa 在细化过程中只需选择优化的模块而不是未优化的模块。需要特别注意的是,您需要保留来自优化的任何信号,这些信号可能具有来自测试台的分层引用。