CN106611084B - 集成电路的设计方法及装置 - Google Patents
集成电路的设计方法及装置 Download PDFInfo
- Publication number
- CN106611084B CN106611084B CN201611078574.6A CN201611078574A CN106611084B CN 106611084 B CN106611084 B CN 106611084B CN 201611078574 A CN201611078574 A CN 201611078574A CN 106611084 B CN106611084 B CN 106611084B
- Authority
- CN
- China
- Prior art keywords
- file
- design
- execution
- end design
- tool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种集成电路的设计方法及装置,所述集成电路的设计方法包括:定时检测前端文件的更新情况;在所述前端文件有更新的情况下,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程,从而更新集成电路的设计。通过本发明能够解决现有技术无法根据前端文件的更新情况及时启动数字后端设计的流程的问题,以便数字后端人员及时查看设计结果,推动整个项目的进度。
Description
技术领域
本发明涉及集成电路芯片设计领域,尤其涉及一种集成电路的设计方法及装置。
背景技术
在芯片设计过程中,需要不断地发现问题并根据问题调整设计,存在数字前端和后端的交互。在现有的交互过程中,通常是数字前端人员更新网表(netlist)或约束(sdc)之后,通知数字后端人员,然后由数字后端人员根据更新的网表或约束,重新开始运行设计流程。若相关人员缺失,会造成交互延滞而浪费时间,降低工作效率由于数字后端设计流程的运行时间较长,在流片之前的最后阶段,若不及时启动后端设计流程,查看设计结果,会影响整个项目的进度。而现有技术无法根据前端文件的更新情况及时启动数字后端设计的流程。
发明内容
有鉴于此,本发明提供一种集成电路的设计方法及装置,以根据前端文件的更新情况,及时启动数字后端设计的流程,方便数字后端人员及时查看设计结果,推动整个项目的进度。
根据本发明的第一方面,提供一种集成电路的设计方法,包括:
定时检测前端文件的更新情况;
在所述前端文件有更新的情况下,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程,从而更新集成电路的设计。
进一步地,所述以预定的执行方式通过后端设计工具执行预定的数字后端设计流程包括:
在所述预定的执行方式为第一方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后打开所述后端设计工具的图形用户界面;
在所述预定的执行方式为第二方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后继续定时检测所述前端文件的更新情况。
进一步地,所述预定的数字后端设计流程包括以下顺序的任一步骤及所述任一步骤之前的所有步骤:
初始设计;
标准单元布局和优化;
时钟树综合和优化;
时钟树布线和优化;
信号线布线;
信号线布线优化;
完成芯片设计;
输出结果。
进一步地,所述定时检测前端文件的更新情况包括:
每间隔预定时间执行更新指令,将所述前端文件更新至版本库中对应的最新版本得到执行结果信息,如果所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。
进一步地,所述后端设计工具包括集成电路编译器IC Compiler。
进一步地,所述通过后端设计工具执行预定的数字后端设计流程包括:
在工具命令语言TCL解释器中,使用循环语句调用gmake命令执行与所述预定的数字后端设计流程中各个步骤对应的工具命令语言TCL脚本文件以通过集成电路编译器ICCompiler执行预定的数字后端设计流程。
进一步地,在所述执行方式为第一方式的情况下,不执行与所述各个步骤中最后一个步骤对应的工具命令语言TCL脚本文件中的退出命令,仅执行与其他步骤对应的工具命令语言TCL脚本文件中的退出命令;
在所述执行方式为第二方式的情况下,执行与所述各个步骤对应的工具命令语言TCL脚本文件中的退出命令,在接收到预定指令的情况下,终止所述循环语句的执行。
进一步地,在所述使用循环语句调用gmake命令之前,删除执行gmake命令所产生的对应于所述各个步骤的文件。
根据本发明的第二方面,提供一种集成电路的设计装置,包括:
检测模块,用于定时检测前端文件的更新情况;
执行模块,用于在所述前端文件有更新的情况下,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程,从而更新集成电路的设计。
进一步地,所述执行模块包括:
第一执行单元,用于在所述预定的执行方式为第一方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后打开所述后端设计工具的图形用户界面;
第二执行单元,用于在所述预定的执行方式为第二方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后继续定时检测所述前端文件的更新情况。
进一步地,所述执行模块根据所述前端文件以预定的执行方式通过后端设计工具执行包括以下顺序的任一步骤及所述任一步骤之前的所有步骤的预定的数字后端设计流程:
初始设计;
标准单元布局和优化;
时钟树综合和优化;
时钟树布线和优化;
信号线布线;
信号线布线优化;
完成芯片设计;
输出结果。
进一步地,所述检测模块用于每间隔预定时间执行更新指令,将所述前端文件更新至版本库中对应的最新版本得到执行结果信息,如果所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。
根据本发明提供的方案,能够根据前端文件的更新情况,及时启动数字后端设计的流程,方便数字后端人员及时查看设计结果,推动整个项目的进度。
本发明的实施例中,在后端设计人员不在场的情况下,通过定时检测前端文件是否更新,在前端文件有更新的情况下,自动启动后端设计工具执行数字后端设计流程,且提供两种数字后端设计流程的执行方式,可针对后台人员不在场的时间长度选择不同方式,将后端设计人员从不间断的工作当中解脱出来。可通过指定一个具体的数字后端设计流程中的步骤,让工具自动将流程从第一个流程步骤逐步执行到指定的流程步骤,有利于后端设计人员及时查看、了解某个流程步骤的后端设计结果,并对后端设计及时做出相应的适当调整。由于后端设计的执行时间较长,如果不能及时执行数字后端设计流程,容易耽误项目的设计进度。项目的进度由团体协作配合决定,使后端紧跟前端的设计步伐,有助于尽早完成项目流片工作。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出根据本发明第一实施例的集成电路的设计方法的流程图;
图2示出根据本发明第二实施例的集成电路的设计方法的流程图;
图3示出根据本发明第三实施例的集成电路的设计装置的示意性框图;
图4a示出根据本发明第四实施例的执行模块的示意性框图;
图4b示出根据本发明第五实施例的执行模块的示意性框图;
图4c示出根据本发明第六实施例的执行模块的示意性框图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。
图1示出根据本发明第一实施例的集成电路的设计方法的流程图,所述方法包括:
在步骤S101中,定时检测前端文件的更新情况。
例如,可以每间隔预定时间执行更新指令,将所述前端文件更新至版本库中对应的最新版本得到执行结果信息,如果检测到所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。具体地,可以通过在执行脚本中植入一个时钟函数的功能模块,每间隔一定时间就检测一次前端文件的更新情况来实现。
作为一个示例,在存有前端文件工作副本的linux终端输入svn up指令,该终端会显示类似于以下的更新信息:
server1:/home/users/hyqin/project/design_name>svn up
U apr/from_logic/core_nom.sdc
U apr/from_logic/core_tid.gate.v
A apr/from_logic/core_nom.sdc
A apr/from_logic/core_tid.gate.v
D apr/from_logic/core.eco.v
在报告执行结果的各行信息的行首,有大写字母“U”、“A”和“D”三种标识符,并且这些字母后面有两个空格。“U”意为更新Update,“A”意为添加Add,“D”意为删除Delete,一般会先执行Add,然后执行Update,Delete则是视情况执行。大写字母“U”是数据更新的标志,只要监测到大写字母“U”和其后的两个空格,便可知道当版本库中的前端文件已经更新。
在步骤S102中,判断所述前端文件是否有更新。如果有更新则执行步骤S103,否则执行步骤S101。
要想对字母“U”和其后的两个空格进行检测,可以先将报告的执行结果信息保存在文档中,然后使用相应的脚本命令,对文档里面的关键字“U”和其后的两个空格进行检索,确定是否存在数据更新情况。
在步骤S103中,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程。
例如,所述后端设计工具可以包括集成电路编译器IC Compiler。可以在工具命令语言TCL解释器中,使用循环语句调用gmake命令执行与所述预定的数字后端设计流程中各个步骤对应的工具命令语言TCL脚本文件以通过集成电路编译器IC Compiler执行预定的数字后端设计流程。如果将所述前端文件更新至版本库中对应的最新版本,则在所述使用循环语句调用gmake命令前,删除之前执行gmake命令所生成的对应于预定的数字后端设计流程中各个步骤的文件,然后执行预定的数字后端设计流程。
作为一个示例,数字后端设计的全部流程,可以是在集成电路编译器IC Compiler工具里面,按照脚本内容依次完成每个步骤,整个后端设计流程从头到尾,依次是:初始设计、标准单元布局和优化、时钟树综合和优化、时钟树布线和优化、信号线布线、信号线布线优化、完成芯片设计和输出结果。其中,初始设计涉及data setup(数据建库),创建floorplan(布图规划)和power network(电源网络),导出def(设计交换格式)文件;标准单元布局和优化涉及执行magnet_placement(吸附布局)操作、运行place_opt(布局优化)命令,插入spare cells(冗余单元),分析congestion(拥塞)和timing(时序);时钟树综合和优化中,时钟树综合涉及clock tree(时钟树)满足DRC(设计规则检查)要求,时钟树优化涉及clock tree满足目标要求;时钟树布线和优化涉及clock tree的布线层数和布线规则进行布线和布线优化;信号线布线涉及执行Global routing(全局布线)、Track assignment(轨道分配)、Detail routing(详细布线)的分部操作;信号线布线优化涉及执行route_opt(布线优化)命令,使满足Timing,DRC的设计要求;完成芯片设计涉及修复antenna(天线)违例,插入filler cells(填充单元),timing和via(通孔)的增益优化,插入metal fill(金属填充);输出结果即从完成的芯片设计里导出gds文件(图形设计系统文件)和网表文件。上述步骤分别通过执行以下对应的工具命令语言TCL脚本文件完成:init_design_icc、place_opt_icc、clock_opt_ccd_icc、clock_opt_route_icc、route_icc、route_opt_icc、chip_finish_icc和outputs_icc。整个后端设计流程中,依次需要检查的是:检查电源地连接和宏模块的摆放、检查单元拥塞和重叠、检查时钟树长势、检查时钟树走线、检查信号线走线、修复违例、检查填充单元和输出结果。
在每个流程步骤TCL脚本的末尾,都存在一个exit的退出命令。可以使用gmake命令执行流程步骤。使用gmake命令执行流程步骤时,当一个步骤执行完之后,必须执行退出命令才能进入下一个流程步骤,因此在所述执行方式为第一方式的情况下,不执行与所述各个步骤中最后一个步骤对应的工具命令语言TCL脚本文件中的退出命令,要执行与其他步骤对应的工具命令语言TCL脚本文件中的退出命令。需要将最后一个流程步骤之前的其他流程步骤TCL脚本里面的exit前面的#屏蔽去掉,使这些流程步骤能够首尾衔接地贯穿起来。在实际项目的后端设计过程中,不同的流程步骤需要满足不同的设计要求,前面流程步骤条件满足,当前流程步骤存在问题时,若是前端文件有更新,通常需要重新由第一个流程步骤执行到当前流程步骤,而不会一次性将全部流程步骤从头执行到尾。可以指定一个具体的流程步骤,由最初的流程步骤——初始设计开始依次逐步执行到该指定的流程步骤,等该指定的流程步骤执行完毕即可查看该指定的流程步骤的设计结果。可以通过设置参数名称指定一个具体的流程步骤,通常使用gmake命令实现由第一个流程执行到指定的流程步骤。例如,需要修复违例,可以在linux终端输入gmake route_opt_icc,则会启动集成电路编译器IC Compiler工具从init_design_icc开始,经由place_opt_icc、clock_opt_ccd_icc、clock_opt_route_icc、route_icc,一直执行到route_opt_icc。每执行完一个流程步骤,则会产生一个文件名与执行的TCL脚本文件名相同的日期文件,文件内容则是记录时间信息。gmake可以识别所述日期文件的名称,如果所述日期文件已经存在,gmake则会执行这些日期文件对应的流程步骤之后的流程步骤。因为前端文件更新时,需要从第一个流程步骤开始数字后端设计流程,所以要将所有的所述日期文件全部删除,gmake才能从最开始的流程步骤,执行到指定的流程步骤。
在步骤S104中,打开所述后端设计工具的图形用户界面。
当指定的流程步骤执行完成之后,自动打开工具的图形用户界面GUI,以供后端设计人员查看设计结果。当执行到指定的流程步骤时,执行完之后不需要退出icc_shell终端,以便于在icc_shell终端直接执行start_gui,开启图形用户界面,因此需在指定流程步骤对应的脚本中的exit前加个#进行屏蔽。
图2示出根据本发明第二实施例的集成电路的设计方法的流程图,所述方法包括:
在步骤S201中,定时检测前端文件的更新情况。
例如,可以每间隔预定时间执行更新指令,将所述前端文件更新至版本库中对应的最新版本得到执行结果信息,如果检测到所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。具体地,可以通过在执行脚本中植入一个时钟函数的功能模块,每间隔一定时间就检测一次前端文件的更新情况来实现,具体地可以通过svn up指令实现。如果存在数据更新,则删除之前执行gmake遗留的文件名与执行的TCL脚本文件名相同的日期文件,然后启动本次数字后端设计流程。
在步骤S202中,判断所述前端文件是否有更新。如果有更新则执行步骤S203,否则执行步骤S201。
在步骤S203中,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程。
所述后端设计工具可以包括集成电路编译器IC Compiler。可以在工具命令语言TCL解释器中,使用循环语句调用gmake命令执行与所述预定的数字后端设计流程中各个步骤对应的工具命令语言TCL脚本文件以通过集成电路编译器IC Compiler执行预定的数字后端设计流程。由于gmake命令在循环语句中,无法在linux环境下直接执行,需要在工具命令语言界面tclsh环境中才能执行,可以根据预定的执行方式以及需要指定的流程步骤设置参数,然后将脚本内容复制到tclsh终端,执行所有命令语句。在tclsh环境终端由没有数据更新到出现数据更新时,终端会显示执行结果的进程,未更新数据时,每间隔预定时间检测一次,然后报告一下检测的时间。存在更新数据时,则启动集成电路编译器IC Compiler工具,执行数字后端设计流程步骤。在所述执行方式为第二方式的情况下,执行与所述各个步骤对应的工具命令语言TCL脚本文件中的退出命令,在接收到预定指令的情况下,终止所述循环语句的执行。所述预定的执行方式为第二方式时会将指定流程步骤脚本里面的#一起删除,使预定的数字后端设计流程步骤执行完毕之后,仍然可以在下一次数据更新时继续执行流程步骤。所述预定的执行方式为第二方式时存在两个循环检测路径,若执行更新指令svn up之后,判定前端文件没有更新,则继续循环检测前端文件的更新情况;若执行更新指令svn up之后,产生的执行结果信息中存在数据更新的标志,则将预定的数字后端设计流程执行完之后,继续循环检测前端文件的更新情况。
在步骤S204中,判断是否接收到预定指令,如果接收到预定指令则结束,否则执行步骤S201。
所述预定的执行方式为第二方式时,需要人为终止循环检测的进程,打开集成电路编译器IC Compiler工具查看数字后端设计流程的执行结果,所以无需自动开启图形用户界面。可以在接收到预定指令的情况下跳出整个循环。优选地,不管何时接收到预定指令,可以在执行完预定的数字后端设计流程后再跳出整个循环。
在一些实施例中,可以同时设计两个执行脚本,分别用于执行方式为第一方式和第二方式的情况。首先应该了解数字后端设计流程的执行方式,然后通过分析指令或者预设的参数,使用if语句在所述两种方式中选择一种用于执行数字后端设计流程。第一方式中,执行完流程之后,可以自动开启图形界面,适用于后端人员暂时不在场情况;第二方式中,只要前端有数据更新,便可以立即启动后端设计流程,适用于后端人员长时不在场的情况,但需要人为中断设计跳出循环。
图3示出根据本发明第三实施例的集成电路的设计装置的示意性框图,如图3所示,集成电路的设计装置30包括检测模块301和执行模块302。
检测模块301用于定时检测前端文件的更新情况。
例如,检测模块301可以每间隔预定时间将所述前端文件更新至版本库中对应的最新版本,从而得到执行结果信息,如果检测到所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。具体地,检测模块301可以包括一个时钟函数的功能模块,每间隔一定时间就执行一次更新指令进行更新。作为一个示例,检测模块301可以在存有前端文件工作副本的linux终端执行更新指令svn up,该终端会显示类似于以下的更新信息:
server1:/home/users/hyqin/project/design_name>svn up
U apr/from_logic/core_nom.sdc
U apr/from_logic/core_tid.gate.v
A apr/from_logic/core_nom.sdc
A apr/from_logic/core_tid.gate.v
D apr/from_logic/core.eco.v
在报告执行结果的各行信息的行首,有大写字母“U”、“A”和“D”三种标识符,并且这些字母后面有两个空格。“U”意为更新Update,“A”意为添加Add,“D”意为删除Delete,一般会先执行Add,然后执行Update,Delete则是视情况执行。大写字母“U”是数据更新的标志,检测模块301只要监测到大写字母“U”和其后的两个空格,便可知道当版本库中的前端文件已经更新。检测模块301对字母“U”和其后的两个空格进行检测,可以先将报告的执行结果信息保存在文档中,然后通过相应的脚本命令,对文档里面的关键字“U”和其后的两个空格进行检索,判定是否存在数据更新情况。
执行模块302用于在所述前端文件有更新的情况下,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程,从而更新集成电路的设计。
例如,所述后端设计工具可以包括集成电路编译器IC Compiler。执行模块302可以通过工具命令语言TCL解释器,使用循环语句调用gmake命令执行与所述预定的数字后端设计流程中各个步骤对应的工具命令语言TCL脚本文件以通过集成电路编译器ICCompiler执行预定的数字后端设计流程。如果检测模块301判定前端文件存在数据更新情况,则执行模块302在使用循环语句调用gmake命令前,删除之前执行gmake命令所生成的对应于预定的数字后端设计流程中各个步骤的文件,然后执行预定的数字后端设计流程。作为一个示例,数字后端设计的全部流程,是在集成电路编译器IC Compiler工具里面,按照脚本内容依次完成每个步骤,整个后端设计流程从头到尾,依次是:初始设计、标准单元布局和优化、时钟树综合和优化、时钟树布线和优化、信号线布线、信号线布线优化、完成芯片设计和输出结果。其中,初始设计涉及data setup,创建floorplan和power network,导出def文件;标准单元布局和优化涉及执行magnet_placement操作、运行place_opt命令,插入spare cells,分析congestion和timing;时钟树综合和优化中,时钟树综合涉及clocktree满足DRC要求,时钟树优化涉及clock tree满足目标要求;时钟树布线和优化涉及clock tree的布线层数和布线规则进行布线和布线优化;信号线布线涉及执行Globalrouting、Track assignment、Detail routing的分部操作;信号线布线优化涉及执行route_opt命令,使满足Timing,DRC的设计要求;完成芯片设计涉及修复antenna违例,插入filler cells,timing和via的增益优化,插入metal fill;输出结果即从完成的芯片设计里导出gds和网表文件。上述步骤分别通过执行以下对应的工具命令语言TCL脚本文件完成:init_design_icc、place_opt_icc、clock_opt_ccd_icc、clock_opt_route_icc、route_icc、route_opt_icc、chip_finish_icc和outputs_icc。整个后端设计流程中,依次需要检查的是:检查电源地连接和宏模块的摆放、检查单元拥塞和重叠、检查时钟树长势、检查时钟树走线、检查信号线走线、修复违例、检查填充单元和输出结果。
在实际项目的后端设计过程中,不同的流程步骤需要满足不同的设计要求,前面流程步骤条件满足,当前流程步骤存在问题时,若是前端文件更新,通常需要重新由第一个流程步骤执行到当前流程步骤,而不会一次性将全部流程步骤从头执行到尾。执行模块302可以指定一个具体的流程步骤,由最初的流程步骤——初始设计开始依次逐步执行到该指定的流程步骤,等该指定的流程步骤执行完毕即可查看该指定的流程步骤的设计结果。执行模块302可以通过设置参数名称指定一个具体的流程步骤,可以使用gmake命令实现由第一个流程执行到指定的流程步骤。例如,需要修复违例,执行模块302可以通过gmakeroute_opt_icc,启动集成电路编译器IC Compiler工具从init_design_icc开始,经由place_opt_icc、clock_opt_ccd_icc、clock_opt_route_icc、route_icc,一直执行到route_opt_icc。每执行完一个流程步骤,会产生一个文件名与执行的TCL脚本文件名相同的日期文件,文件内容则是记录时间信息。gmake可以识别所述日期文件的名称,如果所述日期文件已经存在,gmake则会执行这些日期文件对应的流程步骤之后的流程步骤。由于前端文件更新时,需要从第一个流程步骤开始数字后端设计流程,所以执行模块302要将所有的所述日期文件全部删除,才能从最开始的流程步骤,执行到指定的流程步骤。
图4a示出根据本发明第四实施例的执行模块的示意性框图,如图4a所示,执行模块302包括第一执行单元3021。
第一执行单元3021用于在所述预定的执行方式为第一方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后打开所述后端设计工具的图形用户界面。
在每个流程步骤TCL脚本的末尾,都存在一个exit的退出命令。使用gmake命令执行流程步骤,当一个步骤执行完之后,必须执行退出命令才能进入下一个流程步骤。第一执行单元3021可以使用gmake命令执行流程步骤。第一执行单元3021可以将最后一个流程步骤之前的其他流程步骤TCL脚本里面的exit前面的#屏蔽去掉,使这些流程步骤能够首尾衔接地贯穿起来,不执行与所述各个步骤中最后一个步骤对应的工具命令语言TCL脚本文件中的退出命令,而仅执行与其他步骤对应的工具命令语言TCL脚本文件中的退出命令。当指定的流程步骤执行完成之后,第一执行单元3021打开工具的图形用户界面GUI,以供后端设计人员查看设计结果。
图4b示出根据本发明第五实施例的执行模块的示意性框图,如图4b所示,执行模块302包括第二执行单元3022。
第二执行单元3022用于在所述预定的执行方式为第二方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后继续定时检测所述前端文件的更新情况。
第二执行单元3022执行与所述各个步骤对应的工具命令语言TCL脚本文件中的退出命令,在接收到预定指令的情况下,终止所述循环语句的执行。优选地,第二执行单元3022需要在执行完预定的数字后端设计流程后再跳出整个循环。第二执行单元3022可以将指定流程步骤脚本里面的#一并删除,使预定的数字后端设计流程步骤执行完毕之后,仍然可以在下一次数据更新时继续执行数字后端设计流程步骤。第二执行单元3022有两个循环检测路径,若执行svn up之后,判定前端文件没有更新,则继续循环检测前端文件是否有更新;若执行svn up之后,判定前端文件存在更新,则将预定的数字后端设计流程执行完之后,继续循环检测前端文件的更新情况。
图4c示出根据本发明第六实施例的执行模块的示意性框图,如图4c所示,执行模块302包括第一执行单元3021和第二执行单元3022。
第一执行单元3021和第二执行单元3022以上参考图4a和图4b已经进行了详细的说明,在此不再赘述。
在一些实施例中,执行模块302包括第一执行单元3021和第二执行单元3022,可以同时设计两个执行脚本,分别用于执行方式为第一方式和第二方式的情况。执行模块302可以通过分析指令或者预设的参数,使用if语句在所述两种方式中选择一种用于执行数字后端设计流程。第一方式中,执行完流程之后,可以自动开启图形界面,适用于后端人员暂时不在场情况;第二方式中,只要前端有数据更新,便可以立即启动后端设计流程,适用于后端人员长时不在场的情况,但需要人为中断设计跳出循环。
本发明的实施例能够根据前端文件的更新情况,及时启动数字后端设计的流程,方便数字后端人员及时查看设计结果,推动整个项目的进度。
本发明的实施例能够实现在后端设计人员不在场的情况下,通过脚本自动循环检测前端文件的更新情况,在前端文件有更新的情况下,自动启动后端设计工具执行数字后端设计流程,且提供两种数字后端设计流程的执行方式,可针对后台人员不在场的时间长度选择不同方式,将后端设计人员从不间断的工作当中解脱出来。本发明的实施例还可以指定一个具体的数字后端设计流程中的步骤,让工具自动将流程从第一个流程逐步执行到指定的步骤,有利于后端设计人员及时查看、了解某个流程步骤的后端设计结果,并对后端设计及时做出相应的适当调整。由于后端设计的执行时间较长,如果不能及时执行数字后端设计流程,容易耽误项目的设计进度。本发明的实施例可以在前端文件有更新的情况下,自动启动后端设计工具执行数字后端设计流程,从而使后端与前端设计紧密衔接,有助于尽早完成项目流片工作。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种集成电路的设计方法,包括:
定时检测前端文件的更新情况;
在所述前端文件有更新的情况下,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程,从而更新集成电路的设计,
其中,所述预定的数字后端设计流程包括初始设计。
2.根据权利要求1所述的方法,其中,所述以预定的执行方式通过后端设计工具执行预定的数字后端设计流程包括:
在所述预定的执行方式为第一方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后打开所述后端设计工具的图形用户界面;
在所述预定的执行方式为第二方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后继续定时检测所述前端文件的更新情况。
3.根据权利要求1或2所述的方法,其中,所述预定的数字后端设计流程包括以下顺序的任一步骤及所述任一步骤之前的所有步骤:
初始设计;
标准单元布局和优化;
时钟树综合和优化;
时钟树布线和优化;
信号线布线;
信号线布线优化;
完成芯片设计;
输出结果。
4.根据权利要求3所述的方法,其中,所述定时检测前端文件的更新情况包括:
每间隔预定时间执行更新指令,将所述前端文件更新至版本库中对应的最新版本,得到执行结果信息,如果所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。
5.根据权利要求4所述的方法,其中,所述后端设计工具包括集成电路编译器ICCompiler。
6.根据权利要求5所述的方法,其中,所述通过后端设计工具执行预定的数字后端设计流程包括:
在工具命令命令语言TCL解释器中,使用循环语句调用gmake命令执行与所述预定的数字后端设计流程中各个步骤对应的工具命令语言TCL脚本文件,以通过集成电路编译器ICCompiler执行预定的数字后端设计流程。
7.根据权利要求6所述的方法,其中,
在所述执行方式为第一方式的情况下,不执行与所述各个步骤中最后一个步骤对应的工具命令语言TCL脚本文件中的退出命令,仅执行与其他步骤对应的工具命令语言TCL脚本文件中的退出命令;
在所述执行方式为第二方式的情况下,执行与所述各个步骤对应的工具命令语言TCL脚本文件中的退出命令,在接收到预定指令的情况下,终止所述循环语句的执行。
8.根据权利要求6所述的方法,其中,在所述使用循环语句调用gmake命令之前,删除执行gmake命令所产生的对应于所述各个步骤的文件。
9.一种集成电路的设计装置,包括:
检测模块,用于定时检测前端文件的更新情况;
执行模块,用于在所述前端文件有更新的情况下,根据所述前端文件以预定的执行方式通过后端设计工具执行预定的数字后端设计流程,从而更新集成电路的设计,
其中,所述预定的数字后端设计流程包括初始设计。
10.根据权利要求9所述的装置,其中,所述执行模块包括:
第一执行单元,用于在所述预定的执行方式为第一方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后打开所述后端设计工具的图形用户界面;
第二执行单元,用于在所述预定的执行方式为第二方式的情况下,通过所述后端设计工具执行所述预定的数字后端设计流程后继续定时检测所述前端文件的更新情况。
11.根据权利要求9或10所述的装置,其中,所述执行模块根据所述前端文件以预定的执行方式通过后端设计工具执行包括以下顺序的任一步骤及所述任一步骤之前的所有步骤的预定的数字后端设计流程:
初始设计;
标准单元布局和优化;
时钟树综合和优化;
时钟树布线和优化;
信号线布线;
信号线布线优化;
完成芯片设计;
输出结果。
12.根据权利要求11所述的装置,其中,所述检测模块用于每间隔预定时间执行更新指令,将所述前端文件更新至版本库中对应的最新版本得到执行结果信息,如果所述执行结果信息中存在数据更新的标志,则判定所述前端文件有更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611078574.6A CN106611084B (zh) | 2016-11-29 | 2016-11-29 | 集成电路的设计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611078574.6A CN106611084B (zh) | 2016-11-29 | 2016-11-29 | 集成电路的设计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106611084A CN106611084A (zh) | 2017-05-03 |
CN106611084B true CN106611084B (zh) | 2020-12-18 |
Family
ID=58636124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611078574.6A Active CN106611084B (zh) | 2016-11-29 | 2016-11-29 | 集成电路的设计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106611084B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108133069A (zh) * | 2017-08-17 | 2018-06-08 | 上海倚韦电子科技有限公司 | 集成电路后端设计系统及方法 |
CN107784179B (zh) * | 2017-11-13 | 2022-01-04 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计布线和优化方法 |
CN108052739B (zh) * | 2017-12-13 | 2021-07-20 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计快速通道设计方法 |
CN108062451A (zh) * | 2018-01-06 | 2018-05-22 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计时钟树顶层设计方法 |
CN108388735B (zh) * | 2018-02-28 | 2022-04-22 | 深圳市恒凯微电子科技有限公司 | 一种设计具有多孔介质层的集成电路的方法 |
CN114492256B (zh) * | 2022-04-15 | 2022-07-08 | 南京沁恒微电子股份有限公司 | 集成电路数字后端eco方法、系统及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272665B1 (en) * | 1999-04-29 | 2001-08-07 | International Business Machines Corporation | Method and tool for automatically generating engineering change order |
CN104820767A (zh) * | 2015-05-27 | 2015-08-05 | 胡师彦 | 微型片上生化反应检测装置的组件布置方法和系统 |
CN105512425A (zh) * | 2015-12-25 | 2016-04-20 | 浪潮集团有限公司 | 一种基于图形界面的io pad布局构建方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1509861A2 (en) * | 2002-05-23 | 2005-03-02 | Koninklijke Philips Electronics N.V. | Integrated circuit design method |
US7143341B1 (en) * | 2002-06-20 | 2006-11-28 | Cadence Design Systems | Method and apparatus for concurrent engineering and design synchronization of multiple tools |
US7421739B2 (en) * | 2004-10-04 | 2008-09-02 | American Express Travel Related Services Company, Inc. | System and method for monitoring and ensuring data integrity in an enterprise security system |
US7343581B2 (en) * | 2005-06-27 | 2008-03-11 | Tela Innovations, Inc. | Methods for creating primitive constructed standard cells |
US8136062B2 (en) * | 2008-08-28 | 2012-03-13 | International Business Machines Corporation | Hierarchy reassembler for 1×N VLSI design |
US8321830B2 (en) * | 2010-12-21 | 2012-11-27 | Advanced Micro Devices, Inc. | Method and apparatus for providing timing information while designing a multi-cell circuit |
CN105279050B (zh) * | 2015-09-29 | 2019-01-15 | 中国电子科技集团公司第五十四研究所 | 一种检测SoC前后端ROM数据一致性的方法 |
CN105956302B (zh) * | 2016-05-10 | 2019-07-12 | 北京控制工程研究所 | 一种可配置的抗辐射芯片前端网表自动生成方法 |
-
2016
- 2016-11-29 CN CN201611078574.6A patent/CN106611084B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272665B1 (en) * | 1999-04-29 | 2001-08-07 | International Business Machines Corporation | Method and tool for automatically generating engineering change order |
CN104820767A (zh) * | 2015-05-27 | 2015-08-05 | 胡师彦 | 微型片上生化反应检测装置的组件布置方法和系统 |
CN105512425A (zh) * | 2015-12-25 | 2016-04-20 | 浪潮集团有限公司 | 一种基于图形界面的io pad布局构建方法 |
Non-Patent Citations (1)
Title |
---|
"自动化流程在基带芯片XG726后端设计中的应用与实现";胡南雄;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315;I135-784 * |
Also Published As
Publication number | Publication date |
---|---|
CN106611084A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106611084B (zh) | 集成电路的设计方法及装置 | |
CN109923542B (zh) | 用于早期阶段ic布局设计的drc处理工具 | |
CN102650947B (zh) | 一种Android手持设备连续增量的空中升级方法 | |
CN108205560B (zh) | 一种数据同步方法以及装置 | |
JPH02264329A (ja) | プログラム自動生成装置 | |
US8056042B2 (en) | Automatic delay adjusting method for semiconductor integrated circuit by using dummy wiring | |
WO2012124117A1 (ja) | タイミングエラー除去方法、設計支援装置、及びプログラム | |
US9569575B2 (en) | Digital circuit design method and associated computer program product | |
US20140149953A1 (en) | Reduction of metal fill insertion time in integrated circuit design process | |
CN110489086A (zh) | 流程执行控制方法、装置、计算机设备及存储介质 | |
CN109783956B (zh) | 基于区域划分的最大跳变时间违例修复方法及系统 | |
CN104820676A (zh) | 一种判断版本号大小的方法及装置 | |
US20090019412A1 (en) | Design method and design apparatus for semiconductor integrated circuit | |
CN102147797A (zh) | 一种内容管理系统中管理元素文件的方法及装置 | |
US8381159B2 (en) | Method of semiconductor integrated circuit, and computer readable medium | |
CN111913704A (zh) | 一种基于VSCode快速开发GSP7脚本的方法及插件工具 | |
CN110321282A (zh) | Mock测试的XML配置文件修改方法和系统 | |
CN113342512B (zh) | 一种io任务静默与驱动方法、装置及相关设备 | |
CN115599400A (zh) | 一种Docker镜像快速构建方法、系统及介质 | |
CN115271503A (zh) | 自动化运维方法、装置、电子设备及存储介质 | |
JP2010117897A (ja) | プログラム静的解析システム | |
US20060075370A1 (en) | Method and apparatus for automating post-tape release VLSI modifications | |
JP2002055717A (ja) | 故障診断システム | |
CN111143274B (zh) | 以逻辑综合结果为导向的层级结构优化方法及装置、系统 | |
US8839166B1 (en) | Method and apparatus for unified out-of-context flow and automation for IP reuse and hierarchical design flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |