首页 > 解决方案 > 如何为网表综合定义自定义单元?

问题描述

我目前正在研究一种 CPU 设计,我想在其中比较不同的微架构的功率、速度和面积。这些微架构的区别仅在于不同组件的实例化,例如不同实现的 ALU 或寄存器文件。其中一些组件相当复杂,我无法以 HDL 代码的形式使用。所以想法是将它们实例化为 HDL 代码中的黑盒,并让综合工具(Synopsys 设计编译器)将它们映射到自定义单元以获取网表。

现在,问题是:我如何自定义细胞以用于合成?当然,我有一个可用的标准单元库,所以我只需要将那几个额外的单元“添加”到链接库中。我找不到在 DC shell 中定义它们的方法。所以我想我必须编写一个额外的自由文件来加载和链接。

有没有办法定义一个自由文件,我不必担心头文件,例如过程参数,只需要定义所需的单元格并将它们“添加”到现有库中,以便它自动假定所有标准单元库中指定的过程参数?

我认为在没有计划流片的情况下,出于模拟目的而这样做并不少见。我只是在网上或用户指南中找不到任何有用的信息。如果有人能指出我正确的方向,我会很高兴。

标签: embeddedhdlsynthesisnetlist

解决方案


我找到了解决方案。可以简单地编写一个只包含自定义单元描述的自由文件,然后在通过update_lib命令编译之前将其读入。这正是我想要的。


推荐阅读