一种顶层物理设计的方法、层次化物理设计的方法及芯片与流程

文档序号:33504095发布日期:2023-03-17 23:03阅读:84来源:国知局
一种顶层物理设计的方法、层次化物理设计的方法及芯片与流程

1.本技术涉及芯片领域,具体而言本技术实施例涉及一种顶层物理设计的方法、层次化物理设计的方法及芯片。


背景技术:

2.层次化设计方法与展平式设计相比,更适用于规模比较大的芯片。它最大的特点就是首先要对芯片进行整体分析规划,这是为了对芯片进行分割。主要思路是将一个大的设计分成若干个子分割块,每个分割块在完成各自的物理设计时是相互独立的,可以交由不同的设计团队进行物理设计,在时间周期上也是可以并行进行的。但是层次化物理设计中,每一个模块与其他相关大模块和顶层之间的时序约束需要各自独立实现收敛,如果某些模块不能收敛,它会要求在顶层重新做约束分配,直到实现模块和顶层都收敛的结果。然而相关技术的物理设计在时钟树综合前对子模块的时序计算及处理均是不准确的。


技术实现要素:

3.本技术实施例的目的在于提供一种顶层物理设计的方法、层次化物理设计的方法及芯片,采用本技术的实施例可以矫正物理设计在时钟树综合前对子模块的时序计算及处理的准确性。
4.第一方面,本技术实施例提供一种顶层物理设计的方法,所述方法包括:根据子模块在任一条顶层时序路径中的属性信息确定约束值,其中,所述属性信息用于表征在所述顶层时序路径中所述子模块属于前级还是后级;至少根据所述约束值完成顶层物理设计。
5.本技术的一些实施例根据子模块在顶层时序路径中属于前级寄存器还是属于后级寄存器来确定对应的约束值,目的在于降低顶层物理设计过程中与底层子模块相关的时序悲观度延迟变化。
6.在一些实施例中,所述根据子模块在任一条顶层时序路径中的属性信息确定约束值,包括:若确认所述子模块属于所述前级,则将第一时钟长度值作为所述约束值,其中,所述第一时钟长度值是与从所述子模块的输出端脚向前追溯至所述子模块包括的至少一个内部逻辑器件的延时值相关;所述至少根据所述约束值完成顶层物理设计,包括:将所述第一时钟长度值作为时序优化的悲观约束值,完成所述顶层物理设计。
7.本技术的一些实施例通过确定从输出端脚到对应子模块的内部逻辑器件的延时值计算该子模块作为顶层时序路径前级寄存器时,对应的顶层物理设计的约束值,提升得到的约束值的准确性。
8.在一些实施例中,所述第一时钟长度值是由时钟信号从各第一级时序单元到达所述子模块的输出端脚的时钟传播时长确定的,其中,每个第一级时序单元位于所述子模块上且所述第一级时序单元穿过所述子模块的所述输出端脚与所属子模块外的时序单元构成一条时序路径。
9.本技术的一些实施例通过确定从子模块的输出端脚到该子模块上与输出端脚邻
近的第一级时序单元的时序信号的传播时长。
10.在一些实施例中,在所述将第一时钟长度值作为所述约束值之前,所述方法还包括:从所述子模块的所述输出端脚往前分别追溯至n个第一级时序单元,获取与每个第一级时序单元对应的延时值,其中,n为大于或等于1的整数;计算所有所述延时值的均值得到所述第一时钟长度值。
11.本技术的一些实施例将从子模块的输出端脚追溯至各第一级时序单元的延时值的均值作为约束值提升得到的约束值的准确性。
12.在一些实施例中,所述将所述第一时钟长度值作为时钟树后时序优化的悲观约束值完成所述顶层物理设计,包括:根据所述第一时钟长度值设置第一工程指令,其中,所述第一工程指令用于设置加严优化力度;根据所述第一工程指令完成所述顶层物理设计。
13.本技术的一些实施例将在顶层时序路径中与前级的寄存器对应的底层子模块的输出时序逻辑的平均长度作为约束值,并根据该约束值构造工程指令,以便指导布局及完成时钟树综合前的优化。
14.在一些实施例中,所述根据子模块在任一条顶层时序路径中的属性信息确定约束值,包括:若确认所述子模块属于所述后级,则将第二时钟长度值作为所述约束值,其中,所述第二时钟长度值是与从所述子模块的输入端脚向后追溯至所述子模块包括的至少一个内部逻辑器件的延时值相关的;所述至少根据所述约束值完成顶层物理设计,包括:将所述第二时钟长度值作为时序优化的乐观约束值完成所述顶层物理设计。
15.本技术的一些实施例在确认子模块属于顶层时序路径上的后级寄存器时,则采用与该模块的输入端口向后赘述的方式得到约束值。
16.在一些实施例中,所述第二时钟长度值是由时钟信号从所述子模块的时钟输入端到达各第一级时序单元的时钟传播时长确定的,其中,每个第一级时序单元位于所述子模块上且所述第一级时序单元是与所述子模块的所述输入端口直连的逻辑器件。
17.本技术的一些实施例通过获取第一级时序单元的延时值得到子模块作为顶层时序路径上的后级寄存器时的延时值,提升处理速度。
18.在一些实施例中,在所述将第二时钟长度值作为所述约束值之前,所述方法还包括:从所述子模块的所述时钟输入端往后分别追溯至m个第一级时序单元,获取与每个第一级时序单元对应的延时值,其中,m为大于或等于1的整数;计算所有所述延时值的均值得到所述第二时钟长度值。
19.本技术的一些示例通过计算均值得到约束值,提升数据处理速度。
20.在一些实施例中,所述将所述第二时钟长度值作为时序优化的乐观约束值完成所述顶层物理设计,包括:将所述第二时钟长度值作为所述子模块的时钟输入端时序放松值,并根据所述时序放松值设置第二工程指令,其中,所述第二工程指令用于设置放松优化力度;根据所述第二工程指令完成所述顶层物理设计。
21.本技术的一些实施例通过携带第二时钟长度值的工程指令完成顶层物理设计,提升顶层物理设计的效果。
22.在一些实施例中,所述第一级时序单元包括:寄存器、门控单元和存储单元中的一个或多个。
23.在一些实施例中,所述约束值是通过对所述子模块的静态时序分析得到的。
24.在一些实施例中,所述方法还包括:获取所述子模块的时序库文件;其中,所述至少根据所述约束值完成顶层物理设计,包括:根据所述约束值以及所述时序库文件完成所述顶层物理设计。
25.第二方面,本技术的一些实施例提供一种层次化物理设计的方法,所述方法包括:完成子模块物理设计;以及采用如第一方面任一实施例所述的方法完成顶层物理设计。
26.第三方面,本技术的一些实施例提供一种布局布线装置,所述布局布线装置包括:约束值获取模块,被配置为根据子模块在任一条顶层时序路径中的属性信息确定约束值,其中,所述属性信息用于表征在所述顶层时序路径中所述子模块属于前级还是属于后级;顶层物理设计模块,被配置为至少根据所述约束值完成顶层物理设计。
27.第四方面,本技术的一些实施例提供一种布局布线方法,所述方法包括:读取工程指令,其中,所述工程指令包括第一工程指令或者第二工程指令,所述第一工程指令将第一时钟长度值作为时钟树综合前的约束值,所述第二工程指令用于将第二时钟长度作为时钟树综合前的约束值,所述第一时钟长度值和所述第二时钟长度值是通过对应子模块在顶层时序路径中属于前级还是后级确定的;依据所述工程指令完成布局布线。
28.第五方面,本技术的一些实施例提供一种芯片,所述芯片是采用如上述第一方面或者第二方面所述方法进行后端设计的得到的。
29.第六方面,本技术的一些实施例提供一种后端设计装置,所述后端设计装置采用如上述第一方面或者第二方面所述方法进行后端设计。
附图说明
30.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
31.图1为本技术实施例提供的芯片设计制造的流程图;图2为本技术实施例提供的层次化设计流程图;图3为相关技术的顶层时序图的示意图之一;图4为相关技术的顶层时序图的示意图之二;图5为相关技术的顶层时序图的示意图之三;图6为相关技术的顶层时序图的示意图之四;图7为相关技术的顶层时序图的示意图之五;图8为相关技术的顶层时序图的示意图之六;图9为相关技术的顶层时序图的示意图之七;图10为本技术实施例提供的顶层物理设计的方法的流程图之一;图11为本技术实施例提供的顶层物理设计的方法的流程图之二;图12为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之一;图13为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之二;
图14为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之三;图15为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之四;图16为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之五;图17为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之六;图18为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之七;图19为本技术实施例提供的采用本技术实施例前和采用本技术实施例后的顶层时序图的示意图之八;图20为本技术实施例提供的布局布线装置的组成框图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
33.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
34.本技术的发明人在研究中发现,相关技术芯片分层设计时的子模块lib中是包含了时钟延时的,层次化顶层物理设计是带有这些信息在做优化的,物理设计在做时钟树综合之前又是不考虑时钟延时的,都是理想时钟,显然这是矛盾的,这势必造成物理设计在时钟树综合前对子模块的时序计算及处理均是不准确的。
35.至少为了解决上述技术问题,本技术的一些实施例提供了一种物理设计方法,该方法示例性包括:提取各子模块时序信息库文件;在顶层设计时读入各子模块的时序库文件;判断在顶层时序路径path中子模块位于前级寄存器还是后级寄存器,若是前级(例如,属于前级寄存器),则将第一时钟长度值(例如,该子模块输出时序逻辑的平均长度)作为约束值,指导顶层物理设计;若是后级(例如,属于后级寄存器),则将第二时钟长度值(例如,该子模块输入时序逻辑的平均长度)作为约束值,指导顶层物理设计,完成顶层物理设计。在本技术的一些实施例中,第一时钟长度值为该子模块输出接口时序逻辑的平均时钟长度,第二时钟长度值为各子模块输入接口时序逻辑的平均时钟长度。
36.需要说明的是,在本技术的实施例中,子模块作为某条顶层时序路径的前级(或称为前级寄存器)是指该顶层时序路径是从该子模块的输出端脚发出的时序路径,此时在本技术的一些示例中可以将该子模块的输出接口时钟逻辑的平均时钟长度作为约束值。在本技术的实施例中,子模块作为某条顶层时序路径的后级(或称为后级寄存器)是指该条顶层时序路径是到达该子模块的输入端脚的时序路径,此时在本技术的一些示例中可以将输入接口时钟逻辑的平均时钟长度作为约束值。
37.通过本技术的实施例的物理设计方法,可降低顶层物理设计过程中与底层子模块相关的时序悲观度(时序悲观(clock pessimism)是指在静态时序分析期间使用与公共时
钟路径相关联的最大(而非最小)延迟变化)。
38.请参看图1,图1为相关技术提供的芯片设计制造的流程图。
39.随着晶体管和集成电路的发明推动了半导体分立器件产业和集成电路产业,以及集成电路产业所应用的各种领域,如航天军事、互联网、移动通信、消费类电子等的迅速发展。集成电路产业的高速发展,对于集成电路产业从业者而言,也面临着一些新的挑战。新兴市场对电子产品的需求越来越多,对电子产品所具备功能的期望也越来越高。这也对集成电路产业提出了新的要求,即如何设计出具备更多功能的高性能芯片。尤其是进入到后摩尔时代,考虑到市场的经济效益,芯片越晚交付,所需要的经济成本就越高,创造的经济效益就越少。因此,这也对芯片设计过程的周期提出了要求。如图1所示,芯片设计可以分为前端设计(即图1的s110,前端设计)和后端设计(即图1的s120的后端设计),后端设计在流片(如图1,在后端设计之后还包括s130的流片过程)之前,因此后端设计的质量好坏、设计周期对于整个工程的是否能按时完成交付,将芯片送往代工厂进行流片都是非常重要的。
40.相关技术采用层次化物理设计方法对芯片进行后端设计,层次化设计方法与展平式设计相比,更适用于规模比较大的芯片。它最大的特点就是首先要对芯片进行整体分析规划,这是为了对芯片进行分割。主要思路是将一个大的设计分成若干个子分割块(即子模块),每个分割块在完成各自的物理设计时是相互独立的,可以交由不同的设计团队进行物理设计,在时间周期上也是可以并行进行的。但是层次化物理设计中,每一个模块与其他相关大模块和顶层之间的时序约束需要各自独立实现收敛,如果某些模块不能收敛,它会要求在顶层重新做约束分配,直到实现模块和顶层都收敛的结果。具体的层次化设计流程图如图2所示,主要包括以下几个步骤:s121,整体布图规划;s122,子模块的指定;s123,快速布局布线;s124,partition 的接口分配和时序分配;s125,芯片分割;s126,子模块和顶层的物理设计,以及s127,顶层整合。
41.本技术的实施例涉及顶层的物理设计阶段的实现过程。
42.下面结合图3-图9示例性阐述相关技术在顶层物理设计阶段存在的问题。
43.需要说明的是,一条建立时间的时序检查路径如图3所示,建立时间检查的原理是到达时间比要求时间小。到达时间指从时钟源端(如图3所示的clk端)到后级逻辑器件(如图3所示第二寄存器ff2)的数据输入端的总延时,即

+

+

+

,图3包括第一缓冲器r1、第二缓冲器r2、第五缓冲器r5、第三反相器r3、第四反应器r4、第五反相器c、二输入与门a,二输入或门b以及二选一的数据选择器d;要求时间是指下一周期(t)从时钟源端(如图3所示的clk端)到后级逻辑器件(如图3所示第二寄存器ff2)的时钟输入端,再加后级逻辑器件的建立时间值所构成的总延时,一般地,要求时间还会再加上一个不确定值uncertainty,即而要求时间required time是指下一周期从clk端到后级寄存器的时钟输入端(图中未示出该端),即t、第一时序段

、第五时序段

、第六时序段

以及未知时序段uncertainty的和:t+

+

+

+uncertainty。因此,建立时间满足的条件就是(t+

+

+

+uncertainty)-(

+

+

+

)=(t+
⑤‑②
)+(uncertainty+
⑥‑③‑④
)《0,图3还包括第一寄存器ff1,

+

+

+

即计算第一时序段

、第二时序段

、第三时序段

以及第四时序段

的和。
44.如图4所示为顶层设计中的一条时序路径,其中右侧虚线框内的内容为这条时序路径在子模块a中的部分,可以理解的是只有在展平式分析时才能看到如图4虚线框内的器
件,这条完整时序路径是由顶层第一时序段

