一种DC综合时序优化方法、装置、设备及存储介质与流程

专利2022-05-10  36


一种dc综合时序优化方法、装置、设备及存储介质
技术领域
1.本发明涉及集成电路的技术领域,尤其涉及一种dc综合时序优化方法、装置、设备及存储介质。


背景技术:

2.随着科学技术的发展,对芯片的功能性、稳定性等提出了越来越严苛的要求,也使得芯片的规模越来越大、逻辑越来越复杂。同时,由于市场的竞争,对于整个芯片设计的时间要求也越来越短。在芯片设计流程中,利用dc综合(design compile,synopsys公司电路综合工具)将前端工程师设计的rtl(register transfer level,寄存器转换级电路)代码转换为门级网表,交给后端工程师进行后端设计,是芯片设计中承上启下的一环。如果dc综合出现问题,会导致rtl无法转化成正确的门级网表,也就无法进行正确的后端设计,直接导致芯片流片失败。因此dc综合往往需要工程师反复修改,进行面积、功耗和时序等的优化,尤其是针对大规模、超大规模的逻辑设计,在dc综合优化上将会耗费大量时间,因此dc综合的自动优化时十分必要的。
3.传统dc综合的过程包括以下步骤:首先由工程师根据前端设计人员设计的rtl代码,设计约束文件,进行dc综合生成门级网表,然后根据同时生成的报告查看综合结果,检查是否有时序违反,如果有,则需要工程师根据报告,分析问题,修改约束,重新进行dc综合。然而随着现在对芯片性能的要求越来越高,芯片设计时都会有非常庞大且复杂的逻辑、算法,当逻辑越大,算法越复杂,rtl的代码量就会越大,相应的dc就需要更多的时间将其转化为门级网表,当dc完成一次综合后,如果存在如时序违反等的问题,就需要工程师修改约束重新进行综合,而反复进行约束修改进行综合就会浪费大量时间,降低效率。


技术实现要素:

4.有鉴于此,有必要针对传统人工进行dc综合优化的耗费人力且效率较低的问题,提供一种dc综合时序优化方法、装置、设备及存储介质。
5.根据本发明的第一方面,提供了一种dc综合时序优化方法,所述方法包括:
6.初始化dc综合参数和时序分析参数;
7.执行dc综合操作以生成综合结果及综合报告;
8.响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
9.响应于存在重大时序违反,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
10.响应于不存在重大时序违反,则输出本次dc综合操作对应的综合结果。
11.在一些实施例中,所述初始化dc综合参数和时序分析参数的步骤包括:
12.初始化dc综合参数包括初始化库文件选择、时钟设置、复位设置、输入输出延时、
综合面积、输入输出负载、线载模型、最大转换时间、最大扇出数、关键路径分组,其中,时钟设置包括时钟周期、时钟占空比、时钟抖动、多时钟周期;
13.初始化时序分析参数包括初始化时钟周期。
14.在一些实施例中,所述响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反的步骤包括:
15.计算时钟周期的百分之十五以作为比较值,
16.利用report timing命令从综合报告中读取violated选项的slack值并判断slack值是否为负数;
17.响应于slack值为负数,则将slack值的绝对值与所述比较值进行比较;
18.响应于slack值的绝对值大于所述比较值,则确认dc综合操作存在重大时序违反;
19.响应于slack值的绝对值小于等于所述比较值,则确认dc综合操作不存在重大时序违反。
20.在一些实施例中,所述多个预设调整项目包括调整dc综合编译选项、修改输入输出延时项目、修改输入输出驱动能力项目,其中所述修改输入输出驱动能力项目包括修改输入输出负载和修改最大扇出数。
21.在一些实施例中,所述预设优先级排序为调整dc综合编译选项、修改输入输出延时项目、修改输入输出驱动能力项目的优先级依次由高到低。
22.在一些实施例中,所述dc综合编译选项包括低、中、高三种编译模式。
23.在一些实施例中,所述修改输入输出延时项目中输入输出延时的范围为时钟周期的30%至50%。
24.根据本发明的第二方面,提供了一种dc综合时序优化装置,所述装置包括:
25.初始化模块,用于初始化dc综合参数和时序分析参数;
26.综合模块,用于在dc综合完成参数初始化时,则执行dc综合操作以生成综合结果及综合报告;
27.时序分析模块,用于在执行完dc综合操作时,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
28.参数调整模块,用在存在重大时序违反时,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
29.输出模块,用于不存在重大时序违反时,则输出本次dc综合操作对应的综合结果。
30.根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
31.至少一个处理器;以及
32.存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的dc综合时序优化方法,所述方法包括以下步骤:
33.初始化dc综合参数和时序分析参数;
34.执行dc综合操作以生成综合结果及综合报告;
35.响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
36.响应于存在重大时序违反,则基于预设调整规则对dc综合进行参数调整并重新执
行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
37.响应于不存在重大时序违反,则输出本次dc综合操作对应的综合结果。
38.根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的dc综合时序优化方法,所述方法包括以下步骤:
39.初始化dc综合参数和时序分析参数;
40.执行dc综合操作以生成综合结果及综合报告;
41.响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
42.响应于存在重大时序违反,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
43.响应于不存在重大时序违反,则输出本次dc综合操作对应的综合结果。
44.上述一种dc综合时序优化方法,通过综合报告、以及时序分析参数以确定是否存在重大时序违反,对于存在重大时序违反的情况基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,直至综合操作后不出现重大时序违反时输出综合结果,实现dc综合时自动时序优化,在系统运行期间无需工程师干预或者人工调整,能够自动输出最优结果,极大节省了时间,提高工作效率。
45.此外,本发明还提供了一种dc综合时序优化装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
46.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
47.图1为本发明一个实施例提供的一种dc综合时序优化方法流程示意图;
48.图2为本发明一个实施例提供的dc综合时序优化的逻辑框图;
49.图3为本发明另一个实施例提供的dc综合时序优化方法流程图;
50.图4为本发明又一个实施例提供的一种dc综合时序优化装置结构示意图;
51.图5本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
52.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
53.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
54.在一个实施例中,请参照图1所示,本发明提供了一种dc综合时序优化方法,所述方法包括以下步骤:
55.s100,初始化dc综合参数和时序分析参数;
56.s200,执行dc综合操作以生成综合结果及综合报告;
57.s300,响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
58.s400,响应于存在重大时序违反,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
59.s500,响应于不存在重大时序违反,则输出本次dc综合操作对应的综合结果。
60.上述一种dc综合时序优化方法,通过综合报告、以及时序分析参数以确定是否存在重大时序违反,对于存在重大时序违反的情况基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,直至综合操作后不出现重大时序违反时输出综合结果,实现dc综合时自动时序优化,在系统运行期间无需工程师干预或者人工调整,能够自动输出最优结果,极大节省了时间,提高工作效率。
61.在又一个实施例中,所述初始化dc综合参数和时序分析参数的步骤包括:
62.初始化dc综合参数包括初始化库文件选择、时钟设置、复位设置、输入输出延时、综合面积、输入输出负载、线载模型、最大转换时间、最大扇出数、关键路径分组,其中,时钟设置包括时钟周期、时钟占空比、时钟抖动、多时钟周期;
63.初始化时序分析参数包括初始化时钟周期。
64.在又一个实施例中,步骤s300包括以下子步骤:
65.计算时钟周期的百分之十五以作为比较值,
66.利用report timing命令从综合报告中读取violated选项的slack值并判断slack值是否为负数;
67.响应于slack值为负数,则将slack值的绝对值与所述比较值进行比较;
68.响应于slack值的绝对值大于所述比较值,则确认dc综合操作存在重大时序违反;
69.响应于slack值的绝对值小于等于所述比较值,则确认dc综合操作不存在重大时序违反。
70.在又一个实施例中,所述多个预设调整项目包括调整dc综合编译选项、修改输入输出延时项目、修改输入输出驱动能力项目,其中所述修改输入输出驱动能力项目包括修改输入输出负载和修改最大扇出数。
71.在又一个实施例中,所述预设优先级排序为调整dc综合编译选项、修改输入输出延时项目、修改输入输出驱动能力项目的优先级依次由高到低。
72.在又一个实施例中,所述dc综合编译选项包括低、中、高三种编译模式。
73.在又一个实施例中,所述修改输入输出延时项目中输入输出延时的范围为时钟周期的30%至50%。
74.在又一个实例中,为了便于理解本发明的技术方案,请结合图2所示,本发明的构思主要由以几方面组成:
75.第一部分,初始化参数:初始化参数的主要功能是初始化各种参数设置,包括传给
dc综合的综合参数和传给结果分析的分析参数。其中给到dc综合的参数主要包括库文件选择、时钟设置(时钟周期、时钟占空比、时钟抖动、多时钟周期等),复位设置、输入输出延时、综合面积、输入输出负载、线载模型、最大转换时间、最大扇出数、关键路径分组等;给到结果分析的参数主要包括时钟周期,结果分析的参数主要用来计算时序信息。
76.第二部分,dc综合工具进行综合操作,dc综合工具在接收到初始化给到的参数后,先进行一次dc综合,以及后续修改参数后在进行dc综合;
77.结果分析,读取综合结果和综合报告,检查时序是否符合要求,如果不符合,则会进行相应的参数调整,重新反馈到dc综合进行综合工作,直到输出最优结果为止。具体来说检查时序是否符合要的方式为:接收初始化时给到的分析参数信息,计算当前设计所需要的时序要求,当dc综合进行完综合操作后,结果分析会读取结果,进行分析,如果不满足要求,则会根据结果进行约束参数的调整,反馈给dc综合重新进行综合;如果满足要求,则会输出综合结果。
78.主要结合dc tcl语句来实现(包括条件转移语句、循环语句),控制相应的流程进行跳转。在初始化参数部分中,可以初始化一个模板,工程师可以根据当前rtl设计进行初步参数的选择添加,添加完成后,当这些参数传递到dc综合工具,dc综合工具会根据这些参数自动生成dc可以识别的tcl脚本语言,同时添加必要的语句(例如对时钟信号和复位信号添加dont touch),然后会控制dc启动综合工作,综合完成后,会通过report timing命令输出时序结果,该结果会在结果分析时读取,如果结果分析时读取到时序违反(slack为负值),此时会根据slack的大小,在一点范围内进行参数修正;反之则输出综合结果。
79.一般认为,如果violated(即slack为负值的情况下的绝对值)的大小超过当前时钟周期的15%,则认为存在重大时序违反,需要结果分析重新调整参数反馈给dc综合重新进行综合。如果时序不满足要求,出现了重大的时序违反,结果分析可以通过以下预设调整项目调整参数(按优先级排序),反馈给dc综合:
80.预设调整项目1:调整编译选项,compile

map_effort(low|medium|high)命令,选择不同的编译要求,编译结果和编译时间都各不相同,初始推荐使用中级medium,而高级high可以获得最好的效果,但编译时间最长;如果还无法达到要求,可以使用compile_ultra。
81.预设调整项目2:修改输入输出延时,输入输出延时对时序的影响重大,一般默认可以设置为当前时钟周期的40%,在系统运行初始化时,可以依据后端工程师的经验预先设定一个范围,例如当前时钟周期的30%

50%,在这个范围内进行面积、时序的最优选择即可。
82.预设调整项目3,修改输入输出驱动能力,一般情况下会有一个默认的驱动能力,此时也可跟后端工程师的经验设置几个驱动能力范围和扇出数范围,在这个范围里进行最优的选择。
83.举例来说,假设首次dc综合后发现存在重大时序违反,此时若初始默认的编译选项为medium,则将编译选项修改为high,重新进行dc综合如果还存在重大时序违反,则修改输入输出延时成为最高优先级的项目,可以尝试修改多种数值的输入输出延时并每次修改后都进行dc综合以尝消除重大时序违反,同理假如修改输入输出延时也没有消除重大时序违反再以类似方式修改修改输入输出驱动能力并进行重新综合。通过以上几中预设调整项
目的参数修改,结果分析反馈给dc综合进行时序优化,dc综合重新进行dc综合后得出最优结果。如果以上均不能满足时序要求,则需要工程师检查初始化参数是否设置正确,如果初始化参数设置无误,则需要反馈前端工程师,进行rtl代码的修改。
84.具体来说,结合图3所示,首先前端设计人员完成rtl设计后,dc综合工程师会可参考前端设计人员设计时钟、复位等相关设计内容的经验,然后根据后端设计人员对时序要求的相关内容依据经验些信息输入给初始化模块,初始化时会将这些信息汇总后添加到模板中,传递给dc综合工具,dc综合工具接收到信息,再添加一些dc综合必要的语句命令,生成dc可以执行的tcl文件,开始进行第一次dc综合。当dc综合完成后,dc综合报告会在结果分析时读取,检查是否存在violated(slack为负值),并判断violated的大小是否满足15%的要求,如果满足,则输出结果;如果不满足,则按照调整编译选项、修改输入输出延时、修改驱动能力的优先级,调整参数反馈给dc综合模块,进行第二次综合、第三次综合
……
直到达到满足时序要求后停止,输出结果。如果以上均无法满足要求,可以通过前端工程师修改rtl代码后,再次尝试dc综合。
85.本发明的方法至少具备以下有益技术效果:
86.(1)通过dc

