一种基于综合数据库实现后仿真的方法和系统与流程
未命名
08-02
阅读:102
评论:0

1.本发明涉及集成电路设计技术领域,尤其涉及一种基于综合数据库实现后仿真的方法和系统。
背景技术:
2.在现代芯片开发的过程中,随着设计难度的增加的以及项目开发时间挑战,前后端设计开发的强耦合度再次被提上了日程。为了应对现有的要求,前端(front-end)设计在设计代码的时候,应该尽量早的考虑后端(back-end)实现的诉求。此类融合通常被称为:shift-right(右移);相应的后端在做芯片实现的时候,会更进一步的通过综合向前端的设计/验证靠拢,这种融合通常被称作:shift-left(左移)。当左移和右移同时发生的时候,以中端(middle-end)为代表的中间地带逐渐变得重要起来,通过灵活调整、规划,来加速前后端的融合和减少迭代。.
3.在传统的芯片设计中,后仿真往往是验证人员最晚开始的一项工作,但是由于流片压力的加持,往往在后仿真阶段,验证人员会由于:项目时间紧迫,后仿真runtime久,以及对于x传播的处理繁琐,都会在后仿真的交付上形成了“三座大山”。所以这样一个时间紧,任务重的后仿真,往往是芯片完全成功的一个小羁绊。现有技术中芯片的常规开发流程如图1所示,在传统的业务流程中,可以看到,从功能验证的角度来看,后仿真确认后,才能触发芯片流片,但是由于流片通常都是芯片开发的重要时间节点,所以后仿真的交付时间在此流片前就显得的尤为重要。
4.但是在现有开发流程中,后仿真牵扯到的输入量比较多,包括但不限于:
5.后仿真环境搭建的挑战;
6.时序修复完成的版图实现数据;
7.sdc质量的影响;
8.版图级低功耗设计实现的影响。
9.上述几项中,通常最为影响后仿真进度的瓶颈在第二项。从版图实现和时序收敛的角度而言,通常后端的版图实现在终版数据库上,需要10~30轮左右的eco迭代,才能完成时序修复完成,版图人员在修复时序违例的同时还要兼顾物理合规以及ir分析的诉求,将上述流程局部聚焦展开,可以看到如图2所示的一个时间线。可以看到,后仿真的从版图侧取的时序干净数据库时间,基本取决于后端的修复迭代的进展状态,通常是有一个预期,但往往实际数据往往比预期的要复杂和更有挑战。由于后仿真本身的运行时间长的特点,后仿真启动的时间越晚,芯片功能仿真最终确认就会滞后,可能会进一步影响到流片时间。
技术实现要素:
10.基于现有芯片设计痛点,本发提供一种基于综合数据库实现后仿真的方法和系统,旨在解决现有技术中流片时间长的问题。
11.一种基于综合数据库实现后仿真的方法,包括:
12.步骤a1,根据综合数据库对寄存器传输级代码进行综合以生成门级网表;
13.步骤a2,通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成标准延迟格式文件;
14.步骤a3,对综合生成的门级网表以及标准延迟格式文件进行时序分析以及时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;
15.步骤a4,使用符合时序要求的门级网表以及标准延迟格式文件作为后仿真数据进行后仿真。
16.进一步的,包括:
17.在步骤a2中,对主时钟源和衍生时钟源的走线设置理想时钟。
18.进一步的,步骤a3包括:
19.步骤a31,对综合生成的门级网表以及标准延迟格式文件进行时序分析;
20.步骤a32,对建立时间进行检查;
21.步骤a33,对保持时间进行检查。
22.进一步的,步骤a32包括:
23.步骤a321,判断建立时间是否存在时序违例:
24.若是,执行步骤a322;
25.若否,继续执行步骤a33;
26.步骤a322,对建立时间进行时序虚拟修复,之后执行步骤a31。
27.进一步的,步骤a33包括:
28.步骤a331,检查保持时间是否存在时序违例:
29.若是,执行步骤a332;
30.若否,执行步骤a333;
31.步骤a332,检查建立时间裕量是否满足时序要求:
32.如否,执行步骤a334;
33.若是,执行步骤a335;
34.步骤a333,形成并输出符合时序要求的门级网表以及标准延迟格式文件;
35.步骤a334,修改建立时间裕量,之后执行步骤a31;
36.步骤a335,针对保持时间进行时序虚拟修复,之后执行步骤a333。
37.进一步的,在步骤a334中,通过提升建立时间裕量的值进行修改。
38.进一步的,在步骤a335中,通过添加延迟方式对保持时间进行时序虚拟修复。
39.进一步的,在步骤a335,中,使用静态时序分析工具中的虚拟工程变更指令对门电路基本标准单元的输入到输出的延迟和/或门电路基本标准单元之间的互连走线的延迟进行本地修改以执行保持时间的时序虚拟修复。
40.一种基于综合数据库实现后仿真的系统,使用前述的一种基于综合数据库实现后仿真的方法,包括:
41.综合模块,用于:
42.根据综合数据库对寄存器传输级代码进行综合以生成门级网表;
43.通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成生成标准延迟格式文件;
44.时序分析模块,连接综合模块,对综合生成的门级网表以及标准延迟格式文件进行时序分析,检查门级网表以及标准延迟格式文件是否符合时序要求;
45.时序修复模块,连接时序分析模块,用于对不符合时序要求的时序违例进行时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;
46.后仿真模块,连接时序修复模块和时序分析模块,使用符合时序要求的门级网表以及标准延迟格式文件作为后仿真数据进行后仿真。
47.进一步的,综合模块用于对主时钟源和衍生时钟源的走线设置理想时钟。
48.本发明的有益技术效果在于,通过综合产生后仿真的数据,将后仿真的输入数据左移(shift-left)前置,在保证数据质量的前提下,给后仿真提供了更为充裕的工作时间,加速了芯片的开发推进和降低迭代,进一步降低了后期的流片时间压力风险。
附图说明
49.图1为现有技术芯片开发流程图;
50.图2、4为现有技术时序分析与修复流程图;
51.图3、6-8为本发明一种基于综合数据库实现后仿真的方法的步骤流程图;
52.图5为现有技术中dc时序分析理想走线示意图。
53.图9为本发明一种基于综合数据库实现后仿真的系统的模块示意图。
具体实施方式
54.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
56.下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
57.参见图3,本发明提供一种基于综合数据库实现后仿真的方法,包括:
58.步骤a1,根据综合数据库对寄存器传输级代码进行综合以生成门级网表;
59.步骤a2,通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成标准延迟格式文件;
60.步骤a3,对综合生成的门级网表以及标准延迟格式文件进行时序分析以及时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;
61.步骤a4,使用符合时序要求的门级网表以及标准延迟格式文件作为后仿真数据进行后仿真。
62.进一步的,包括:
63.在步骤a2中,对主时钟源和衍生时钟源的走线设置理想时钟。
64.本发明的核心思想利用中端利用综合的特点和时序分析的理论,产生后仿真的数据,解决上述业务痛点,加速了芯片的开发推进和降低迭代。整个芯片设计,中端综合是rtl代码进入实现阶段的第一个入口,综合步骤的目的是将rtl代码经过分析,解析转化成基于
目标工艺库的门级网表,包括但不限于下列操作:逻辑映射(mapping)、基于时序/drc约束的网表优化、低功耗器件插入(upfflow)。
65.基于此,综合的输入通常为:
66.rtl代码;
67.时序约束:sdc;
68.低功耗设计策略:upf
69.综合的输出通常为:
70.门级网表:netlist
71.与门级网表配套的时序约束:sdc;
72.与门级网表配套的低功耗设计策略:upf
73.时序延迟信息:spef/sdf。
74.sdf为标准延迟格式文件。
75.在试图使用综合后的数据实现后仿真时,需要首先明确综合和版图的功能网表对于后仿真部分的差异,如下表所示:
[0076][0077][0078]
可见,综合后的数据和版图的功能网表之间的差异主要在于clock path。传统sdf标准延迟格式文件,产生方式如图4所示,传统的sdf生成过程中,版图实现会设置时钟传播,进行时序分析之前,需要开启时钟传播方式进行分析,但是综合的网表里面没有时钟树。由于dc(design compiler,综合器)在做综合的时候,为了简化分析方法和保持关注点,通常会把所有的时钟网络(clock network)设置为理想时钟(ideal clock)。dc的设置对于时序分析看起来并不构成影响,使用综合生成sdf时,对具有潜在影响,将sdf和netlist导入静态时序分析工具pt,并进行时钟树展开,时序路径(timing path)会有明显变化,存在非常大的延迟,原因在于generate clock的source即衍生时钟源后面有很大的扇出。因此,
直接根据dc里面默认的ideal clock network理想时钟网,产生的sdf文件直接被带到静态时序分析工具pt后,如果进行了时钟传播配置,会带来明显的变化,原本在dc里边干净的时序timing,在pt里边会出现违例。出现这大巨大差异的原因是在综合时,dc在利用ideal clock network分析timing的时候,通常是从clock/gen-clk source向后看,如图5所示,所有挂在主时钟/衍生时钟master-clk/gen-clk的触发器ff的时间延迟clock latency都是0(上图红色标记的net),dc综合在导出sdf的时候并不会使用这个设定。dc在report_timing和sdf的生成采用了不同的方式来处理理想时钟走线ideal clock net,是导致sdf在pt里边出现时序违例的根本原因。因此,本发明在dc产生sdf之前,使用set_ideal_net对master/genclock的高扇出的走线net进行理想化,将dc的时序信息传递下去。
[0079]
dc没有做主时钟走线和衍生时钟走线master/genclock net的时钟树综合(cts,即clock tree synthesis),但对于源时钟路径source clock path上的延迟delay、drc(design rule check,设计规则检查,包括transition、capacitance、fanout检查)有修复,所以,即使在pt里边使用了时钟传播的方式进行时序分析,其他的时钟路径clock path上的门电路基本标准单元的输入到输出的延迟(cell delay)对于时序结果的影响可以忽略。本发明通过make writelists完成dc综合,导出具有ideal clock net补丁的sdf,之后进行时序分析评估以及时序修复,形成时序干净的门级网表和sdf。
[0080]
由于数据库的形态不同,在综合数据库导出的sdf里边,复现综合时序评估里的ideal clock时,需要注意对于clock net的甄别。
[0081]
为了确保数据的一致性,用户只能对clock source net进行ideal的操作。否则会影响到数据的时序信息。通常可以使用以下命令进行获取时钟源:
[0082]
get_attribute[all_clocks]sources。
[0083]
由于综合默认是采用ideal clock进行时序检查的,所以在使用了set_ideal_net后的数据库的时序质量,理论上是维持原貌的。
[0084]
参见图6,进一步的,步骤a3包括:
[0085]
步骤a31,对综合生成的门级网表以及标准延迟格式文件进行时序分析;
[0086]
步骤a32,对建立时间进行检查;
[0087]
步骤a33,对保持时间进行检查。
[0088]
参见图7,进一步的,步骤a32包括:
[0089]
步骤a321,判断建立时间是否存在时序违例:
[0090]
若是,执行步骤a322;
[0091]
若否,继续执行步骤a33;
[0092]
步骤a322,对建立时间进行时序虚拟修复,之后执行步骤a31。
[0093]
参见图8,进一步的,步骤a33包括:
[0094]
步骤a331,检查保持时间是否存在时序违例:
[0095]
若是,执行步骤a332;
[0096]
若否,执行步骤a333;
[0097]
步骤a332,检查建立时间裕量是否满足时序要求:
[0098]
如否,执行步骤a334;
[0099]
若是,执行步骤a335;
[0100]
步骤a333,形成并输出符合时序要求的门级网表以及标准延迟格式文件;
[0101]
步骤a334,修改建立时间裕量,之后执行步骤a31;
[0102]
步骤a335,针对保持时间进行时序虚拟修复,之后执行步骤a333。
[0103]
进一步的,在步骤a334中,通过提升建立时间裕量的值进行修改。
[0104]
进一步的,在步骤a335中,通过添加延迟方式对保持时间进行时序虚拟修复。
[0105]
进一步的,在步骤a335,中,使用静态时序分析工具中的虚拟工程变更指令对门电路基本标准单元的输入到输出的延迟和/或门电路基本标准单元之间的互连走线的延迟进行本地修改以执行保持时间的时序修复。
[0106]
对于后仿真而言,时序质量比较重要,在综合和版图阶段,时序的关注点的异同如下表所示:
[0107][0108]
max_tran为max_transition,max_cap为max_capacitance。为了拟合最终版图数据库的sdf数据质量,在综合侧出的sdf文件需要关注以下几个方面:
[0109]
1、setup需要干净:关注functionmode,internalpath;
[0110]
2、hold需要干净:dc流程不做涵盖,需要特殊处理;
[0111]
3、max_tran/max_cap:质量需要可控,通常不会对sdf质量产生直接影响,可以和后仿真解耦
[0112]
4、net delay:dc的虚拟走线评估会直接写入到sdf,和综合环境保持一致,从sdf来看,不会区分走线延迟是来自于:虚拟走线或者实际走线。
[0113]
如同在版图结束后做eco((engineering change order,工程变更命令)类似,本发明基于综合的网表+sdf,需要在pt静态时序分析工具里边进行时序评估和“虚拟”的eco修复。常规的版图eco是使用pt导出脚本,进行版图级别的修复,但是在综合数据库,由于只
是为了拟合版图后的数据质量,只是需要影响sdf的结果即可,本发明在pt里边使用了“虚拟eco”的修复手段,即确保了sdf质量同时也加快了数据收敛。“虚拟eco”利用了pt里边的命令:set_annotated_delay,这个命令可以对门电路基本标准单元之间的互连走线的延迟net-delay以及门电路基本标准单元的输入到输出的延迟cell-delay进行本地修改,从而达到修复时序的目的。
[0114]
具体的,为了加速迭代,pt里边使用完整的检查,侦测,自动修复的脚本,确认建立时间setup/保持时间hold/撤销时间remove/恢复时间recovery完全修复后,最终产生用于后仿真的sdf数据。
[0115]
综合的数据库里边是不具备hold修复操作,即保持时间的时序修复,在pt里进行虚拟修复,用户需要甄别使用增加延迟的方法是否可以在修复hold的时候,不会让setup变差。即如果检查出hold出现违例,先要判断建立时间裕量setup margin是否足够,如果足够,进行hold虚拟修复,如果不够,需要提升setup margin之后,再进行hold修复。由于sdf patch的目的,仅仅是为了推进数据交付质量,对于具体的修复操作这里并不做过多限制,但是建议在使用虚拟修复的时候,尽量只使用增加延迟的方式,负延迟的信息可能会导致数据和真实版图数据的不一致。
[0116]
参见图9,本发明还提供一种基于综合数据库实现后仿真的系统,使用前述的一种基于综合数据库实现后仿真的方法,包括:
[0117]
综合模块(1),用于:
[0118]
根据综合数据库对寄存器传输级代码进行综合以生成门级网表;
[0119]
通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成生成标准延迟格式文件;
[0120]
时序分析模块(2),连接综合模块(1),对综合生成的门级网表以及标准延迟格式文件进行时序分析,检查门级网表以及标准延迟格式文件是否符合时序要求;
[0121]
时序修复模块(3),连接时序分析模块,用于对不符合时序要求的时序违例进行时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;
[0122]
后仿真模块(4),连接时序修复模块(3)和时序分析模块(2),使用符合时序要求的门级网表以及标准延迟格式文件作为后仿真数据进行后仿真。
[0123]
进一步的,综合模块(1)用于对主时钟源和衍生时钟源的走线设置理想时钟。
[0124]
这个发明,从芯片开发的全局流程优化出发,使用了左移的发明理念,以聚焦中端的方式切入,缩短了芯片后仿真的交互距离,通过一些流程上的优化和改善,推进项目的迭代和提前释放流片(tape-out)压力。
[0125]
本发明将后仿真工作提前,在基于综合输出数据用于后仿真环境,对于验证人员而言,所有的操作都可以理解为真实的后仿真环境。通过本发明,可以尽早的在带时序的后仿真环境中开始所有的测试用例的调测,如果出现任何时序、sdc或者后仿真功能等问题,也可以尽早的反馈综合和前端设计人员,这样可以将发现和暴露问题的时间大大提前。在当前完成项目的流程中,最终基于版图的后仿真数据到位后,基于综合的后仿真环境可以平滑迁移,大大加速了基于版图后仿真的环境交付过程。
[0126]
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替
换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
技术特征:
1.一种基于综合数据库实现后仿真的方法,其特征在于,包括:步骤a1,根据综合数据库对寄存器传输级代码进行综合以生成门级网表;步骤a2,通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成标准延迟格式文件;步骤a3,对综合生成的所述门级网表以及所述标准延迟格式文件进行时序分析以及时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;步骤a4,使用符合时序要求的所述门级网表以及所述标准延迟格式文件作为后仿真数据进行后仿真。2.如权利要求1所述的一种基于综合数据库实现后仿真的方法,其特征在于,包括:在所述步骤a2中,对主时钟源和衍生时钟源的走线设置理想时钟。3.如权利要求1所述的一种基于综合数据库实现后仿真的方法,其特征在于,所述步骤a3包括:步骤a31,对综合生成的所述门级网表以及所述标准延迟格式文件进行时序分析;步骤a32,对建立时间进行检查;步骤a33,对保持时间进行检查。4.如权利要求3所述的一种基于综合数据库实现后仿真的方法,其特征在于,所述步骤a32包括:步骤a321,判断建立时间是否存在时序违例:若是,执行步骤a322;若否,继续执行所述步骤a33;步骤a322,对所述建立时间进行时序虚拟修复,之后执行步骤a31。5.如权利要求4所述的一种基于综合数据库实现后仿真的方法,其特征在于,所述步骤a33包括:步骤a331,检查保持时间是否存在时序违例:若是,执行步骤a332;若否,执行步骤a333;步骤a332,检查建立时间裕量是否满足时序要求:如否,执行步骤a334;若是,执行步骤a335;步骤a333,形成并输出符合时序要求的门级网表以及标准延迟格式文件;步骤a334,修改所述建立时间裕量,之后执行所述步骤a31;步骤a335,针对所述保持时间进行时序虚拟修复,之后执行所述步骤a333。6.如权利要求5所述的一种基于综合数据库实现后仿真的方法,其特征在于,在所述步骤a334中,通过提升所述建立时间裕量的值进行修改。7.如权利要求5所述的一种基于综合数据库实现后仿真的方法,其特征在于,在所述步骤a335中,通过添加延迟方式对所述保持时间进行时序虚拟修复。8.如权利要求5所述的一种基于综合数据库实现后仿真的方法,其特征在于,在所述步骤a335,中,使用静态时序分析工具中的虚拟工程变更指令对门电路基本标准单元的输入到输出的延迟和/或门电路基本标准单元之间的互连走线的延迟进行本地修改以执行保持
时间的时序虚拟修复。9.一种基于综合数据库实现后仿真的系统,其特征在于,使用如权利要求1-8任意一项所述的一种基于综合数据库实现后仿真的方法,包括:综合模块(1),用于:根据综合数据库对寄存器传输级代码进行综合以生成门级网表;通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成生成标准延迟格式文件;时序分析模块,连接所述综合模块,对综合生成的所述门级网表以及所述标准延迟格式文件进行时序分析,检查所述门级网表以及标准延迟格式文件是否符合时序要求;时序修复模块,连接所述时序分析模块,用于对不符合时序要求的时序违例进行时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;后仿真模块,连接所述时序修复模块和所述时序分析模块,使用符合时序要求的所述门级网表以及所述标准延迟格式文件作为后仿真数据进行后仿真。10.如权利要求9所述的一种基于综合数据库进行后仿真的方法,其特征在于,所述综合模块用于对主时钟源和衍生时钟源的走线设置理想时钟。
技术总结
本发明提供一种基于综合数据库实现后仿真的方法和系统,包括:根据综合数据库对寄存器传输级代码进行综合以生成门级网表;通过命令set_ideal_net对时钟源的走线设置理想时钟后再综合生成标准延迟格式文件;对综合生成的门级网表以及标准延迟格式文件进行时序分析以及时序虚拟修复,形成符合时序要求的门级网表以及标准延迟格式文件;使用符合时序要求的门级网表以及标准延迟格式文件作为后仿真数据进行后仿真。通过综合产生后仿真的数据,将后仿真的输入数据左移(shift-left)前置,在保证数据质量的前提下,给后仿真提供了更为充裕的工作时间,加速了芯片的开发推进和降低迭代,进一步降低了后期的流片时间压力风险。进一步降低了后期的流片时间压力风险。进一步降低了后期的流片时间压力风险。
技术研发人员:李国强 苏海伟 张丽娜 裴茹霞 张伟
受保护的技术使用者:上海维安半导体有限公司
技术研发日:2023.04.11
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/