、第二时序段

、第三时序段

、第七时序段


、第八时序段


及子模块a内的时序段第九时序段

''
、第六时序段

、第十时序段

''
组成。在进行层次化顶层物理设计时,虚线框内的内容为黑盒子,具体如图5所示,层次化顶层只能读到图5的clka和ina等子模块a的输入端脚和输出端脚及其在lib库中的信息,即图5中的第十一时序段


。子模块a的lib库中对于ina的描述是包括了时钟信息即第八时序段


的,因此在顶层设计中,对于时钟树综合之前的步骤而言,当子模块作为时序检查的前级时,是多计算了第八时序段


这段时钟延时的,导致子模块延时加大,是不准的。
45.如图6所示为顶层设计中的一条时序路径,其中左侧虚线框内的内容为这条时序路径在子模块b中的部分,只有在展平式分析时才能看到如图6,这条完整时序路径是由顶层时序段第一时序段

、第五时序段

、第六时序段

、第十二时序段

''''
及子模块b内的第二时序段

、第三时序段

、第十三时序段

'''
组成。在进行层次化顶层物理设计时,虚线框内的内容为黑盒子,具体如图7所示,层次化顶层其能读到clkb和outb等子模块b的输入输出端脚及其在lib库中的信息,即图6中的

+

+