tcl控制整个流程跳转运行,输出初始化参数后,即可自动运行dc综合操作和时序优化,通过自动检索综合报告的slack信息,及时反馈调整参数给到dc,形成闭环,自动完成dc的时序优化。
87.(2)在完成一次初始化设置后,即可自动进行dc综合工作和时序优化工作,整个过程人工参与,极大节省了芯片开发时间,提升了工作效率。
88.在又一个实施例中,请结合图4所示,本发明还提供了一种dc综合时序优化装置60,,所述装置包括:
89.初始化模块61,用于初始化dc综合参数和时序分析参数;
90.综合模块62,用于在dc综合完成参数初始化时,则执行dc综合操作以生成综合结果及综合报告;
91.时序分析模块63,用于在执行完dc综合操作时,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
92.参数调整模块64,用在存在重大时序违反时,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
93.输出模块65,用于不存在重大时序违反时,则输出本次dc综合操作对应的综合结果。
94.上述一种dc综合时序优化装置,通过综合报告、以及时序分析参数以确定是否存在重大时序违反,对于存在重大时序违反的情况基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,直至综合操作后不出现重大时序违反时输出综合结果,实现dc综合时自动时序优化,在系统运行期间无需工程师干预或者人工调整,能够自动输出最优结果,极大节省了时间,提高工作效率。
95.需要说明的是,关于dc综合时序优化装置的具体限定可以参见上文中对dc综合时序优化方法的限定,在此不再赘述。上述dc综合时序优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中
的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
96.根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的dc综合时序优化方法,具体来说,所述方法包括以下步骤:
97.初始化dc综合参数和时序分析参数;
98.执行dc综合操作以生成综合结果及综合报告;
99.响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
100.响应于存在重大时序违反,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
101.响应于不存在重大时序违反,则输出本次dc综合操作对应的综合结果。根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的dc综合时序优化方法,具体来说,包括执行以下步骤:
102.初始化dc综合参数和时序分析参数;
103.执行dc综合操作以生成综合结果及综合报告;
104.响应于执行完dc综合操作,则基于所述综合报告、以及所述时序分析参数以确定是否存在重大时序违反;
105.响应于存在重大时序违反,则基于预设调整规则对dc综合进行参数调整并重新执行dc综合操作,其中,所述预设调整规则为基于多个预设调整项目的预设优先级排序每次调整优先级最高的预设调整项目;
106.响应于不存在重大时序违反,则输出本次dc综合操作对应的综合结果。
107.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
108.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例
中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
109.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
转载请注明原文地址:https://doc.8miu.com/index.php/read-1722343.html

最新回复(0)