适应于功能工程翻新的集成电路建立时序修复方法技术

技术编号:23149836 阅读:35 留言:0更新日期:2020-01-18 13:45
本发明专利技术公开了一种适应于功能工程翻新的集成电路建立时序修复方法,本发明专利技术提出了一套规范化的设计流程包括网表的工程翻新、物理数据的工程翻新、翻新网表的化简、化简网表的布局布线、逻辑替换、分支连接以及第一次等价性检查,第一次等价性检查通过后再进行分支优化、第二次等价性检查,第二次等价性检查通过再进行位置翻新、绕线翻新。本发明专利技术通过设计流程实现新增时序单元的位置合理摆放、时序功能工程翻新后数据路径的重新规划、时序功能工程翻新后绕线资源的重新分配,从而以加速工程翻新后物理设计中建立时序的修复,减少功能工程翻新带来的设计周期开销。

A sequential repair method of integrated circuit for functional engineering renovation

【技术实现步骤摘要】
适应于功能工程翻新的集成电路建立时序修复方法
本专利技术涉及超大规模集成电路物理设计领域,涉及物理设计中建立时序(setuptiming)的修复,具体涉及一种适应于功能工程翻新(EngineeringChangeOrder,ECO)的集成电路建立时序修复方法。
技术介绍
自CMOS集成电路技术问世以来,集成电路与芯片的集成度与复杂度呈指数级上升,集成电路与芯片的前端逻辑设计日益复杂。同时,集成电路的工作频率也随着工艺的进步呈现上升趋势,集成电路物理设计的时序(timing)要求变得越来越复杂、越来越苛刻。当前端逻辑需要修复设计漏洞(bug)时,后端物理设计有重做和功能工程翻新(ECO)两种途径。重做的代价往往是巨大的,几乎使得设计周期翻倍,一般只在极端情况下使用。工程翻新(ECO)的代价相对小一些,受到业界的广泛重视。随着集成电路工作频率不断上升,设计复杂性不断增加,功能工程翻新(ECO)对物理设计时序(timing)的影响越来越严重,一个翻新操作往往引发上万条路径(path)产生建立时序违反,使得时序修复变得十分困难。现有技术功能工程翻新常常引发严重的建立时序违反,特别在高性能设计之中,采用传统的时序修复方法难以修复功能工程翻新引发的严重建立时序违反,且修复过程非常耗时,严重影响设计进度。因此,如何巧妙地修复工程翻新后的建立时序,降低时序修复周期成为当前物理设计面临的一大难题。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种适应于功能工程翻新的集成电路建立时序修复方法,本专利技术提供了一套规范化的设计流程,通过设计流程实现新增时序单元的位置合理摆放、时序功能工程翻新后数据路径的重新规划、时序功能工程翻新后绕线资源的重新分配,从而以加速工程翻新后物理设计中建立时序的修复,减少功能工程翻新带来的设计周期开销。为了解决上述技术问题,本专利技术采用的技术方案为:一种适应于功能工程翻新的集成电路建立时序修复方法,实施步骤包括:1)保存待翻新模块实施翻新操作前的初始物理设计状态db0,对待翻新模块进行功能修改得到翻新后的模块rt1,并基于修改对待翻新模块初始的网表netlist_0进行功能工程翻新得到第一网表netlist_1、初始的可测试性设计网表netlist_dft_0进行功能工程翻新得到第一可测试性设计网表netlist_dft_1;2)在初始物理设计状态db0下导入第一网表netlist_1,将导入的第一网表netlist_1中非时序逻辑单元构成的集合Coll_1不进行摆放、时序逻辑单元构成的集合Regs_1进行摆放,不进行绕线并直接保存为第一物理设计状态db1;3)进行翻新网表的化简并保存为第二物理设计状态db2;4)在初始物理设计状态db0中获取所有寄存器的位置信息并保存为文件reg_place.tcl,在第二物理设计状态db2中执行文件reg_place.tcl,且预先将所有寄存器的位置摆放在与初始物理设计状态db0中该寄存器位置相同的位置,按照待翻新模块的物理设计路程重新放置组合逻辑单元的位置、构造时钟树、并进行绕线与绕线优化,保存为第三物理设计状态db3;5)在第一物理设计状态db1中找出翻新单元相关的数据路径进行重新规划,并保持非翻新单元的部分数据路径处于断开状态且断开之处构成分支,保存为第五物理设计状态db5;6)对第五物理设计状态db5中处于断开状态的分支的集合逐一进行连接,保存覆盖第五物理设计状态db5,新的第五物理设计状态db5对应的网表记为第五网表netlist_5;7)将第五网表netlist_5、第一网表netlist_1实施等价性检查,检查通过则跳转执行步骤8),否则跳转执行步骤6)更改分支连接;8)对第五物理设计状态db5中处于断开状态的分支的集合的每一条,找到驱动该分支的组合逻辑单元,遍历该单元之后的所有反相器与缓冲器,根据版图上的位置信息、负载信息选择最合适的反相器或缓冲器来驱动该分支,仍然保存覆盖第五物理设计状态db5,新的第五物理设计状态db5对应的网表覆盖第五网表netlist_5;9)将第五网表netlist_5、第一网表netlist_1实施等价性检查,检查通过则跳转执行步骤10),否则跳转执行步骤8)进行分支优化;10)对第五物理设计状态db5中的单元进行位置翻新消除第五物理设计状态db5中存在单元重叠,保存覆盖第五物理设计状态db5;11)对第五物理设计状态db5实施绕线翻新或执行物理设计流程中绕线与绕线优化,保存覆盖第五物理设计状态db5,结束并退出。可选地,步骤1)的详细步骤包括:1.1)保存待翻新模块实施翻新操作前的初始物理设计状态db0;1.2)对待翻新模块进行功能修改得到翻新后的模块rt1;1.3)基于修改对待翻新模块初始的网表netlist_0进行功能工程翻新、修正错误的功能设计得到第一网表netlist_1;基于修改对待翻新模块初始的可测试性设计网表netlist_dft_0进行功能工程翻新、修正错误的功能设计得到第一可测试性设计网表netlist_dft_1;1.4)将第一可测试性设计网表netlist_dft_1、翻新后的模块rt1进行等价性检查、将新网表netlist_1与第一可测试性设计网表netlist_dft_1进行等价性检查,如果等价性检查全部通过,则跳转执行步骤2);否则,跳转执行步骤1.2)。可选地,步骤3)的详细步骤包括:对第一网表netlist_1进行化简处理,在保持等价性的基础上最大限度地删除所有数据路径上的反相器inverter,并删除所有数据路径上的缓冲器buffer,得到第二网表netlist_2,将第二网表netlist_2导入初始物理设计状态db0之中,保存为第二物理设计状态db2。可选地,步骤3)的详细步骤包括:在第一物理设计状态db1里直接进行化简处理,在保持等价性的基础上最大限度地删除所有数据路径上的反相器inverter,并删除所有数据路径上的缓冲器buffer,保存为第二物理设计状态db2。可选地,步骤3)的详细步骤包括:直接使用第一可测试性设计网表netlist_dft_1在布局布线工具中实施初始化操作,保存为第二物理设计状态db2。可选地,步骤5)的详细步骤包括:在第一物理设计状态db1中,找出非时序逻辑单元构成的集合Coll_1所有扇出的寄存器集合coll1_out_regs,再找出寄存器集合coll1_out_regs所有扇入的寄存器集合coll1_in_regs,将从寄存器集合coll1_in_regs的Q端到寄存器集合coll1_out_regs的D端所有数据路径上的单元抓取出来构成集合coll1_rel_cells_db1;将集合coll1_rel_cells_db1中所有单元的连接关系抓出来并删除,将当前设计状态保存为第四物理设计状态db4;在第三物理设计状态db3中将从寄存器集合coll1_in_regs的本文档来自技高网...

【技术保护点】
1.一种适应于功能工程翻新的集成电路建立时序修复方法,其特征在于实施步骤包括:/n1)保存待翻新模块实施翻新操作前的初始物理设计状态db0,对待翻新模块进行功能修改得到翻新后的模块rt1,并基于修改对待翻新模块初始的网表netlist_0进行功能工程翻新得到第一网表netlist_1、初始的可测试性设计网表netlist_dft_0进行功能工程翻新得到第一可测试性设计网表netlist_dft_1;/n2)在初始物理设计状态db0下导入第一网表netlist_1,将导入的第一网表netlist_1中非时序逻辑单元构成的集合Coll_1不进行摆放、时序逻辑单元构成的集合Regs_1进行摆放,不进行绕线并直接保存为第一物理设计状态db1;/n3)进行翻新网表的化简并保存为第二物理设计状态db2;/n4)在初始物理设计状态db0中获取所有寄存器的位置信息并保存为文件reg_place.tcl,在第二物理设计状态db2中执行文件reg_place.tcl,且预先将所有寄存器的位置摆放在与初始物理设计状态db0中该寄存器位置相同的位置,按照待翻新模块的物理设计路程重新放置组合逻辑单元的位置、构造时钟树、并进行绕线与绕线优化,保存为第三物理设计状态db3;/n5)在第一物理设计状态db1中找出翻新单元相关的数据路径进行重新规划,并保持非翻新单元的部分数据路径处于断开状态且断开之处构成分支,保存为第五物理设计状态db5;/n6)对第五物理设计状态db5中处于断开状态的分支的集合逐一进行连接,保存覆盖第五物理设计状态db5,新的第五物理设计状态db5对应的网表记为第五网表netlist_5;/n7)将第五网表netlist_5、第一网表netlist_1实施等价性检查,检查通过则跳转执行步骤8),否则跳转执行步骤6)更改分支连接;/n8)对第五物理设计状态db5中处于断开状态的分支的集合的每一条,找到驱动该分支的组合逻辑单元,遍历该单元之后的所有反相器与缓冲器,根据版图上的位置信息、负载信息选择最合适的反相器或缓冲器来驱动该分支,仍然保存覆盖第五物理设计状态db5,新的第五物理设计状态db5对应的网表覆盖第五网表netlist_5;/n9)将第五网表netlist_5、第一网表netlist_1实施等价性检查,检查通过则跳转执行步骤10),否则跳转执行步骤8)进行分支优化;/n10)对第五物理设计状态db5中的单元进行位置翻新消除第五物理设计状态db5中存在单元重叠,保存覆盖第五物理设计状态db5;/n11)对第五物理设计状态db5实施绕线翻新或执行物理设计流程中绕线与绕线优化,保存覆盖第五物理设计状态db5,结束并退出。/n...