'''
。子模块b的lib库中对于outb的描述包括了时钟信息

的,因此在顶层设计中,对于时钟树综合之前的步骤而言,当子模块作为时序检查的后级时,是在原有数据路径的基础上去掉

这段时钟延时的,是不准的。
46.如图8所示为顶层设计中的一条时序路径,其中左侧和右侧虚线框内的内容为这条时序路径在子模块b和子模块a中的部分,只有在展平式分析时才能看到如图8,这条完整时序路径是由顶层时序段:第一时序段

、第五t时序段

t、第四t时序段

t和子模块a内的第四a时序段

a、第五a时序段

a,以及子模块b的第二时序段

、第三时序段

、第四b时序段

b,以及ff2的本身的setup值

组成。在层次化顶层物理设计时,虚线框内的内容为黑盒子,具体如图9所示,层次化顶层只能读到clkb和outb等子模块b的输入输出端脚及其在lib库中的信息,及

+

+

b,因此在顶层设计中,对于时钟树综合之前的步骤而言,当子模块作为时序检查的既作为前级和又作为后级时,延时也是不准的。
47.由上述描述可知,子模块lib中是包含了时钟延时的,层次化顶层物理设计是带有这些信息在做优化的,物理设计在做时钟树综合之前又是不考虑时钟延时的,都是理想时钟,显然这是矛盾的,这势必造成物理设计在时钟树综合前对子模块的时序计算及处理均是不准确的,因此本技术的实施例提供一种矫正时序的方法就是来矫正这一缺陷。
48.下面结合图10示例性阐述本技术实施例提供的一种顶层物理设计的方法。
49.如图10所示,本技术实施例提供一种顶层物理设计的方法,该方法包括:s301,根据子模块在任一条顶层时序路径中的属性信息确定约束值,其中,所述属性信息用于表征在所述顶层时序路径中所述子模块属于前级还是后级;以及s302,至少根据所述约束值完成顶层物理设计。
50.本技术的一些实施例根据子模块在顶层时序路径中属于前级寄存器还是属于后级寄存器来确定对应的约束值,目的在于降低顶层物理设计过程中与底层子模块相关的时序悲观度延迟变化。
51.下面示例性阐述若任一子模块作为某条顶层时序路径的前级寄存器时如何确定约束值。
52.在本技术的一些实施例中,s101示例性包括:第一步,若确认所述子模块属于所述前级,则将第一时钟长度值作为所述约束值,
其中,所述第一时钟长度值是与从所述子模块的输出端脚向前追溯至所述子模块包括的至少一个内部逻辑器件的延时值相关。
53.例如,在本技术的一些实施例中,该第一时钟长度值是由时钟信号从各第一级时序单元到达所述子模块的输出端脚的时钟传播时长确定的(例如,这些值的均值或者中值等),其中,每个第一级时序单元位于所述子模块上且所述第一级时序单元穿过所述子模块的所述输出端脚与所属子模块外的时序单元构成一条完整的时序路径。也就是说,本技术的一些实施例通过确定从子模块的输出端脚到该子模块上与输出端脚邻近的第一级时序单元的时序信号的传播时长。
54.在本技术的一些示例中该第一时钟长度值是时延值的均值。例如,在本技术的一些实施例中,在所述将第一时钟长度值作为所述约束值之前,所述方法还包括:从所述子模块的所述输出端脚往前分别追溯至n个第一级时序单元,获取与每个第一级时序单元对应的延时值,其中,n为大于或等于1的整数;计算所有所述延时值的均值得到所述第一时钟长度值。本技术的一些实施例将从子模块的输出端脚追溯至各第一级时序单元的延时值的均值作为约束值提升得到的约束值的准确性。
55.第二步,所述至少根据所述约束值完成顶层物理设计,包括:将所述第一时钟长度值作为时序优化的悲观约束值,完成所述顶层物理设计。
56.例如,在本技术的一些实施例中,所述将所述第一时钟长度值作为时钟树后时序优化的悲观约束值完成所述顶层物理设计,包括:根据所述第一时钟长度值设置第一工程指令,其中,所述第一工程指令用于设置加严优化力度;根据所述第一工程指令完成所述顶层物理设计。本技术的一些实施例将在顶层时序路径中与前级的寄存器对应的底层子模块的输出时序逻辑的平均长度作为约束值,并根据该约束值构造工程指令,以便指导布局及完成时钟树综合前的优化。
57.可以理解的是,本技术的一些实施例通过执行上述第一步和第二步可实现,通过确定从输出端脚到对应子模块的内部逻辑器件的延时值计算该子模块作为顶层时序路径前级寄存器时,对应的顶层物理设计的约束值,提升得到的约束值的准确性。
58.下面示例性阐述若任一子模块作为某条顶层时序路径的后级寄存器时如何确定约束值。
59.在本技术的一些实施例中,s101示例性包括:第一步,若确认所述子模块属于所述后级,则将第二时钟长度值作为所述约束值,其中,所述第二时钟长度值是与从所述子模块的输入端脚向后追溯至所述子模块包括的至少一个内部逻辑器件的延时值相关的。
60.例如,在本技术的一些实施例中,该第二时钟长度值是由时钟信号从所述子模块的时钟输入端到达各第一级时序单元的时钟传播时长确定的(例如,这些值的均值或者中值等),其中,每个第一级时序单元位于所述子模块上且所述第一级时序单元是与所述子模块的所述输入端口直连的逻辑器件。本技术的一些实施例通过获取第一级时序单元的延时值得到子模块作为顶层时序路径上的后级寄存器时的延时值,提升处理速度。
61.在本技术的一些示例中该第一时钟长度值是时延值的均值。例如,在本技术的一些实施例中,在所述将第二时钟长度值作为所述约束值之前,所述方法还包括:从所述子模块的所述时钟输入端往后分别追溯至m个第一级时序单元,获取与每个第一级时序单元对
应的延时值,其中,m为大于或等于1的整数;计算所有所述延时值的均值得到所述第二时钟长度值。本技术的一些示例通过计算均值得到约束值,提升数据处理速度。
62.第二步,所述至少根据所述约束值完成顶层物理设计,包括:将所述第二时钟长度值作为时序优化的乐观约束值完成所述顶层物理设计。
63.在本技术的一些实施例中,所述将所述第二时钟长度值作为时序优化的乐观约束值完成所述顶层物理设计,包括:将所述第二时钟长度值作为所述子模块的时钟输入端时序放松值,并根据所述时序放松值设置第二工程指令,其中,所述第二工程指令用于设置放松优化力度;根据所述第二工程指令完成所述顶层物理设计。本技术的一些实施例通过携带第二时钟长度值的工程指令完成顶层物理设计,提升顶层物理设计的效果。
64.需要说明的是,在本技术的一些实施例中,上述第一级时序单元包括:寄存器、门控单元和存储单元中的一个或多个。在本技术的一些实施例中,所述约束值是通过对所述子模块的静态时序分析得到的。
65.在本技术的一些实施例中,所述方法还包括:获取所述子模块的时序库文件;其中,s302所述至少根据所述约束值完成顶层物理设计,包括:根据所述约束值以及所述时序库文件完成所述顶层物理设计。下面结合图11示例性阐述该过程。
66.如图11所示,本技术一些实施例提供的顶层物理设计的方法示例性包括:s401,提取子模块时序库文件在自上而下的层次化物理设计(或者自下而上的层次化物理设计)中,顶层包含底层一个或多个子模块及其自身的顶层逻辑部分,顶层读入底层模块的时序信息库文件和物理信息库文件,并依据时序信息库和物理信息库进行物理设计,顶层设计只有读入完整的子模块设信息,才能保证顶层设计的准确,因此子模块的设计进度应当早于顶层设计。子模块的时序信息库文件应当是在完整物理设计之后提取的,可采用静态时序分析工具或者布局布线工具进行提取。
67.s402,读取子模块的时序库文件顶层设计读入子模块的时序库文件:底层子模块对于顶层而言,就是普通的时序单元,读入时序信息库文件,布局布线工具依据时序信息库文件内容进行查表计算优化时序;布局布线工具依据物理信息库库文件进行物理位置摆放及优化。
68.s403,获取子模块所有输入端脚相对应的内逻辑后级逻辑器件的平均时钟长度(作为第二时钟长度值的一个示例)和所有输出端脚的内逻辑前级逻辑器件的平均时钟长度(作为第一时钟长度值的一个示例)。
69.子模块所有输入端脚相对应的内逻辑后级逻辑器件(该处的内逻辑后级逻辑器件是该子模块的内部逻辑器件,如寄存器、静态存储单元等)的平均时钟长度和所有输出端脚的内逻辑前级逻辑器件(该处的内逻辑后级逻辑器件是该子模块的内部逻辑器件,如寄存器、静态存储单元等)的平均时钟长度。
70.顶层设计只关心底层子模块的输入输出端脚及时序信息库中对输入输出端脚的时序信息,因此对于底层子模块,在提供时序信息库文件的同时,需要提供所有输入接口逻辑的相应平均时钟长度和所有输出接口逻辑的相应平均时钟长度,具体操作方式为:对底层子模块进行静态时序分析,从每个输入接口端脚(或称为输入端脚)出发,往后追溯至第一级时序单元(如寄存器、门控单元或存储单元等),然后统计该时序单元的时钟传播长度,
统计出所有输入端脚所相关的时序单元的时钟传播长度,计算平均值,记为该输入接口时序逻辑的平均时钟长度,需要说明的是,这里的平均值是统计从该模块的时钟输入端到达这些寄存器或者门控单元中各器件的时钟输入管脚的延时值,再计算这些时间的平均值;同理,从每个输出端脚出发,往前追溯至于第一级时序单元(如寄存器、门控单元或存储单元等),然后统计该时序单元的时钟传播长度,统计出所有输出端脚所相关的时序单元的时钟传播长度,计算平均值,记为该输出接口时序逻辑的平均时钟长度。
71.s404,在层次化顶层物理设计时,对到子模块输入端脚的时序路径设置放松优化力度的工程指令;将从子模块输出端脚出发的时序路径设置加严优化力度的工程指令。
72.在层次化顶层物理设计时,对到子模块输入端脚的时序路径设置放松优化力度的工程指令,将s403步中计算得的相应平均时钟长度(即输入接口时序逻辑的平均时钟长度)写为对该子模块相应输入端脚时序放松的值;将从子模块输出端脚出发的时序路径设置加严优化力度的工程指令,将s403中计算得的相应平均时钟长(输出接口时序逻辑的平均时钟长度)度写为对该子模块相应输出端脚时序约严的值。
73.s405,在布局布线工具中,读入工程指令,指导布局及时钟树综合前的优化完成。
74.在布局布线工具中,读入s404写出的工程指令,指导布局及时钟树综合前的优化完成。
75.s406,取消设置的约束文件,完成时钟树综合及后续优化任务,完成顶层物理设计。
76.取消s404设置的约束文件,完成时钟树综合及后续优化任务,完成顶层物理设计。
77.下面通过图12-图19示例性阐述采用本技术技术方案带来的技术效果。下述示例中以子模块既作为顶层时序路径的第一级,又作为另一条顶层时序路径的第二级为例进行详细说明。需要说明的是,图12-图19中涉及的各单元的含义与图3-图9对应相同形状的单元属于相同器件,为避免重复下文仅介绍相关的技术效果,并不对这些图上的符号或者时序编号等进行重复说明。
78.如图12所示为层次化顶层物理设计按照传统方法优化带时钟信息子模块相关的一条时钟树综合前的时序路径,其中子模块b为时序路径的第一级,根据与该子模块对应的具体时序报告可知,该条时序路径在时钟树综合前有违反,违反值为-0.262ns。结合对图3的详细描述可知图12包括子模块b、二输入或门b、第五反相器c、二选一的数据选择器d、第二寄存器ff2。
79.如图13所示为层次化顶层物理设计按照传统方法优化带时钟信息子模块相关的一条时钟树综合前的时序路径,其中子模块a为时序路径的第二级,根据与该子模块对应的具体时序可知,该条时序路径在时钟树综合前时序是满足的,裕量为0.089ns。结合对图3的详细描述可知图13包括子模块a、第一寄存器ff1、第六缓冲器b1、第七缓冲器b2、第八缓冲器b3、第九缓冲器b4以及二输入与门a。
80.如图14所示为层次化顶层物理设计按照传统方法优化带时钟信息子模块相关的一条时钟树综合后的时序路径,其中子模块为时序路径的第一级,根据与该子模块对应具体时序报告可知,该条时序路径在时钟树综合前有违反,时序满足,裕量为0.003ns。结合对图3的详细描述可知图14包括子模块b、第二寄存器ff2、第一缓冲器r1、第二缓冲器r2、第五缓冲器r5、第六缓冲器r6、第三反相器r3、第四反应器r4、第五反相器c,二输入或门b以及二
选一的数据选择器d。
81.如图15所示为层次化顶层物理设计按照传统方法优化带时钟信息子模块相关的一条时钟树综合后的时序路径,其中子模块为时序路径的第二级,根据与该子模块对应的具体时序报告可知,该条时序路径在时钟树综合前时序是违反的,违反量为-0.063ns。结合对图3的详细描述可知图15包括子模块b、第二寄存器ff2、二输入或门b、第一缓冲器r1、第二缓冲器r2、第五缓冲器r5、第六缓冲器r6、第三反相器r3、第四反应器r4、第五反相器c、二输入或门b以及二选一的数据选择器d。
82.下面用本技术一些实施例的顶层物理设计方法对矫正时序的方法进行矫正的过程如下:首先对子模块b进行处理,第一步,进行静态时序分析,将到达outb端往前追溯至第一级时序单元(如寄存器、门控单元或存储单元等)全部抓出来,记为bout_regs(bin_regs),或者,进行静态时序分析,将到达inb端往后追溯至最后一级时序单元(如寄存器、门控单元或存储单元等)全部抓出来,记为bin_regs;第二步,在静态时序分析的不同工艺端脚下均报出时钟clkb到达boutb_regs(bin_regs)中每一个时序逻辑单元的时钟延时,分别记为cornerx_latency_outb_reg[i](cornerx_latency_inb_reg[j]),其中i(j)表示不同寄存器或时序逻辑单元的记号,cornerx表示不同的工艺端脚;第三步,计算平均时钟长度,即每一个工艺端角下的latency_outb_reg[i](cornerx_latency_inb_reg[j])的和加起来求平均值,记为cornerx_average_latency_outb(cornerx_average_latency_inb)。示例在慢工艺端角ssg下,average_latency_outb为0.350ns,cornerx_average_latency_inb为0.330ns。
[0083]
然后在层次化顶层物理设计时,分别对模块b输入端脚inb和输出端脚outb所在的时序路径设置放松优化力度的工程指令,即对模块b作为时序路径第一级的时序路径,在布局布线工具对顶层设计进行时钟树综合前的时序优化时,时序放松0.350ns;对模块b作为时序路径第二级的时序路径,在布局布线工具对顶层设计进行时钟树综合前的时序优化时,时序约紧0.330ns。并在完成时钟树综合前的时序优化后,将该约束取消。
[0084]
如图16所示为本技术一些实施例的一种矫正时序的方法进行矫正后,顶层优化带时钟信息子模块相关的一条时钟树综合前的时序路径,其中子模块为时序路径的第一级,可见,数据路径优化与图12不同多了第七缓冲器m,且通过时序报告可知该条时序路径在时钟树综合前时序是满足的,裕量为0.148ns。
[0085]
如图17所示为本技术一些实施例的一种矫正时序的方法进行矫正后,顶层优化带时钟信息子模块相关的一条时钟树综合前的时序路径,其中子模块为时序路径的第二级,可见,数据路径优化与图13不同,少了第八缓冲器b3以及第九缓冲器b4,且根据对应的具体时序报告可知,该条时序路径在时钟树综合前时序是违反的,因为子模块带有时钟信息,因此这里是有违反的,违反值为-0.180ns,布局布线工具会看到该处违反,进行优化。这是有别于传统方法的一点。
[0086]
如图18所示为本技术一些实施例提供的一种矫正时序的方法进行矫正后,顶层优化带时钟信息子模块相关的一条时钟树综合后的时序路径,其中子模块为时序路径的第一级,可见,数据路径优化与图14不同,少了一级即第六缓冲器r6,根据对应的具体时序报告可知,该条时序路径在时钟树综合前时序是满足的,裕量值为0.015ns。
[0087]
如图19所示为本技术一些实施例提供的一种矫正时序的方法进行矫正后,顶层优化带时钟信息子模块相关的一条时钟树综合后的时序路径,其中子模块为时序路径的第二级,可见,数据路径优化与图15不同,至少减少了第三反相器r3以及第四反相器r4,根据对应的具体时序报告可知,该条时序路径在时钟树综合前时序是满足的,裕量值为0.190ns。
[0088]
本技术的一些实施例提供一种层次化物理设计的方法,所述方法包括:完成子模块物理设计;以及采用上述任一实施例所述的方法完成顶层物理设计。
[0089]
请参考图20,图20示出了本技术实施例提供一种布局布线装置,应理解,该装置与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该布局布线装置,包括:约束值获取模块501以及顶层物理设计模块502。
[0090]
约束值获取模块,被配置为根据子模块在任一条顶层时序路径中的属性信息确定约束值,其中,所述属性信息用于表征在所述顶层时序路径中所述子模块属于前级还是属于后级。
[0091]
顶层物理设计模块,被配置为至少根据所述约束值完成顶层物理设计。
[0092]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0093]
本技术的一些实施例提供一种布局布线方法,所述方法包括:读取工程指令,其中,所述工程指令包括第一工程指令或者第二工程指令,所述第一工程指令将第一时钟长度值作为时钟树综合前的约束值,所述第二工程指令用于将第二时钟长度作为时钟树综合前的约束值,所述第一时钟长度值和所述第二时钟长度值是通过对应子模块在顶层时序路径中属于前级还是后级确定的;依据所述工程指令完成布局布线。
[0094]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的布局布线方法的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0095]
本技术的一些实施例提供一种芯片,所述芯片是采用如上述任一实施例提供的方法进行后端设计的得到的。
[0096]
本技术的一些实施例提供一种后端设计装置,所述后端设计装置采用如上述任一实施例所述方法进行后端设计。
[0097]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0098]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部
分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0099]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0100]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0101]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
[0102]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1