同步器标准单元的ATPG库模型生成系统转让专利

申请号 : CN202211241073.0

文献号 : CN115952755B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐华兴郑宇飞

申请人 : 北京云枢创新软件技术有限公司上海合见工业软件集团有限公司

摘要 :

本发明涉及一种同步器标准单元的ATPG库模型生成系统,实现步骤E1、获取待处理的同步器标准单元和第四liberty文件;步骤E2、提取Ks的状态表;步骤E3、提取Ks的时序信息、第三逻辑信息及寄存器序列;步骤E4、生成与第三逻辑信息的逻辑相同的第三目标ATPG库模型;步骤E5、设置每一寄存器单元RFu,将RFu的输出端口连接至RFu+1的数据输入端口,将第三目标ATPG库模型连接至RF1的数据输入端口,基于Ks对应的时序信息将时钟信号连接至每一RFu的有效信号端口,生成目标ATPG库模型。本发明简化了同步器标准单元的ATPG库模型的生成过程,提高了同步器标准单元的ATPG库模型的生成效率。

权利要求 :

1.一种同步器标准单元的ATPG库模型生成系统,其特征在于,

包括预先构建的ATPG基本单元库{A1,A2,…AM}、存储有计算机程序的存储器和处理器,Am为ATPG基本单元库中第m个ATPG基本单元,m的取值范围为1到M,M为ATPG基本单元库中ATPG基本单元的总数,当所述处理器执行所述计算机程序时,实现以下步骤:步骤E1、获取待处理的同步器标准单元集合{K1,K2,…KS}和第四liberty文件,Ks为第s个待处理的同步器标准单元,s的取值范围为1到S,S为待处理的同步器标准单元总数,K1,K2,…KS属于同一个待处理标准单元库;

步骤E2、从所述第四liberty文件中提取每一Ks对应的状态表,Ks对应的状态表包括多条第二状态记录,所述第二状态记录包括L(s)个输入字段和T(s)个输出字段,所述L(s)个输入字段包括第二使能输入字段、选择信号字段和L(s)‑2个数据输入字段;所述第二使能输入字段用于存储第一沿触发状态和第二沿触发状态,所述选择信号字段、其他L(s)‑2个数据输入字段、T(s)个输出字段用于存储对应的电平状态,所述电平状态包括第一电平状态和第二电平状态;当第二使能输入字段为第一沿触发状态时,T(s)个输出字段基于选择信号字段以及L(s)‑2个数据输入字段的逻辑关系确定;当第二使能输入字段为第二沿触发状态时,T(s)个输出字段保持当前状态不变;第j个输出字段对应Ks中第j个寄存器的输出状态,Ks中包括T(s)个寄存器;

步骤E3、从Ks对应的状态表中提取Ks对应的时序信息、第三逻辑信息以及T(s)个寄存器按照连接顺序排列的寄存器序列(RE1,RE2,…RET(s)),REu为Ks中排在第u个的寄存器,u的取值范围为1到T(s);

步骤E4、从{A1,A2,…AM}中选取至少一个Am组合生成与Ks对应的第三逻辑信息的逻辑相同的第三目标ATPG库模型;

Am=(A1m,A2m,A3m),A1m为Am的组成结构,A2m为Am的逻辑信息,A3m为Am的权重值,Am的权重值和Am对ATPG的成本成反比,所述步骤E4包括:步骤E41、将ATPG库模型的总权重值作为逻辑优化目标,基于{A1,A2,…AM}对Ks对应的第三逻辑信息进行逻辑优化,生成I(s)个由至少一个Am的组成结构组合生成的与Ks对应的第s s s s三逻辑信息的逻辑相同的候选ATPG库模型集合{Ec1 ,Ec2 ,…EcI(s)},Ecw为第w个候选ATPGs库模型,w的取值范围为1到I(s),Ecw由J(s)个ATPG基本单元组成;

s s

步骤E42、获取每一Ecw的总权重值Gw:

其中, 为第w个候选ATPG库模型中,第i个ATPG基本单元对应的权重值;

s s s s

步骤E43、将{Ec1 ,Ec2 ,…EcI(s)}中总权重值最大的Ecw确定为Ks对应的第三目标ATPG库模型;

步骤E5、设置Ks中每一REu对应的寄存器单元RFu,每一RFu包括有效信号端口、数据输入端口和输出端口,将RFu的输出端口连接至RFu+1的数据输入端口,将所述第三目标ATPG库模型连接至RF1的数据输入端口,基于Ks对应的时序信息将时钟信号连接至每一RFu的有效信号端口,生成Ks对应的目标ATPG库模型。

2.根据权利要求1所述的系统,其特征在于,

所述步骤E1包括:

步骤E11、从预设的制程设计信息中获取待处理的标准单元库和第一liberty文件,所述第一liberty文件中存储有所述待处理的标准单元库中每一标准单元对应的逻辑信息和时序信息;

步骤E12、遍历待处理的标准单元库中的标准单元,将包括两个以上寄存器的时序标准单元确定为待处理的同步器标准单元,生成所述待处理的同步器标准单元集合{K1,K2,…KS},并从所述第一liberty文件获取第四liberty文件。

3.根据权利要求1所述的系统,其特征在于,

所述步骤E3包括:

步骤E31、将Ks对应的状态表中第二使能输入字段为第二沿触发状态的记录删除,将第二使能输入字段所在列删除,得到Ks对应的真值表;

步骤E32、基于Ks对应的真值表获取所述第三逻辑信息。

4.根据权利要求1所述的系统,其特征在于,

所述第一沿触发状态为上升沿,所述第二沿触发状态为下降沿,或者,所述第一沿触发状态为下降沿,所述第二沿触发状态为上升沿。

5.根据权利要求1所述的系统,其特征在于,

若所述第二电状态为上升沿,则在所述步骤E5中还包括在每一寄存器的有效信号端口插入反相器。

6.根据权利要求1所述的系统,其特征在于,

所述ATPG基本单元库包括基本逻辑ATPG基本单元、组合逻辑ATPG基本单元、基本时序逻辑ATPG基本单元和用于处理三态逻辑、上拉电阻和下拉电阻的ATPG基本单元;其中,所述基本逻辑ATPG基本单元包括缓冲器、反相器、与门、或门、与非门、或非门;所述组合逻辑ATPG基本单元包括多输入的异或门、同或门和选择器;所述基本时序逻辑ATPG基本单元包括锁存器和寄存器。

7.根据权利要求1所述的系统,其特征在于,

每一ATPG基本单元均基于Verilog语言描述生成,每一Bn对应的目标ATPG库模型为基于Verilog语言的模型。

说明书 :

同步器标准单元的ATPG库模型生成系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种同步器标准单元的ATPG库模型生成系统。

背景技术

