文档详情

Design Compiler使用笔记DC中文笔记.pdf

发布:2025-02-17约1.44万字共8页下载文档
文本预览下载声明

DC的手册包括3部分,分别是命令行手册,UserGuide,以及参考手册。

其中参考手册有3个,分别是:

ConstraintsTiming

OptimizationTimingAnalysis

RegisterRetiming

本系列笔记为阅读这三个参考手册所做的笔记

本文档(约束和时序)包括六章:

1.基本概念

2.约束设计

3.描述设计环境

4.指定时钟和时钟网络

5.描述逻辑功能和信号端口

6.在层次化设计中传播约束

NotesforD

基本概念篇:

利用DC进行综合,主要的过程就是设定适当的约束,从而指导DC综合出较为优化的

结果,DC当中进行综合可以分成三大步骤:Transfer、Mappin、Optimization。

总的流程来说为:

1.设定各种用于综合的库(.db或者.lib格式)

及各种IP核的库。库中主要描述了库线负载模型、Max_transition、Max_Capacitance

等等;各种单元的时延、面积、逻辑功能、输入输出负载、功耗等等,注意,具有相

同footprint的单元是可以互相替换的。

2.读入设计

此时可以对设计设定参数(Verilo当中的parameter,VHDL当中的generic)。设计读

入以后将会被转换(Transfer)成网表,该网表是基于一种通用库的,即gtech库(Generic

Technology),该库可以较为容易的映射到各种实际的工艺库当中,当然,这个库是没

有时延的。

3.设定约束

DC的约束总体分成两类:DesignRuleConstraints以及OptimizationConstraints。前者

是必须要满足的,包括工艺库当中进行的各种限定,而后者是为了优化而设定的。总

的说来,约束包括面积,时序,负载,Porosity,动态/漏功耗(使用PowerCompiler

)等几大类。

4.

约束设定好之后,就可以让DC根据这些约束将通用库的网表映射(Mappin)到实际

的库当中去,并进行各种的优化(Optimization),此时就可以得到结果的网表,用于后

端的布局布线。

5.

DFT的流程可以在步骤3中完成,也可以在网表settle之后。DFT的流程包括扫描链

插入以及ATPG等。

6.

最后就是生成门级的网表(.v)、导出约束文件(.sd,用于指导后面的布局布线)、时

延文件(.sdf,用于静态时序分析STA),当然还要包含功耗、面积、时序的报告之类的。

综合产生的结果(门级的网表)的评价指标应该包括速度、面积、功耗、Porosity(不

知如何翻译,这个指标代表结果布局布线的布通的能力),当然,在做完DFTATPG之后,

还要保障一定的覆盖率,最后,我们还希望花较短的时间和计算资源就达到时序收敛。综合

软件将利用我们给出的各种约束的指导进行综合,然而上述5个目标并不能同时满足,甚至

很多时候会互相矛盾,例如速度和面积一般来说是互相矛盾的,所以这些目标必须要有一个

优先级,只有较高优先级的目标有一定的Slack的时候才考虑对较低优先级的目标进行优化。

我们的设计往往要求速度为第一目标,覆盖率也必须达到量产要求(例如90%以上),而面

积、功耗、Porosity等则是可以容忍的。

NotesforDCReferenceManual:ConstraintsTiming,No.2(contd)

约束的分类:

约束总的分成两类:DesignRuleConstraints和OptimizationConstraints,其中前者是隐

式约束(Implicit),后者是显式约束(Explicit)。前者由定义工艺库定义,多个工艺库定义

值不同的时候取最严格者,而后者是用户定义的,前者具有优先权。但是隐式的约束用户仍

然可以重新设定为更加严格的值(不能设为更松弛的值)。约束施加的对象包括net、

port(in/out)、cell、design、path。其中DesignRuleCon

显示全部
相似文档