是否可以完全编译一个模块,然后在测试台中单独实例化它?

Is it possible to fully compile a module and then instantiate it in a testbench separately?

是否可以制作 RTL 模块的完全编译和独立版本,如 Cadence 术语中的快照,然后将此编译模块实例化为测试平台? 最后,运行 另一个编译步骤来创建最终快照,其中包含最初交付的快照但现在在测试台中实例化。

如果是这样,在编译原始快照以启用此功能时是否有任何特殊注意事项?您将如何在测试台中实例化此类编译对象?

是的。但是每个模拟工具的编译流程方法都略有不同。大多数工具将此流程分解为多个步骤:解析、优化、细化和初始化(您提到的快照是最后一步)。并非所有工具都可以让您访问所有单独的步骤。

有多种方法可以实现您的要求,但选择实际上取决于您为什么要这样做,以及您愿意接受哪些限制。

您可以将模块的源代码解析到一个库中,然后重新使用同一个库来编译许多不同的测试平台。但通常耗时的部分是优化。

Questa 在他们所谓的预编译设计单元 (PDU) 流程中提供了您正在寻找的内容。您可以优化您的 RTL 模块并将其保存回库中,而 Questa 在阐述过程中只需选择优化的模块而不是未优化的模块。特殊的考虑是您需要保留来自优化的任何信号,这些信号可能具有来自测试平台的分层引用。