[0002] 自动测试向量生成(Automatic Test Pattern Generation,简称ATPG)是在半导体芯片测试中使用的测试向量由程序自动生成的过程。测试向量按顺序地加载到器件的输入端口上,输出的信号被收集并与预算好的测试向量相比较从而判断测试的结果。ATPG有效性是衡量测试错误覆盖率的重要指标。实现ATPG的基础是构建标准单元对应的ATPG库模型,基于ATPG库模型生成芯片;设计门级网表所对应的ATPG模型,从而通过ATPG工具自动生成测试向量对芯片进行测试。
[0003] 传统的ATPG库模型是基于标准单元对应的Verilog模型生成的,而标准单元对应的Verilog模型为准确的仿真和验证而开发的,并不适合ATPG目的。例如,为了准确描述模拟行为,IO pad类型的标准单元对应的Verilog模型非常复杂。再如,集成时钟门控(ICG)的标准单元是为时钟门控而设计的,对应的Verilog模型也非常复杂。然而,ATPG只关注数字电路的逻辑行为,基于这些复杂的Verilog模型生成ATPG库模型,使得生成ATPG库模型复杂,进而使得所生成的设计门级网表对应的ATPG模型不够简化,降低了测试效率。
[0004] 此外,现有技术通常会将设计门级网表通过图形用户界面(Graphical User Interface,简称GUI)显示,从而对设计门级网表和ATPG过程进行调试。现有技术中通常直接展示设计门级网表中的标准单元、标准单元之间的连接关系以及标准单元基于ATPG模型生成的输入输出值。但是有些标准单元所占面积比较大,且不能直接展示标准单元中的组成细节,可读性差,若需要获取组成细节信息,还需逐个点击对应的标准单元来呈现组成细节,且展开后的标准单元会进一步增加所占面积,从而导致调试效率低,用户体验差。

发明内容

[0005] 本发明目的在于,提供一种同步器标准单元的ATPG库模型生成系统,简化了同步器标准单元的ATPG库模型的生成过程,提高了同步器标准单元的ATPG库模型的生成效率。
[0006] 本发明提供了一种同步器标准单元的ATPG库模型生成系统,包括预先构建的ATPG基本单元库{A1,A2,…AM}、存储有计算机程序的存储器和处理器,Am为ATPG基本单元库中第m个ATPG基本单元,m的取值范围为1到M,M为ATPG基本单元库中ATPG基本单元的总数,当所述处理器执行所述计算机程序时,实现以下步骤:
[0007] 步骤E1、获取待处理的同步器标准单元集合{K1,K2,…KS}和第四liberty文件,Ks为第s个待处理的同步器标准单元,s的取值范围为1到S,S为待处理的同步器标准单元总数,K1,K2,…KS属于同一个待处理标准单元库;
[0008] 步骤E2、从所述第四liberty文件中提取每一Ks对应的状态表,Ks对应的状态表包括多条第二状态记录,所述第二状态记录包括L(s)个输入字段和T(s)个输出字段,所述L(s)个输入字段包括第二使能输入字段、选择信号字段和L(s)‑2个数据输入字段;所述第二使能输入字段用于存储第一沿触发状态和第二沿触发状态,所述选择信号字段、其他L(s)‑2个数据输入字段、T(s)个输出字段用于存储对应的电平状态,所述电平状态包括第一电平状态和第二电平状态;当第二使能输入字段为第一沿触发状态时,T(s)个输出字段基于选择信号字段以及L(s)‑2个数据输入字段的逻辑关系确定;当第二使能输入字段为第二沿触发状态时,T(s)个输出字段保持当前状态不变;第j个输出字段对应Ks中第j个寄存器的输出状态,Ks中包括T(s)个寄存器;
[0009] 步骤E3、从Ks对应的状态表中提取Ks对应的时序信息、第三逻辑信息以及T(s)个寄存器按照连接顺序排列的寄存器序列(RE1,RE2,…RET(s)),REu为Ks中排在第u个的寄存器,u的取值范围为1到T(s);
[0010] 步骤E4、从{A1,A2,…AM}中选取至少一个Am组合生成与Ks对应的第三逻辑信息的逻辑相同的第三目标ATPG库模型;
[0011] 步骤E5、设置Ks中每一REu对应的寄存器单元RFu,每一RFu包括有效信号端口、数据输入端口和输出端口,将RFu的输出端口连接至RFu+1的数据输入端口,将所述第三目标ATPG库模型连接至RF1的数据输入端口,基于Ks对应的时序信息将时钟信号连接至每一RFu的有效信号端口,生成Ks对应的目标ATPG库模型。
[0012] 本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种同步器标准单元的ATPG库模型生成系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
[0013] 本发明所述系统通过抽取同步器标准单元的状态表中的时序信息、逻辑信息以及寄存器之间的连接关系,基于ATPG基本单元库生成针对逻辑信息的ATPG库模型,再与时钟信息和寄存器之间的连接关系相结合,生成同步器标准单元的ATPG库模型,简化了同步器标准单元的ATPG库模型的生成过程,提高了同步器标准单元的ATPG库模型的生成效率。
[0014] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

[0015] 图1为本发明实施例一提供的ATPG库模型生成流程图;
[0016] 图2为本发明实施例二提供的组合逻辑标准单元的ATPG库模型生成流程图;
[0017] 图3为本发明实施例三提供的集成时钟门控标准单元的ATPG库模型生成流程示意图;
[0018] 图4为本发明实施例三提供的集成时钟门控标准单元的状态表示意图;
[0019] 图5为本发明实施例四提供的同步器标准单元的ATPG库模型生成流程示意图;
[0020] 图6为本发明实施例四提供的同步器标准单元的状态表示意图;
[0021] 图7为本发明实施例五提供的目标显示结构生成示意图;
[0022] 图8为本发明实施例五提供的将待测芯片设计门级网表转换为基于目标显示结构显示的示意图。

具体实施方式

[0023] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种同步器标准单元的ATPG库模型生成系统的具体实施方式及其功效,详细说明如后。
[0024] 针对传统的ATPG库模型是基于标准单元对应的Verilog模型生成,而ATPG只关注数字电路的逻辑行为,基于这些复杂的Verilog模型生成ATPG库模型,使得生成ATPG库模型的效率低下,ATPG库模型复杂,进而使得所生成的设计门级网表对应的ATPG模型不够简化,降低了测试效率的技术问题,本申请提出了实施例一。
[0025] 实施例一、
[0026] 实施例一提供了一种ATPG库模型生成系统,包括预先构建的ATPG基本单元库{A1,A2,…AM}、存储有计算机程序的存储器和处理器,Am为ATPG基本单元库中第m个ATPG基本单元,m的取值范围为1到M,M为ATPG基本单元库中ATPG基本单元的总数,Am=(A1m,A2m,A3m),A1m为Am的组成结构,A2m为Am的逻辑信息,A3m为Am的权重值,Am的权重值和Am对ATPG的成本成反比,ATPG越易于处理的基本单元的权重值越高,当所述处理器执行所述计算机程序时,如图1所示,实现以下步骤:
[0027] 步骤S1、获取待处理的标准单元库{B1,B2,…BN}和第一liberty文件,Bn为待处理的标准单元库中第n个标准单元,n的取值范围为1到N,N>>M,所述第一liberty文件中存储有每一Bn对应的逻辑信息和时序其中信息。
[0028] 所述步骤S1具体从预设的制程设计信息中获取待处理的标准单元库{B1,B2,…BN}和第一liberty文件。
[0029] 标准单元库包括版图库、符号库、电路逻辑库等。具体包含了组合逻辑、时序逻辑、功能单元和特殊类型单元,是集成电路芯片后端设计过程中的基础部分。运用预先设计好的优化的库单元进行自动逻辑综合和版图布局布线,可以极大地提高设计效率。通常每个工艺厂商在每个工艺下都会提供相应的标准单元。例如,工艺厂商提供的7nm的标准单元库,10nm的标准单元库等等。每一标准单元库中可能包括成千上万个标准单元,有些标准单元非常复杂,例如一个7nm的标准单元库中可能包括上万个标准单元,待测芯片设计的门级网表是基于标准单元库生成的,由于ATPG不能直接有效处理待测芯片设计最终的门级网表,因此需要抽象出每一标准单元的ATPG库模型,来生成待测芯片设计对应的ATPG模型。每一ATPG库模型均基于ATPG基本单元库{A1,A2,…AM}生成,也即使得相同的或不同的标准单元库中的成千上万个标准单元均基于相同的少量的ATPG基本单元来生成,具有通用性。优1
选的,N取值的数量级为10,例如可以设置30个ATPG基本单元。
[0030] 第一liberty文件为包括标准单元时序信息和逻辑信息的文件,第一liberty文件和标准单元库均可直接从预设的制程设计信息(Process Design Kit,简称PDK)中获取,在此不再赘述。
[0031] 步骤S2、从所述第一liberty文件中提取Bn对应的待处理逻辑信息。
[0032] 其中,第一liberty文件存储有Bn对应的布尔函数或者真值表,可以直接将Bn对应的布尔函数或者真值表作为待处理逻辑信息,也可以将真值表转换为布尔函数作为待处理逻辑信息。
[0033] 步骤S3、基于至少一个Am的逻辑信息和组成结构组合生成与Bn对应的待处理逻辑信息的逻辑相同的候选ATPG库模型,构建候选ATPG库模型集合。
[0034] 步骤S4、基于每一候选ATPG库模型对应的Am的权重值,从所述候选ATPG库模型集合中选择总权重最大的候选ATPG库模型,作为Bn对应的待处理ATPG库模型。
[0035] 需要说明的是,基于ATPG基本单元库可能生成多个与Bn对应的待处理逻辑信息的逻辑相同的候选ATPG库模型,基于每一候选ATPG库模型对应的Am的权重值从中选择总权重最大的,也即最有利于ATPG过程的候选ATPG库模型,作为组合逻辑标准单元。
[0036] 步骤S5、基于Bn对应的待处理ATPG库模型和/或Bn对应的时序信息生成每一Bn对应的目标ATPG库模型。
[0037] 需要说明的是,标准单元可能为组合逻辑单元,也可能为时序逻辑单元,若Bn是组合逻辑标准单元,则直接将Bn对应的待处理ATPG库模型确定为Bn对应的目标ATPG库模型,若Bn是时序逻辑标准单元,则还需将Bn对应的待处理ATPG库模型与Bn对应的时序信息相结合后生成Bn对应的目标ATPG库模型。
[0038] 传统的ATPG库模型生成方法基于标准单元的Verilog生成,如果需要提取测试相关信息,还需到第一liberty文件中提取,并将这些信息注释到ATPG模型中去,是需要两步实现的,而本申请可以仅通过一步,在从第一liberty文件中提取Bn对应的待处理逻辑信息的同时,直接提取测试相关的信息,进一步提高ATPG库模型的生成效率。
[0039] 作为一种实施例,测试相关信息具体可以扫描链相关信息,具体的,若Bn包括具有扫描功能的寄存器,则所述步骤S2还包括:
[0040] 步骤S21、从所述第一liberty文件中提取扫描链接入信息和扫描链控制信息。
[0041] 所述步骤S5包括:
[0042] 步骤S51、基于所述扫描链接入信息,将所述Bn对应的目标ATPG库模型的数据输入端和扫描使能端标注到对应的ATPG库模型中,用于实现后续的扫描链的自动插入。
[0043] 更为具体地,为了有效的支持测试电路的自动插入和生成,标准单元库的liberty文件中需要提供带扫描功能的寄存器库单元,并且通过test_cell结构来通过相关的信息。以下通过一个具体示例来说明:
[0044]
[0045]
[0046] 上述示例中,寄存器库单元明确定义了如何把这个库单元接入扫描链,具体以pin‘SI’作为数据端接入扫描链,以pin‘SE’用来控制扫描链的数据输入。这些信息需要被从第一liberty文件中提取出来,然后插入到ATPG库模型中,从而保证后端的进行扫描链的工具能够正确识别和利用这些寄存器库单元,从而正确的在电路中插入测试所需的扫描链。
[0047] 作为一种实施例,所述ATPG基本单元库包括基本逻辑ATPG基本单元、组合逻辑ATPG基本单元、基本时序逻辑ATPG基本单元和用于处理三态逻辑、上拉电阻和下拉电阻的ATPG基本单元;其中,所述基本逻辑ATPG基本单元包括缓冲器(Buffer)、反相器(Inverter)、与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR);所述组合逻辑ATPG基本单元包括多输入的与或非门(AOI),异或门(XOR),同或门(XNOR)和选择器(MUX)等;所述基本时序逻辑ATPG基本单元包括锁存器(Latch)和寄存器(Flip‑flop)。基于ATPG基本单元库,对于一个给定的标准单元,均能尽可能的简化其ATPG库模型。也即用尽可能少的ATPG基本单元来构建ATPG库模型,从而保证ATPG的结果的正确性和高效性。
[0048] 作为一种实施例,每一ATPG基本单元均基于Verilog语言描述生成,例如一个4输入的与或非门:
[0049]
[0050]
[0051] 再如两输入的MUX:
[0052]
[0053] 可以理解的是,以上仅对部分ATPG基本单元进行列举,不局限此。
[0054] ATPG基本单元均基于Verilog语言描述生成使得每一Bn对应的目标ATPG库模型为基于Verilog语言的模型。便于后续对ATPG库模型的校验。具体的,所述第一liberty文件中还包括Bn对应的Verilog模型,所述步骤S5之后还包括:
[0055] 步骤S6、将Bn对应的目标ATPG库模型和Bn对应的Verilog模型输入预设的校验工具中进行校验,若校验通过,则Bn对应的目标ATPG库模型添加至预设的目标ATPG库模型库中。
[0056] 需要说明的是,由于目标ATPG库模型为基于Verilog语言的模型,因此可以直接与Bn对应的Verilog模型通过预设的校验工具进行校验,而无需其他转换,提高了目标ATPG库模型的测试效率,Bn对应的Verilog模型也是直接可以从预设的制程设计信息中获取的。预设的校验工具具体可以为业界标准的形式校验工具。
[0057] 通过步骤S1‑步骤S6可以生成待处理的标准单元库中每一标准单元对应的ATPG库模型,在此基础上,既可基于待测芯片设计门级网表生成待测芯片设计的ATPG模型,作为一种实施例,所述步骤S6之后还包括:
[0058] 步骤S7、获取待测芯片设计门级网表,所述待测设计门级网表基于所述待处理的标准单元库{B1,B2,…BN}生成。
[0059] 步骤S8、将所述待测芯片设计门级网表中每一标准单元替换为预设的目标ATPG库模型库中对应的目标ATPG库模型,生成待测芯片设计门级网表对应的ATPG模型。
[0060] 需要说明的是,待测芯片设计门级网表对应的ATPG模型生成后,即可基于该ATPG模型通过ATPG工具生成测试向量,对待测芯片进行测试。
[0061] ATPG基本单元库是可以根据具体应用需求灵活配置的,作为一种实施例,当所述处理器执行所述计算机程序时,还实现以下步骤:
[0062] 步骤S9、更新所述ATPG基本单元库,所述更新包括增加、删除或修改ATPG基本单元。
[0063] 步骤S10、获取更新的ATPG基本单元相对应的标准单元库重新构建待处理的标准单元库,通过步骤S1‑步骤S5重新获取对应的ATPG库模型。
[0064] 实施例一所述系统能够直接从liberty文件提取标准单元对应的逻辑信息,基于逻辑信息和预设的ATPG基本单元库生成每一标准单元对应的ATPG库模型,无需关注标准单元对应的Verilog模型,简化了ATPG库模型的生成过程,提高了ATPG库模型的生成效率和质量。
[0065] 实施例二、
[0066] 实施例二提供了一种组合逻辑标准单元的ATPG库模型生成系统,包括预先构建的ATPG基本单元库{A1,A2,…AM}、存储有计算机程序的存储器和处理器,Am为ATPG基本单元库中第m个ATPG基本单元,m的取值范围为1到M,M为ATPG基本单元库中ATPG基本单元的总数,Am=(A1m,A2m,A3m),A1m为Am的组成结构,A2m为Am的逻辑信息,A3m为Am的权重值,Am的权重值和Am对ATPG的成本成反比,ATPG越易于处理的基本单元的权重值越高。当所述处理器执行所述计算机程序时,如图2所示,实现以下步骤:
[0067] 步骤C1、获取待处理的组合逻辑标准单元集合{D1,D2,…DP}和第二liberty文件,Dp为第p个待处理的组合逻辑标准单元,p的取值范围为1到P,P为待处理的组合逻辑标准单元总数,D1,D2,…DP属于同一个待处理标准单元库,所述第二liberty文件中存储有每一Dp对应的布尔函数或真值表。
[0068] 步骤C2、将ATPG库模型的总权重值作为逻辑优化目标,基于{A1,A2,…AM}对Dp对应的布尔函数或真值表进行逻辑优化,生成f(p)个由至少一个Am的组成结构组合生成的与Dpp p p p逻辑信息的逻辑相同的候选ATPG库模型集合{E1 ,E2 ,…Ef(p) },Ex 为第x个候选ATPG库模p
型,x的取值范围为1到f(p),Ex由g(xp)个ATPG基本单元组成。
[0069] 需要说明的是,也可以将真值表转换为布尔函数后进行逻辑优化。逻辑综合的算法用于寻找最优的ATPG库模型。ATPG算法对于芯片门级网表中的ATPG的基本单元数目敏感,优化的目标通常是寻找具有最少基本库单元的等效ATPG库模型。但可以理解的是,若应用场景中还需要考虑其他因素,也可以将其他因素设置在内,但是基本库单元的数目对应的权重设置最高。
[0070] 步骤C3、获取每一Exp的总权重值Gxp:
[0071]
[0072] 其中, 为第x个候选ATPG库模型中第i个ATPG基本单元对应的权重值。
[0073] 步骤C4、将{E1p,E2p,…Ef(p)p}中总权重值最大的Exp确定为Dp对应的目标ATPG库模型。
[0074] 需要说明的是,基于ATPG基本单元库可能生成多个与Dp对应的待处理逻辑信息的逻辑相同的候选ATPG库模型,基于每一候选ATPG库模型对应的Am的权重值从中选择总权重最大的,也即最有利于ATPG过程的候选ATPG库模型,作为Dp对应的目标ATPG库模型。
[0075] 作为一种实施例,所述步骤C1包括:
[0076] 步骤C11、从预设的制程设计信息中获取待处理的标准单元库和第一liberty文件,所述第一liberty文件中存储有所述待处理的标准单元库中每一标准单元对应的逻辑信息和时序信息。
[0077] 其中,第一liberty文件为包括标准单元时序信息和逻辑信息的文件,第一liberty文件和标准单元库均可直接从预设的制程设计信息(Process Design Kit,简称PDK)中获取,在此不再赘述。
[0078] 步骤C12、从所述待处理的标准单元库和第一liberty文件中提取仅包括逻辑信息的组合逻辑标准单元集合{D1,D2,…DP}和第二liberty文件。
[0079] 作为一种实施例,所述ATPG基本单元库包括基本逻辑ATPG基本单元、组合逻辑ATPG基本单元、基本时序逻辑ATPG基本单元和用于处理三态逻辑、上拉电阻和下拉电阻的ATPG基本单元;其中,所述基本逻辑ATPG基本单元包括缓冲器(Buffer)、反相器(Inverter)、与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR);所述组合逻辑ATPG基本单元包括多输入的与或非门、异或门(XOR),同或门(XNOR)和选择器(MUX);所述基本时序逻辑ATPG基本单元包括锁存器(Latch)和寄存器(Flip‑flop)。基于ATPG基本单元库,对于一个给定的标准单元,均能尽可能的简化其ATPG库模型。也即用尽可能少的ATPG基本单元来构建ATPG库模型,从而保证ATPG的结果的正确性和高效性。
[0080] 作为一种实施例,每一ATPG基本单元均基于Verilog语言描述生成,从而使得每一Bn对应的目标ATPG库模型为基于Verilog语言的模型。便于后续对ATPG库模型的校验,具体的,所述第二liberty文件中还包括Dp对应的Verilog模型,所述步骤C4之后还包括:
[0081] 步骤C5、将Dp对应的目标ATPG库模型和Dp对应的Verilog模型输入预设的校验工具中进行校验,若校验通过,则Dp对应的目标ATPG库模型添加至预设的目标ATPG库模型库中。
[0082] 需要说明的是,由于目标ATPG库模型为基于Verilog语言的模型,因此可以直接与Dp对应的Verilog模型通过预设的校验工具进行校验,而无需其他转换,提高了目标ATPG库模型的测试效率,Dp对应的Verilog模型也是直接可以从预设的制程设计信息中获取的。预设的校验工具具体可以为业界标准的形式校验工具。
[0083] 上述过程不仅仅适用于组合逻辑标准单元,也可应用在抽取时序信息后的时序逻辑标准单元的目标ATPG库模型的构建过程。作为一种实施例,当所述处理器执行所述计算机程序时,还实现以下步骤:
[0084] 步骤C10、获取待处理的时序逻辑标准单元集合和第三liberty文件,从所述第三liberty文件中提取每一时序逻辑标准单元对应的状态表。
[0085] 步骤C20、从每一待处理的时序逻辑标准单元对应的状态表中获取对应的时序信息和逻辑信息,逻辑信息为真值表或布尔函数。
[0086] 步骤C30、基于待处理的时序逻辑标准单元对应的逻辑信息通过步骤C2‑步骤C4生成逻辑信息对应的目标ATPG库模型。
[0087] 步骤C40、将逻辑信息对应的目标ATPG库模型和时序信息相结合,生成每一待处理的时序逻辑标准单元对应的目标ATPG库模型。
[0088] 作为一种实施例,所述待处理的时序逻辑标准单元为集成时钟门控标准单元,具体构建集成时钟门控标准单元对应的目标ATPG库模型的技术细节在实施例三中具体描述,在此不再赘述。
[0089] 作为一种实施例,所述待处理的时序逻辑标准单元为同步器标准单元,具体构建同步器标准单元对应的目标ATPG库模型的技术细节在实施例四中具体描述,在此不再赘述。
[0090] 实施例二所述系统通过为每一组合逻辑标准单元进行逻辑优化得到每一组合逻辑标准单元的候选ATPG库模型集合,并基于每一标准单元设置对应的权重值从候选ATPG库模型集合中选择目标ATPG库模型,简化了组合逻辑标准单元的ATPG库模型的生成过程,提高了组合逻辑标准单元ATPG库模型的生成效率。
[0091] 实施例三、
[0092] 一种集成时钟门控(integrated clock gating,简称ICG)标准单元的ATPG库模型生成系统,包括预先构建的ATPG基本单元库{A1,A2,…AM}、存储有计算机程序的存储器和处理器,Am为ATPG基本单元库中第m个ATPG基本单元,m的取值范围为1到M,M为ATPG基本单元库中ATPG基本单元的总数。当所述处理器执行所述计算机程序时,如图3所示,实现以下步骤:
[0093] 步骤D1、获取待处理的集成时钟门控标准单元集合{F1,F2,…FR}和第三liberty文件,Fr为第r个待处理的集成时钟门控标准单元,r的取值范围为1到R,R为待处理的集成时钟门控标准单元总数,F1,F2,…FR属于同一个待处理标准单元库。
[0094] 步骤D2、从所述第三liberty文件中提取每一Fr对应的状态表,Fr对应的状态表包括多条第一状态记录,所述第一状态记录包括h(r)个输入字段和一个输出字段,所述h(r)个输入字段中包括一个第一使能输入字段和h(r)‑1个数据输入字段,第一使能输入字段用于存储第一状态或第二状态,所述h(r)‑1个数据输入字段和输出字段用于存储对应的电平状态,所述电平状态包括第一电平状态和第二电平状态,当第一使能输入字段为第一状态时,所述输出字段基于所述h(r)‑1个数据输入字段的逻辑关系确定,当所述第一使能输入字段为第二状态时,所述输出字段保持当前状态不变。
[0095] 步骤D3、从Fr对应的状态表中提取Fr对应的时序信息和第一逻辑信息,并从Fr中获取状态表的输出连接至Fr输出端的Fr对应的第二逻辑信息。
[0096] 需要说明的是,第一逻辑信息比第二逻辑信息复杂,仍以图4所示状态表为例,抽取的第一逻辑信息为IQ=(FE|TE),第二逻辑信息通常比较简单,例如具体可以为GCK=IQ*CK、GCK=!IQ+CK或者GCK=IQ|CK,GCK为集成时钟门控标准单元的最终输出。
[0097] 步骤D4、从{A1,A2,…AM}中选取至少一个Am组合生成与Fr对应的第一逻辑信息的逻辑相同的第一目标ATPG库模型,以及与Fr对应的第二逻辑信息的逻辑相同的第二目标ATPG库模型;
[0098] 步骤D5、设置Fr对应的存储单元,所述Fr对应的存储单元包括有效信号端口、数据输入端口和输出端口,基于Fr对应的时序信息将时钟信号连接至所述有效信号端口,将所述第一目标ATPG库模型连接至数据输入端口,将所述第二目标ATPG库模型连接至输出端口,生成Fr对应的目标ATPG库模型。
[0099] 作为一种实施例,所述步骤D3包括:
[0100] 步骤D31、将Fr对应的状态表中第一使能输入字段为第二状态的记录删除,将第一使能输入字段所在列删除,得到Fr对应的真值表。
[0101] 步骤D32、基于Fr对应的真值表获取所述第一逻辑信息。
[0102] 其中,具体可以将Fr对应的真值表转换为布尔函数,作为所述第一逻辑信息。
[0103] 作为一种实施例,Am=(A1m,A2m,A3m),A1m为Am的组成结构,A2m为Am的逻辑信息,A3m为Am的权重值,Am的权重值和Am对ATPG的成本成反比,所述D4包括:
[0104] 步骤D41、将ATPG库模型的总权重值作为逻辑优化目标,基于{A1,A2,…AM}对Fr对应的第一逻辑信息进行逻辑优化,生成k(r)个由至少一个Am的组成结构组合生成的与Fr对r r应的第一逻辑信息逻辑相同的候选ATPG库模型,组成候选ATPG库模型集合{Ey1 ,Ey2 ,…r r r
Eyk(r)},Eyz为第z个候选ATPG库模型,z的取值范围为1到k(r),Eyz由V(r)个ATPG基本单元组成。
[0105] 需要说明的是,逻辑综合的算法被用于寻找最优的ATPG库模型。ATPG算法对于芯片门级网表中的ATPG的基本单元数目敏感,优化的目标通常是寻找具有最少基本库单元的等效ATPG库模型。但可以理解的是,若应用场景中还需要考虑其他因素,也可以将其他因素设置在内,但是基本库单元的数目对应的权重设置最高。
[0106] 步骤D42、获取每一Eyzr的总权重值Gzr:
[0107]
[0108] 其中, 为第r个候选ATPG库模型中,第i个ATPG基本单元对应的权重值。
[0109] 步骤D43、将{Ey1r,Ey2r,…Eyk(r)r}中总权重值最大的Eyzr确定为Fr对应的第一目标ATPG库模型。
[0110] 需要说明的是,基于ATPG基本单元库可能生成多个与Fr对应的第一逻辑信对应的待处理逻辑信息的逻辑相同的候选ATPG库模型,基于每一候选ATPG库模型对应的Am的权重值从中选择总权重最大的,也即最有利于ATPG过程的候选ATPG库模型,作为Fr对应的第一目标ATPG库模型。
[0111] 作为一种实施例,所述D4包括:
[0112] 步骤D41’、从{A1,A2,…AM}获取与Fr对应的第二逻辑信息逻辑相同的Am作为所述第二目标ATPG库模型。
[0113] 需要说明的是,由于Fr对应的第二逻辑信息通常比较简单,因此可以直接从{A1,A2,…AM}获取与Fr对应的第二逻辑信息逻辑相同的Am作为所述第二目标ATPG库模型,无需再执行筛选步骤。
[0114] 作为一种实施例,所述步骤D1包括:
[0115] 步骤D11、从预设的制程设计信息中获取待处理的标准单元库和第一liberty文件,所述第一liberty文件中存储有所述待处理的标准单元库中每一标准单元对应的逻辑信息和时序信息。
[0116] 其中,第一liberty文件为包括标准单元时序信息和逻辑信息的文件,第一liberty文件和标准单元库均可直接从预设的制程设计信息(Process Design Kit,简称PDK)中获取,在此不再赘述。
[0117] 步骤D12、遍历待处理的标准单元库中的标准单元,将存在至少任意一个管脚的“clock_gate_clock_pin”项设置为“true”的标准单元确定为待处理的集成时钟门控标准单元,生成所述集成时钟门控标准单元集合{F1,F2,…FR},并从所述第一liberty文件获取第三liberty文件。
[0118] 需要说明的是,“clock_gate_clock_pin”为管脚的一个属性项,当设置为“true”时,说明对应的标准单元为集成时钟门控标准单元。
[0119] 作为一种实施例,所述ATPG基本单元库包括基本逻辑ATPG基本单元、组合逻辑ATPG基本单元、基本时序逻辑ATPG基本单元和用于处理三态逻辑、上拉电阻和下拉电阻的ATPG基本单元;其中,所述基本逻辑ATPG基本单元包括缓冲器(Buffer)、反相器(Inverter)、与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR);所述组合逻辑ATPG基本单元包括多输入的与或非门、异或门(XOR),同或门(XNOR)和选择器(MUX);所述基本时序逻辑ATPG基本单元包括锁存器(Latch)和寄存器(Flip‑flop)。基于ATPG基本单元库,对于一个给定的标准单元,均能尽可能的简化其ATPG库模型。也即用尽可能少的ATPG基本单元来构建ATPG库模型,从而保证ATPG的结果的正确性和高效性。
[0120] 作为一种实施例,每一ATPG基本单元均基于Verilog语言描述生成,从而使得每一Bn对应的目标ATPG库模型为基于Verilog语言的模型。便于后续对ATPG库模型的校验,具体的,所述第二liberty文件中还包括Dp对应的Verilog模型,所述步骤D5之后还包括:
[0121] 步骤D6、将Fr对应的目标ATPG库模型和Fr对应的Verilog模型输入预设的校验工具中进行校验,若校验通过,则Fr对应的目标ATPG库模型添加至预设的目标ATPG库模型库中。
[0122] 需要说明的是,由于目标ATPG库模型为基于Verilog语言的模型,因此可以直接与Fr对应的Verilog模型通过预设的校验工具进行校验,而无需其他转换,提高了目标ATPG库模型的测试效率,Fr对应的Verilog模型也是直接可以从预设的制程设计信息中获取的。预设的校验工具具体可以为业界标准的形式校验工具。
[0123] 作为一种实施例,若Fr为锁存器构成的集成时钟门控标准单元,则Fr对应的状态表中的第一状态和第二状态为第一电平状态或第二电平状态,所述步骤D5对应的存储单元为锁存器。
[0124] 具体的,所述第一电平状态为高电平状态,所述第二电平状态为低电平状态,或者,所述第一电平状态为低电平状态,所述第二电平状态为高电平状态。
[0125] 作为一种实施例,若所述第二电状态为高电平状态,则在所述步骤D5中还包括:在存储单元的有效信号端口插入反相器。
[0126] 如图4所示的一个集成时钟门控标准单元的状态表,其中,“CK”为使能输入字段,“FE”为第一数据输入字段,“TE”为第二数据输入字段,“IQ”为输出字段。“L”表示第一状态以及第一电平状态,具体为低电平。H表示第二状态以及第二电平状态,具体为高电平。“N”表示保持不变,“‑”表示对应字段忽略,也即是任意状态均不会对结果产生影响。
[0127] 作为一种实施例,若Fr为寄存器构成的集成时钟门控标准单元,则Fr对应的第一状态和第二状态为第一沿触发状态和第二沿触发状态。
[0128] 具体的,所述第一沿触发状态为上升沿,所述第二沿触发状态为下降沿,或者,所述第一沿触发状态为下降沿,所述第二沿触发状态为上升沿。
[0129] 作为一种实施例,若所述第二电状态为上升沿,则在所述步骤D5中还包括:在存储单元的有效信号端口插入反相器。
[0130] 实施例三所述系统通过抽取集成时钟门控标准单元的状态表中的时序信息和逻辑信息,基于ATPG基本单元库生成针对逻辑信息的ATPG库模型,再与时钟信息相结合生成集成时钟门控标准单元的ATPG库模型,简化了集成时钟门控标准单元的ATPG库模型的生成过程,提高了集成时钟门控标准单元的ATPG库模型的生成效率。
[0131] 实施例四、
[0132] 实施例四提供了一种同步器标准单元的ATPG库模型生成系统,包括预先构建的ATPG基本单元库{A1,A2,…AM}、存储有计算机程序的存储器和处理器,Am为ATPG基本单元库中第m个ATPG基本单元,m的取值范围为1到M,M为ATPG基本单元库中ATPG基本单元的总数,当所述处理器执行所述计算机程序时。如图5所示,实现以下步骤:
[0133] 步骤E1、获取待处理的同步器标准单元集合{K1,K2,…KS}和第四liberty文件,Ks为第s个待处理的同步器标准单元,s的取值范围为1到S,S为待处理的同步器标准单元总数,K1,K2,…KS属于同一个待处理标准单元库。
[0134] 步骤E2、从所述第四liberty文件中提取每一Ks对应的状态表,Ks对应的状态表包括多条第二状态记录,所述第二状态记录包括L(s)个输入字段和T(s)个输出字段,所述L(s)个输入字段包括第二使能输入字段、选择信号字段和L(s)‑2个数据输入字段;所述第二使能输入字段用于存储第一沿触发状态和第二沿触发状态,所述选择信号字段、其他L(s)‑2个数据输入字段、T(s)个输出字段用于存储对应的电平状态,所述电平状态包括第一电平状态和第二电平状态;当第二使能输入字段为第一沿触发状态时,T(s)个输出字段基于选择信号字段以及L(s)‑2个数据输入字段的逻辑关系确定;当第二使能输入字段为第二沿触发状态时,T(s)个输出字段保持当前状态不变;第j个输出字段对应Ks中第j个寄存器的输出状态,Ks中包括T(s)个寄存器。
[0135] 如图6所示的一个同步器标准单元的状态表,本示例中,存在两个寄存器,对应的输出字段分别为“IQ1”和“IQ2”;“CLK”表示第二使能输入字段,“se”表示选择信号字段,“d”表示同步器标准单元的第一数据输入字段,“si”表示同步器标准单元的第二数据输入字段。“R”表示第一状态,“~R”表示第二状态,“L”表示第一电平状态,具体为低电平,“H”表示第二电平状态,具体为高电平。“N”表示保持不变,“H/L”表示第一电平状态或第二电平状态,“‑”表示对应字段忽略,也即是任意状态均不会对结果产生影响。
[0136] 步骤E3、从Ks对应的状态表中提取Ks对应的时序信息、第三逻辑信息以及T(s)个寄存器按照连接顺序排列的寄存器序列(RE1,RE2,…RET(s)),REu为Ks中排在第u个的寄存器,u的取值范围为1到T(s)。
[0137] 仍以图6所示示例,“IQ1”对应的寄存器排在“IQ2”对应的寄存器之前,即“IQ1”对应的寄存器的输出端与“IQ2”对应的寄存器的输入端相连。
[0138] 步骤E4、从{A1,A2,…AM}中选取至少一个Am组合生成与Ks对应的第三逻辑信息的逻辑相同的第三目标ATPG库模型。
[0139] 步骤E5、设置Ks中每一REu对应的寄存器单元RFu,每一RFu包括有效信号端口、数据输入端口和输出端口,将RFu的输出端口连接至RFu+1的数据输入端口,将所述第三目标ATPG库模型连接至RF1的数据输入端口,基于Ks对应的时序信息将时钟信号连接至每一RFu的有效信号端口,生成Ks对应的目标ATPG库模型。
[0140] 作为一种实施例,所述步骤E1包括:
[0141] 步骤E11、从预设的制程设计信息中获取待处理的标准单元库和第一liberty文件,所述第一liberty文件中存储有所述待处理的标准单元库中每一标准单元对应的逻辑信息和时序信息。
[0142] 其中,第一liberty文件为包括标准单元时序信息和逻辑信息的文件,第一liberty文件和标准单元库均可直接从预设的制程设计信息(Process Design Kit,简称PDK)中获取,在此不再赘述。
[0143] 步骤E12、遍历待处理的标准单元库中的标准单元,将包括两个以上寄存器的时序标准单元确定为待处理的同步器标准单元,生成所述待处理的同步器标准单元集合{K1,K2,…KS},并从所述第一liberty文件获取第四liberty文件。
[0144] 作为一种实施例,所述ATPG基本单元库包括基本逻辑ATPG基本单元、组合逻辑ATPG基本单元、基本时序逻辑ATPG基本单元和用于处理三态逻辑、上拉电阻和下拉电阻的ATPG基本单元;其中,所述基本逻辑ATPG基本单元包括缓冲器(Buffer)、反相器(Inverter)、与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR);所述组合逻辑ATPG基本单元包括多输入的与或非门、异或门(XOR),同或门(XNOR)和选择器(MUX);所述基本时序逻辑ATPG基本单元包括锁存器(Latch)和寄存器(Flip‑flop)。基于ATPG基本单元库,对于一个给定的标准单元,均能尽可能的简化其ATPG库模型。也即用尽可能少的ATPG基本单元来构建ATPG库模型,从而保证ATPG的结果的正确性和高效性。
[0145] 作为一种实施例,每一ATPG基本单元均基于Verilog语言描述生成,从而使得每一Bn对应的目标ATPG库模型为基于Verilog语言的模型。便于后续对ATPG库模型的校验,具体的,所述第二liberty文件中还包括Dp对应的Verilog模型,所述步骤E5之后还包括:
[0146] 步骤E6、将Ks对应的目标ATPG库模型和Ks对应的Verilog模型输入预设的校验工具中进行校验,若校验通过,则Ks对应的目标ATPG库模型添加至预设的目标ATPG库模型库中。
[0147] 需要说明的是,由于目标ATPG库模型为基于Verilog语言的模型,因此可以直接与Ks对应的Verilog模型通过预设的校验工具进行校验,而无需其他转换,提高了目标ATPG库模型的测试效率,Ks对应的Verilog模型也是直接可以从预设的制程设计信息中获取的。预设的校验工具具体可以为业界标准的形式校验工具。
[0148] 作为一种实施例,所述步骤E3包括:
[0149] 步骤E31、将Ks对应的状态表中第二使能输入字段为第二沿触发状态的记录删除,将第二使能输入字段所在列删除,得到Ks对应的真值表。
[0150] 步骤E32、基于Ks对应的真值表获取所述第三逻辑信息。
[0151] 其中,具体可以将Ks对应的真值表转换为布尔函数,作为所述第一逻辑信息。
[0152] 作为一种实施例,Am=(A1m,A2m,A3m),A1m为Am的组成结构,A2m为Am的逻辑信息,A3m为Am的权重值,Am的权重值和Am对ATPG的成本成反比,ATPG越易于处理的基本单元的权重值越高,所述E4包括:
[0153] 步骤E41、将ATPG库模型的总权重值作为逻辑优化目标,基于{A1,A2,…AM}对Ks对应的第三逻辑信息进行逻辑优化,生成I(s)个由至少一个Am的组成结构组合生成的与Ks对s s s s应的第三逻辑信息的逻辑相同的候选ATPG库模型集合{Ec1 ,Ec2 ,…EcI(s)},Ecw 为第w个候s
选ATPG库模型,w的取值范围为1到I(s),Ecw由J(s)个ATPG基本单元组成。
[0154] 需要说明的是,逻辑综合的算法被用于寻找最优的ATPG库模型。ATPG算法对于芯片门级网表中的ATPG的基本单元数目敏感,优化的目标通常是寻找具有最少基本库单元的等效ATPG库模型。但可以理解的是,若应用场景中还需要考虑其他因素,也可以将其他因素设置在内,但是基本库单元的数目对应的权重设置最高。
[0155] 步骤E42、获取每一Ecws的总权重值Gws:
[0156]
[0157] 其中, 为第w个候选ATPG库模型中,第i个ATPG基本单元对应的权重值。
[0158] 步骤E43、将{Ec1s,Ec2s,…EcI(s)s}中总权重值最大的Ecws确定为Ks对应的第三目标ATPG库模型。
[0159] 需要说明的是,基于ATPG基本单元库可能生成多个与Ks对应的第一逻辑信对应的待处理逻辑信息的逻辑相同的候选ATPG库模型,基于每一候选ATPG库模型对应的Am的权重值从中选择总权重最大的,也即最有利于ATPG过程的候选ATPG库模型,作为Ks对应的第三目标ATPG库模型。
[0160] 作为一种实施例,所述第一沿触发状态为上升沿,所述第二沿触发状态为下降沿,或者,所述第一沿触发状态为下降沿,所述第二沿触发状态为上升沿。
[0161] 作为一种实施例,若所述第二电状态为上升沿,则在所述步骤E5中还包括在每一寄存器的有效信号端口插入反相器。
[0162] 实施例四所述系统通过抽取同步器标准单元的状态表中的时序信息、逻辑信息以及寄存器之间的连接关系,基于ATPG基本单元库生成针对逻辑信息的ATPG库模型,再与时钟信息和寄存器之间的连接关系相结合,生成同步器标准单元的ATPG库模型,简化了同步器标准单元的ATPG库模型的生成过程,提高了同步器标准单元的ATPG库模型的生成效率。
[0163] 实施例五、
[0164] 针对现有技术中通常直接展示设计门级网表中的标准单元、标准单元之间的连接关系以及标准单元基于ATPG模型生成的输入输出值。但是有些标准单元所占面积比较大,且不能直接展示标准单元中的组成细节,可读性差,若需要获取组成细节信息,还需逐个点击对应的标准单元来呈现组成细节,且展开后的标准单元会进一步增加所占面积,从而导致调试效率低,用户体验差的技术问题,本发明进一步提出了实施例五。
[0165] 实施例五提供了一种用于生成标准单元目标显示结构的数据处理系统,包括待处理的标准单元库{B1,B2,…BN}、第一liberty文件、存储有计算机程序的存储器和处理器,Bn为待处理的标准单元库中第n个标准单元,n的取值范围为1到N,所述第一liberty文件中存储有每一Bn对应的逻辑信息和时序信息。当所述处理器执行所述计算机程序时,如图7所示,实现以下步骤:
[0166] 步骤F1、基于Bn对应的逻辑信息和时序信息获取对应的布尔函数Q(n)。
[0167] 步骤F2、将Q(n)取反得到!Q(n)。
[0168] 步骤F3、分别将Q(n)和!Q(n)进行逻辑优化,生成Q(n)对应的积之和SOP(Sum Of Product)形式的候选函数Q1(n)、Q(n)对应的和之积POS(Product Of Sum)形式的候选函数Q2(n)、!Q(n)对应的积之和SOP形式的候选函数!Q3(n)、!Q(n)对应的和之积POS形式的候选函数!Q4(n)。
[0169] SOP表示积之和,即化成最小项的形式,POS表示和之积,即化成最大项的形式。现有的生成Q(n)和!Q(n)的SOP和POS形式的候选函数的实现方式全部落入本发明保护范围之内。
[0170] 步骤F4、从Q1(n)、Q2(n)、!Q3(n)和!Q4(n)中选择最简化的候选函数作为Q(n)对应的目标函数;
[0171] 步骤F5、基于Q(n)对应的目标函数生成Q(n)对应的目标显示结构,所述目标显示结构包括输入端口、输出端口、组成模块和组成模块之间的连接关系。
[0172] 以下通过两种实施例方式来实现步骤F4:
[0173] 实施方式一、
[0174] 所述步骤F4包括:
[0175] 步骤F41、若Q1(n)、Q2(n)、!Q3(n)和!Q4(n)存在一个变量数最少的候选函数,则将变量数最小的候选函数确定为Q(n)对应的目标函数,其中,WX和!WX视为一个变量,WX表示任何一个变量,若存在多个变量数最少的候选函数,执行步骤F42。
[0176] 步骤F42、若所述多个变量数最少的候选函数存在一个门数量最少的候选函数,则将门数量最少的候选函数确定为Q(n)对应的目标函数,其中候选函数中每一括号对应一个门,若存在多个门数量最少的候选函数,则执行步骤F43。
[0177] 步骤F43、将所述多个门数量最少的候选函数中取反数量最少的候选函数确定为Q(n)对应的目标函数。
[0178] 其中,所述步骤F43包括:
[0179] 步骤F431、若所述多个门数量最少的候选函数中存在一个取反数量最少的候选函数,则将取反数量最少的候选函数确定为Q(n)对应的目标函数,若存在多个取反数量最少的候选函数,则随机选择一个取反数量最少的候选函数作为Q(n)对应的目标函数。
[0180] 基于上述约束条件优化得到的Q(n)对应的目标显示结构,能够使得显示的原理图便于理解和分析,增加了用户的可读性,提高调试效率。
[0181] 实施方式二、
[0182] 所述步骤F4包括:
[0183] 步骤F41’、设置变量数量权重We1、门数量权重We2和取反数量权重We3,We1、We2、We3满足We1>We2>We3,We1‑We2>WZ1,We2‑We3>WZ2,WZ1>WZ2,WZ1为第一级差阈值,WZ2为第二级差阈值。
[0184] 步骤F42’、获取SXd中变量数量ad,门数量bd和取反数量cd,SXd为{Q1(n)、Q2(n)、!Q3(n)和!Q4(n)}中的一个函数,d的取值范围为1到4,其中,满足预设的约束条件:WX和!WX视为一个变量,WX表示任何一个变量;每一括号对应一个门。
[0185] 步骤F43’、获取SXd对应的总权重SYd:
[0186] SYd=We3*ad+We2*bd+We3*cd;
[0187] 步骤F44’、将SYd最大的SXd确定为Q(n)对应的目标函数。
[0188] 基于上述约束条件优化得到的Q(n)对应的目标显示结构,能够使得显示的原理图便于理解和分析,增加了用户的可读性,提高调试效率。
[0189] 作为一种实施例,所述系统还包括显示界面,步骤F5之后还包括:
[0190] 步骤F6、获取待测芯片设计门级网表,所述待测设计门级网表基于所述待处理的标准单元库{B1,B2,…BN}生成。
[0191] 步骤F7、基于目标显示结构,将所述待测芯片设计门级网表中每一标准单元替换为对应的目标显示结构,在所述显示界面上进行显示。
[0192] 可以理解的是,步骤F7所显示的结构直接为标准单元替换为对应的目标显示结构,显示的是逻辑正确且显示最优的结构,可以直观呈现整个待测芯片设计门级网表的具体组成,无需额外点击,便于调试。
[0193] 作为一种实施例,所述系统还包括预先生成的待测芯片设计门级网表对应的ATPG模型,所述步骤F7还包括:
[0194] 步骤F71、基于待测芯片设计门级网表对应的ATPG模型生成每一目标显示结构对应的输入参数值和输出参数值,并在所述界面上每一目标显示结构对应的输入端和输出端进行显示。
[0195] 通过直观显示输出输入参数值和输出参数值,进一步提高了调试效率。
[0196] 图8示出了显示了原始待测芯片设计门级网表原始显示界面(箭头以上的部分)到基于目标显示结构的显示界面(箭头以下部分),从图中可以看出,基于目标显示结构的显示界面使得相同的单元的尺寸明显减小,且明确示出了每一组成单元的详细组成部分以及连接关系。
[0197] 需要说明的是,待测芯片设计门级网表对应的ATPG模型的具体生成细节可以采用上述时很实施例一、实施例二、实施例三和实施例四中的任何一个技术细节来实现,在此不再赘述。
[0198] 可以理解的是,上述实施例中一些技术细节同样适用于另一实施例,不再全部展开描述。
[0199] 实施例五所述系统能够对每一标准单元进行逻辑优化,生成对应的目标显示结构,从而使得在显示芯片设计门级网表时,直接显示每一标准单元对应的目标显示结构,既能清晰显示门级网表的具体组成结构,可读性高,且能缩小芯片设计门级网表的显示面积,便于用户调试,提高了调试效率。
[0200] 需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
[0201] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。