注意:这需要一个Conformal Low Power XL许可证,并且仅在-verify可执行选项下可用(lec -lp -verify)。
层次化CPF用于自下而上的实现和IP集成。集成的CPF是所有设计级验证和实现、RTL仿真、逻辑综合以及放置和布线工作的起点。
Conformal Low Power CPF集成器读取层次化的CPF文件,并为集成范围或芯片级实现的验证创建平坦的CPF文件。这支持较低范围的电源域重配置、低功耗规则创建,并自动解决块级和顶层低功耗规则的优先级问题。
使用CPF集成器
使用WRITE POWER INTENT命令的-integrated选项来指定当读取层次化CPF时,它生成集成的flatten CPF文件。在集成过程中,每个设计范围都独立检查设计正确性。尽管这一步预期在开发该设计范围的CPF时已经执行过,但在此阶段进行验证是为了避免由于不正确或不完整的较低范围CPF导致的集成问题。检查包括域映射检查和端口一致性检查。
默认情况下,与库相关的信息被写入到<filename>_lib_<version>文件中。集成的CPF <filename>将源引这些相关的库CPF文件。如果指定不需要将库信息集成到CPF中,请使用以下命令:
WRITE POWER INTENT <filename> -integrated -nolibrary
CPF集成器为每个宏模型声明一次写入集成CPF文件,并使用以下格式链接到宏模型的每个宏实例:
set_instance <instance name> -model <macro model name>
或者,可以指定在设置该宏模型的每个set_instance之后立即展开宏模型的定义,使用以下命令:
WRITE POWER INTENT <filename> -integrated -expand_macro
当集成CPF被写出并读入到Conformal软件时,会对该集成CPF执行质量检查。任何顶层范围的CPF错误或与集成相关的错误都会被报告。
重要提示:
要继续在Conformal Low Power中工作,必须使用READ POWER INTENT <file> -replace命令,然后是COMMIT POWER INTENT命令来重新读取集成CPF文件。
创建flatten的CPF文件
要从层次化的CPF文件创建一个集成的flatten CPF文件,请按照以下步骤操作:
1. 使用READ POWER INTENT命令读取层次化的CPF文件。例如:
read power intent
这将加载多个层次化的CPF文件到系统中,为后续的集成做准备。
2. 执行WRITE POWER INTENT命令,并使用-integrated选项来生成平坦的CPF文件。例如:
write power intent -integrated
此命令将层次化的CPF内容集成到一个单一的平坦CPF文件中,名为,这个文件可以用于后续的设计验证和实现过程。
验证层次化CPF文件
要验证层次化的CPF文件,请按照以下步骤操作:
1. 使用READ POWER INTENT命令读取层次化的CPF文件。例如:
read power intent
这一步将层次化的CPF文件导入到系统中。
2. 使用WRITE POWER INTENT命令创建一个平坦的输出CPF文件。例如:
write power intent -integrated
这个命令将层次化的CPF信息整合到一个平坦的CPF文件中,以便于后续的集成和验证过程。
3. 要继续在Conformal Low Power中工作,可以使用READ POWER INTENT命令读取集成后的CPF文件,然后执行COMMIT POWER INTENT命令。
read power intent -replace
commit power intent
这将替换当前的CPF信息,并提交新的CPF设置。
4. 应用CPF低功耗单元信息:
commit power intent
此命令会将CPF中的低功耗单元信息应用到当前项目中。
5. 运行电源域分析、结构检查和规则检查:
analyze power domain
这一步对电源域进行分析,并执行结构和规则检查,确保低功耗设计符合要求且没有错误。
按照这个流程,可以确保层次化的CPF文件在集成和转换为flatten CPF文件的过程中保持正确性,并在后续的设计流程中使用。
在集成之前
以下示例中,注意实例X1中始终开启和外部可切换单元之间的隔离规则:
隔离规则 Iso1 涵盖了从 X1/I1 到 X1/I2 的交叉:
集成后
集成之后,由于域映射的原因,从X1/I1到X1/I2的隔离规则被移除。从X2/I1到X2/I2的交叉隔离规则仍然保留,并由X2_Iso1覆盖。
在以下情况中,低级别的块X2/I1和X2/I2被集成到最顶层的域定义中,并且低级别的隔离规则(-name X2_Iso1)被提升到最顶层。