【技术特征摘要】
1.一种适应于功能工程翻新的集成电路建立时序修复方法,其特征在于实施步骤包括:
1)保存待翻新模块实施翻新操作前的初始物理设计状态db0,对待翻新模块进行功能修改得到翻新后的模块rt1,并基于修改对待翻新模块初始的网表netlist_0进行功能工程翻新得到第一网表netlist_1、初始的可测试性设计网表netlist_dft_0进行功能工程翻新得到第一可测试性设计网表netlist_dft_1;
2)在初始物理设计状态db0下导入第一网表netlist_1,将导入的第一网表netlist_1中非时序逻辑单元构成的集合Coll_1不进行摆放、时序逻辑单元构成的集合Regs_1进行摆放,不进行绕线并直接保存为第一物理设计状态db1;
3)进行翻新网表的化简并保存为第二物理设计状态db2;
4)在初始物理设计状态db0中获取所有寄存器的位置信息并保存为文件reg_place.tcl,在第二物理设计状态db2中执行文件reg_place.tcl,且预先将所有寄存器的位置摆放在与初始物理设计状态db0中该寄存器位置相同的位置,按照待翻新模块的物理设计路程重新放置组合逻辑单元的位置、构造时钟树、并进行绕线与绕线优化,保存为第三物理设计状态db3;
5)在第一物理设计状态db1中找出翻新单元相关的数据路径进行重新规划,并保持非翻新单元的部分数据路径处于断开状态且断开之处构成分支,保存为第五物理设计状态db5;
6)对第五物理设计状态db5中处于断开状态的分支的集合逐一进行连接,保存覆盖第五物理设计状态db5,新的第五物理设计状态db5对应的网表记为第五网表netlist_5;
7)将第五网表netlist_5、第一网表netlist_1实施等价性检查,检查通过则跳转执行步骤8),否则跳转执行步骤6)更改分支连接;
8)对第五物理设计状态db5中处于断开状态的分支的集合的每一条,找到驱动该分支的组合逻辑单元,遍历该单元之后的所有反相器与缓冲器,根据版图上的位置信息、负载信息选择最合适的反相器或缓冲器来驱动该分支,仍然保存覆盖第五物理设计状态db5,新的第五物理设计状态db5对应的网表覆盖第五网表netlist_5;
9)将第五网表netlist_5、第一网表netlist_1实施等价性检查,检查通过则跳转执行步骤10),否则跳转执行步骤8)进行分支优化;
10)对第五物理设计状态db5中的单元进行位置翻新消除第五物理设计状态db5中存在单元重叠,保存覆盖第五物理设计状态db5;
11)对第五物理设计状态db5实施绕线翻新或执行物理设计流程中绕线与绕线优化,保存覆盖第五物理设计状态db5,结束并退出。


2.根据权利要求1所述的适应于功能工程翻新的集成电路建立时序修复方法,其特征在于,步骤1)的详细步骤包括:
1.1)保存待翻新模块实施翻新操作前的初始物理设计状态db0;
1.2)对待翻新模块进行功能修改得到翻新后的模块rt1;
1.3)基于修改对待翻新模块初始的网表netlist_0进行功能工程翻新、修正错误的功能设计得到第一网表netlist_1;基于修改对待翻新模块初始的可测试性设计网表netlist_dft_0进行功能工程翻新、修正错误的功能设计得到第一可测试性...

【专利技术属性】
技术研发人员:黄鹏程赵振宇乐大珩马驰远何小威冯超超贾勤余金山
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利