首页> 中国专利> 基于Perl的EDIF网表级电路的自动可测性设计系统及自动可测性设计方法

基于Perl的EDIF网表级电路的自动可测性设计系统及自动可测性设计方法

摘要

基于Perl的EDIF网表级电路的自动可测性设计系统及自动可测性设计方法,涉及一种EDIF网表级电路的自动可测性设计系统及自动可测性设计方法。它是为了适应对EDIF网表级电路的自动可测性设计的需求。电路源码解析模块用于对数字逻辑电路的EDIF网表级描述的分析;触发器修改模块用于用EDIF语言完对所有触发器的可测性修改;Verilog封装模块用于对EDIF网表描述电路的Verilog封装;扫描链连接模块用于对EDIF网表描述电路用Verilog语言完成电路的扫描链设计;可测性电路生成模块用于对电路的再次Verilog封装;测试验证模块用于生成测试文件并对可测性设计后的电路进行验证。本发明适用于EDIF网表级电路的自动可测性设计。

著录项

  • 公开/公告号CN103294600A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN201310268649.7

  • 发明设计人 俞洋;陈诚;彭喜元;乔立岩;

    申请日2013-06-28

  • 分类号G06F11/36(20060101);

  • 代理机构23109 哈尔滨市松花江专利商标事务所;

  • 代理人张宏威

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2024-02-19 20:43:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-19

    授权

    授权

  • 2013-10-16

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20130628

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本发明涉及一种EDIF网表级电路的自动可测性设计系统及自动可测性设计方法。

背景技术

在当今随着半导体技术的发展,集成电路芯片(IC)得到了广泛的应用,保障集成电 路芯片的可靠性成为一个重要问题。对IC进行测试的方法成为解决IC可靠性的主要途径, 但是具有复杂功能的IC的可测性低的问题严重制约了IC测试的有效性。而对IC进行可 测性设计可以有效的改善电路的可控性和可观性,大大提高了芯片的可测性,使得IC测 试可以有效的进行。

电路的可测性设计就是在不影响电路功能的前提下,对原电路的结构进行改造,使电 路内部原来不具有可控性和客观性的节点获得这些性质,便于测试。常用的方法是对原电 路中使用的触发器进行可测性改造,使其成为可测性触发器,然后将改造后的触发器连接 成一条或几条触发器链,称为扫描链,将扫描链的输入端和输出端作为电路的测试端口, 通过这些端口就可以控制并观测电路的内部节点。常用的可测性触发器是多路选择器结构 的可测性触发器,即在原触发器的输入端加入一个多路选择器,这样就可以控制触发器的 数据。

在目前的电路设计过程中,电路设计往往是由不同的部门或公司分别完成其中的一部 分,同时在整个电路设计的过程中会涉及到多种EDA工具,这就涉及到数据交换的问题。 而EDIF网表是不同公司和不同EDA工具之间交换数据的一种标准格式。EDIF是电子设 计交换格式(Electronic Design Interchange Format)的英文缩写,它是一种不受版权限制 的数据格式,它提出和规定了电路设有关的原理图、符号和物理布局、互连以及结构信息。 使用EDIF网表语言描述的电路,可以作为标准的交换格式在各个电路的设计环节进行信 息交换。

EDIF网表级电路是使用EDIF网表语言描述的电路,在电路的设计过程中,电路的 功能设计和可测性设计往往是分开的,电路功能设计的人员传递给电路可测性设计人员的 电路数据很多时候就是用EDIF网表描述的,这样的网表中主要描述电路中各个元件的使 用信息及互相之间的连接信息。通过分析电路的EDIF网表就可以获得电路必要信息,以 对电路进行可测性设计成为电路可测性设计的一种重要方式。

EDIF网表的存储格式是ASIC编码的文本格式,所以可以非常方便的使用Perl语言 对其进行分析和处理。Perl语言是一种高级、通用、直泽式、动态的、功能强大的语言, 其最重要的特性是内部集成的正则表达式的功能,以及巨大的第三方代码库CPAN。其中 正则表达式的功能可以为我们非常好的处理文本,在这里可以用来非常方便高效的处理 EDIF网表。

在触发器设计阶段,需要对电路中使用的触发器进行可测性修改,在实际的电路中触 发器的使用数量是相当庞大的,所以有必要使用工具对电路中使用的触发器进行自动化的 修改。这里我们可以使用Perl语言编写自动化修改的工具完成这个功能,代替费时费力 的人工手动修改。

在扫描链设计阶段,需要对已经完成触发器修改的电路进行触发器的连接,将那些修 改完的具有可测性的触发器连接成一条或数条链。由于测试的需要,扫描链的设计常常需 要人工完成,并随时修改其连接方式。虽然EDIF网表非常通用,非常适合使用软件处理, 但是由于EDIF网表并不是常用的直接设计语言,作为电路设计人员,阅读和修改时并不 是很方便。但是在这个阶段,设计人员只需要知道需要进行连接的触发器的相关信息即可。 所以在这里可以在保证电路功能不变的前提下,使用常用的电路设计语言对进行触发器修 改后的EDIF网表电路进行包装,对外屏蔽内部信息并提供与EDIF相应的接口,以供触 发器扫描链设计。

在电路设计领域,Verilog HDL(Verilog硬件描述语言)就是一种常用的设计语言, 可以作为封装EDIF网表电路的设计语言,将其包装成Verilog的形式,对外提供符合 Verilog语法的接口,以供可测性设计人员进一步便捷的设计。Verilog语言的存储格式也 是文本格式的,也可以使用Perl语言方便的完成封装这项工作,同时可以辅助扫描链设 计人员在Verilog环境中完成扫描链的设计工作。

发明内容

本发明是为了适应对EDIF网表级电路的自动可测性设计的需求,从而提出一种基于 Perl的EDIF网表级电路的自动可测性设计系统及自动可测性设计方法。

基于Perl的EDIF网表级电路的自动可测性设计系统,它包括电路源码解析模块1、 触发器修改模块2、扫描链设计模块3、可测性电路生成模块4、测试验证模块5;

电路源码解析模块1用于对数字逻辑电路的EDIF网表级描述的分析,获得电路中所 有触发器使用的信息;

触发器修改模块2包括可测性触发器生成模块21和触发器可测性修改模块22;

触发器修改模块2用于根据电路源码解析模块提供的触发器信息,在电路的EDIF网 表描述的文件中用EDIF语言完对所有触发器的可测性修改;

扫描链设计模块3包括Verilog封装模块31和扫描链连接模块32;

Verilog封装模块31用于根据电路源码解析模块提供的触发器信息及触发器修改模块 提供的触发器修改后的电路EDIF网表,完成对EDIF网表描述电路的Verilog封装;

扫描链连接模块32用于用于根据电路源码解析模块提供的触发器信息及触发器修改 模块提供的触发器修改后的电路EDIF网表,完成对EDIF网表描述电路用Verilog语言完 成电路的扫描链设计;

可测性电路生成模块4用于根据扫描链设计模块生成的Verilog形式的电路完成对电 路的再次Verilog封装,获得最终的可测性设计后的电路;

测试验证模块5用于根据电路源码解析模块提供的端口和触发器信息以及可测性电 路生成模块提供的已完成可测性设计的电路,生成测试文件并对可测性设计后的电路进行 验证。

可测性电路生成模块4获得最终的可测性设计后的电路对外屏蔽所有电路内部信息, 仅提供符合常用硬件描述语言形式的接口。

基于Perl的EDIF网表级电路的自动测试方法,它由以下步骤实现:

步骤一、采用电路源码解析模块1对电路中使用的触发器进行分析,并使用Perl在 EDIF环境中进行处理;

步骤二、采用触发器修改模块2对电路中使用的触发器进行可测性的修改,并使用 Perl在EDIF环境中进行处理;

步骤三、使用Perl对已完成触发器可测性修改后的EDIF电路进行Verilog封装,屏 蔽EDIF细节,然后对电路中可测性改造的触发器进行扫描链的设计;

步骤四、使用Perl给出最终的具有可测性的且符合Verilog语法的电路,并验证修改 正确后,使用Perl生成符合Tcl语法的自动测试文件,进而实现EDIF网表级电路的自动 测试。

步骤一中采用电路源码解析模块1对电路中使用的触发器进行分析,并使用Perl在 EDIF环境中进行处理的具体方法为:

步骤A1、打开EDIF网表级电路文件;

步骤A2、从EDIF网表级电路文件中分析出电路中所有的元件使用信息,以及电路 的调用信息;

步骤A3、从步骤A2中获得的电路所有元件使用信息的文件中,分析出具体的instance 的调用情况,并将其保存成调用格式,以文件形式保存;

步骤A4、从步骤A3输出的调用信息的文件中,找到与触发器有关的调用信息,分 成对电路中使用的触发器的分析。

步骤二中采用触发器修改模块2对电路中使用的触发器进行可测性的修改,并使用 Perl在EDIF环境中进行处理的具体方法为:

步骤B1、从步骤一中分析出的所使用的所有触发器信息中,获得触发的类型;

步骤B2、生成一个可测性EDIF元件库,该元件库中包含有步骤B1中分析出的所有 类型的触发器对应的可测性触发器;

步骤B3、将步骤B2获得的可测性库插入到原电路的EDIF元件中,插入的位置在原 电路有关触发器声明的库之后;

步骤B4、根据步骤一中分析出的所使用的所有触发器信息,生成触发器的修改信息;

步骤B5、根据步骤B4获得的生成触发器的修改信息,对步骤B3的EDIF文件逐条 修改,修改触发的引用路径,增加测试端口的声明及测试端口的节点连接,得到触发器修 改完成的EDIF文件。

步骤三中使用Perl对已完成触发器可测性修改后的EDIF电路进行Verilog封装,屏 蔽EDIF细节,然后对电路中可测性改造的触发器进行扫描链的设计的具体方法是:

步骤C1、使用Perl对已完成触发器可测性修改后的EDIF电路进行Verilog封装,以 Verilog的形式对外保留原电路的功能端口和新增加的测试端口;

步骤C2、根据预设的扫描链的连接方式对触发器进行连接。

步骤四中使用Perl给出最终的具有可测性的且符合Verilog语法的电路,并验证修改 正确后,使用Perl生成符合Tcl语法的自动测试文件的具体方法是:

步骤D1、对步骤三中生成的已完成扫描链设计的电路的Verilog文件进行再一次的封 装,使用Verilog给出最后的电路形式,作为最终的可测性设计的输出文件;

步骤D2、根据电路的信息,生成一个测试文件,用于测试扫描链的连接是否正确;

步骤D3、针对特定的仿真器生成一个Tcl脚本,自动对可测性设计的输出文件进行 验证。

本发明能够适应对EDIF网表级电路的自动可测性设计的需求。

附图说明

图1是本发明的基于Perl的EDIF网表级电路的自动可测性设计系统的原理示意图。

具体实施方式

具体实施方式一、结合图1说明本具体实施方式,基于Perl的EDIF网表级电路的自 动可测性设计系统,它包括电路源码解析模块1、触发器修改模块2、扫描链设计模块3、 可测性电路生成模块4、测试验证模块5;

电路源码解析模块1用于对数字逻辑电路的EDIF网表级描述的分析,获得电路中所 有触发器使用的信息;

触发器修改模块2包括可测性触发器生成模块21和触发器可测性修改模块22;

触发器修改模块2用于根据电路源码解析模块提供的触发器信息,在电路的EDIF网 表描述的文件中用EDIF语言完对所有触发器的可测性修改;

扫描链设计模块3包括Verilog封装模块31和扫描链连接模块32;

Verilog封装模块31用于根据电路源码解析模块提供的触发器信息及触发器修改模块 提供的触发器修改后的电路EDIF网表,完成对EDIF网表描述电路的Verilog封装;

扫描链连接模块32用于用于根据电路源码解析模块提供的触发器信息及触发器修改 模块提供的触发器修改后的电路EDIF网表,完成对EDIF网表描述电路用Verilog语言完 成电路的扫描链设计;

可测性电路生成模块4用于根据扫描链设计模块生成的Verilog形式的电路完成对电 路的再次Verilog封装,获得最终的可测性设计后的电路;

测试验证模块5用于根据电路源码解析模块提供的端口和触发器信息以及可测性电 路生成模块提供的已完成可测性设计的电路,生成测试文件并对可测性设计后的电路进行 验证。

具体实施方式二、本具体实施方式与具体实施方式一所述的基于Perl的EDIF网表级 电路的自动可测性设计系统的区别在于,可测性电路生成模块4获得最终的可测性设计后 的电路对外屏蔽所有电路内部信息,仅提供符合常用硬件描述语言形式的接口。

具体实施方式三、基于Perl的EDIF网表级电路的自动测试方法,它由以下步骤实现:

步骤一、采用电路源码解析模块1对电路中使用的触发器进行分析,并使用Perl在 EDIF环境中进行处理;

步骤二、采用触发器修改模块2对电路中使用的触发器进行可测性的修改,并使用 Perl在EDIF环境中进行处理;

步骤三、使用Perl对已完成触发器可测性修改后的EDIF电路进行Verilog封装,屏 蔽EDIF细节,然后对电路中可测性改造的触发器进行扫描链的设计;

步骤四、使用Perl给出最终的具有可测性的且符合Verilog语法的电路,并验证修改 正确后,使用Perl生成符合Tel语法的自动测试文件,进而实现EDIF网表级电路的自动 测试。

具体实施方式四、本具体实施方式是具体实施方式三的所述的基于Perl的EDIF网表 级电路的自动测试方法进一步限定,步骤一中采用电路源码解析模块1对电路中使用的触 发器进行分析,并使用Perl在EDIF环境中进行处理的具体方法为:

步骤A1、打开EDIF网表级电路文件;

步骤A2、从EDIF网表级电路文件中分析出电路中所有的元件使用信息,以及电路 的调用信息;

从EDIF原文件中分析出电路中所有的元件使用信息,及电路的调用信息,包括edif 的name,library的name,library中包含所有的cell的name,cell中所有的view的name, view中调用的实例instance的name,及此instance的引用路径viewRef、cellRef、libraryRef, 并将这些信息保存成一个文件,供后续使用。信息以“属性(空格)属性值”的形式按行存 储,形式如下:

edif edifname

library libraryname

cellc ellname

view viewname

instance instancename viewRef viewRefname cellRef cellRefname libraryRef  libraryRefname

design designname cellRef cellRefname libraryRef libraryname

对于edif属性,其值为edif;

对于library属性,其值为library;

对于cell属性,其值为cellname;

对于view属性,其值为viewname;

对于instance属性,其值为viewname;instance属性包含viewRef属性,属性值为 viewname;包含cellRef属性,属性值为cellname;可能包含libraryRef属性,其值为 libraryRefname;

对于design属性,属性值为designname;design属性包含cellRef属性,属性值 cellRefname;包含libraryRef属性,属性值libraryRefname;

edif只有一个位于第一行,edif属性下面可能有多个library,library的级别为第一级, library下面可能有多个cell,cell的级别为第二级,cell下面可能有多个view,view为第 三级,view下面可能有多个instance,instance为第四级,design只有一个,位于最后一 行。

除edif和design之外的属性名按级别依次出现,若出现断档,则优先出现级别低的。

步骤A3、从步骤A2中获得的电路所有元件使用信息的文件中,分析出具体的instance 的调用情况,并将其保存成调用格式,以文件形式保存,其格式如下:

{lib.cell.view}{inLib.inCell.inView}[instNamel instName2instName3...]

lib库中的cell的view,被用于inLib的inCell的inView中,被使用的名称是instNamel、 instName2、instName3等等。

步骤A4、从步骤A3输出的调用信息的文件中,找到与触发器有关的调用信息,分 成对电路中使用的触发器的分析。

具体实施方式五、本具体实施方式是具体实施方式三的所述的基于Perl的EDIF网表 级电路的自动测试方法进一步限定,步骤二中采用触发器修改模块(2)对电路中使用的 触发器进行可测性的修改,并使用Perl在EDIF环境中进行处理的具体方法为:

步骤B1、从步骤一中分析出的所使用的所有触发器信息中,获得触发的类型;

步骤B2、生成一个可测性EDIF元件库,该元件库中包含有步骤B1中分析出的所有 类型的触发器对应的可测性触发器;

步骤B3、将步骤B2获得的可测性库插入到原电路的EDIF元件中,插入的位置在原 电路有关触发器声明的库之后;

步骤B4、根据步骤一中分析出的所使用的所有触发器信息,生成触发器的修改信息, 修改信息的格式如下:

{cell}{cellchanges}[portchanges]

触发器cell的引用路径需要修改成cellchanges的引用路径,需要添加的测试端口在 portchanges中。

步骤B5、根据步骤B4获得的生成触发器的修改信息,对步骤B3的EDIF文件逐条 修改,修改触发的引用路径,增加测试端口的声明及测试端口的节点连接,得到触发器修 改完成的EDIF文件。

具体实施方式六、本具体实施方式是具体实施方式三的所述的基于Perl的EDIF网表 级电路的自动测试方法进一步限定,步骤三中使用Perl对已完成触发器可测性修改后的 EDIF电路进行Verilog封装,屏蔽EDIF细节,然后对电路中可测性改造的触发器进行扫 描链的设计的具体方法是:

步骤C1、使用Perl对已完成触发器可测性修改后的EDIF电路进行Verilog封装,以 Verilog的形式对外保留原电路的功能端口和新增加的测试端口;

步骤C2、根据预设的扫描链的连接方式对触发器进行连接。

具体实施方式七、本具体实施方式是具体实施方式三的所述的基于Perl的EDIF网表 级电路的自动测试方法进一步限定,步骤四中使用Perl给出最终的具有可测性的且符合 Verilog语法的电路,并验证修改正确后,使用Perl生成符合Tcl语法的自动测试文件的 具体方法是:

步骤D1、对步骤三中生成的已完成扫描链设计的电路的Verilog文件进行再一次的封 装,使用Verilog给出最后的电路形式,作为最终的可测性设计的输出文件;

步骤D2、根据电路的信息,生成一个测试文件,用于测试扫描链的连接是否正确;

步骤D3、针对特定的仿真器生成一个Tcl脚本,自动对可测性设计的输出文件进行 验证。

具体实施方式七、以下以具体参数说明本发明的基于Perl的EDIF网表级电路的自动 测试方法:

如下是一个EDIF网表级电路的示例,并没有什么实际的功能:

其中:A1这个EDIF网表有三个library,LIB1,LIB2,LIB3,用这三个库设计了一 个design A1。在LIB1中含有一个cell,名字为CELL1,CELL1中含有一个view,名为 PRIM。在LIB2中含有一个名为FD的cell,FD有一个名为PRIM的view,这个FD是一 种触发器。在LIB3中含有一个名为CELL2的cell,这个cell有一个名为netlist的view, 这个cell含有两个instance,其中一个是对LIB1中的CELL1的PRIM view的引用,另一 个是对LIB2中的FD的PRIM view的调用。以上是对这个例子的所使用的电路元件及结 构的说明。

现在对这个电路进行可测性设计:

{cell}{cellchanges}[portchanges]

步骤(1):使用Perl对这个电路的EDIF网表进行元件的使用及结构的分析。

Step1:读入这个EDIF文件

Step2:使用Perl提供的正则表达式按行检索,提取需要的信息,首先我们会提取 edif网表的名字A1,然后会提取library的LIB1,以及LIB1的CELL1及PRIM这个view, 以此类推,在提取instance的信息的时候,例如对于INST1,会得到它的引用路径,viewRef 的值PRIM,cellRef的值CELL1,libraryRef的值LIB1。如果libraryRef缺省则表示是同 一个library。

将获得如下的描述电路元件及结构的信息:

edifA1

library LIB1

cell CELL1

view PRIM

library LIB2

cell FD

view PRIM

library LIB3

cell CELL2

viewnetlist

instance INST1viewRef PRIM cellRef CELL1 libraryRef LIB1

instance INST2viewRef PRIM cellRef FD libraryRef LIB2

design A1cellRef CELL2libraryRef LIB3

Step3:对第一步中获得的信息进行分析,获得相互之间的调用信息,如下

{LIB1.CELL1.PRIM}{LIB3.CELL2.netlist}[INST1]

{LIB2.FD.PRIM}{LIB3.CELL2.netlist}[INST2]

Step4:找到这个例子中触发器FD的调用信息

{LIB2.FD.PRIM}{LIB3.CELL2.netlist}[INST2]

步骤(2):

Step1:从步骤(1)获得所使用的所有触发器信息中获得触发的类型;

Step2:生成一个可测性EDIF元件库,这个库中包含有Step1中分析出的所有类型的 触发器对应的可测性触发器;

这里针对FD类型的触发器,使用edif实现一个多路选择器结构的可测性触发器,命 名为FD_T,多出的端口为端口S和端口T,并作为一个cell放到自己设计的可测性库中, 例如库DFTFF。

Step3:将Step2的可测性库插入到原电路的EDIF元件中,插入的位置在原电路有关 触发器声明的库的后面

这里将上面那个设计完的可测性库放到LIB2那段代码的后面,及LIB3所在行的前 面。

Step4:根据权利要求2中的步骤(1)获得所使用的所有触发器信息,生成触发器的 修改信息,这里的修改信息为:

{LIB3.FD.PRIM}{DFTFF.FD_T.netlist}[S_INST2.INST2T_INST2.INST2Q_INST2.INST2]

Step5:根据Step4的修改信息,对Step3的EDIF文件逐条修改,修改触发的引用路 径,增加测试端口的声明及测试端口的节点连接,得到触发器修改完成的EDIF文件。

步骤(3):步骤(2)完成后使用Perl对已完成触发器可测性修改后的EDIF电路进行 Verilog封装,屏蔽EDIF细节,然后对电路中可测性改造的触发器进行扫描链的设计,使 用Perl辅助设计人员在Verilog环境中完成,算法如下:

Step1:对权利要求2中的步骤(2)所生成的EDIF进行Verilog封装,以Verilog的形 式对外保留原电路的功能端口和新增加的测试端口;

Step2:设计人给出扫描链的连接方式;

Step3:按照设计人员给出的扫描链连接方式对触发器进行连接;

步骤(4):生成最终的可测性电路文件,使用Perl给出最终的具有可测性的且符合 Verilog语法的电路,并验证修改结果是否正确,使用Perl生成符合Tcl语法的自动测试 文件,算法如下:

Step1:对权利要求2中的步骤(3)所生成的已完成扫描链设计的电路的Verilog文件进 行再一次的封装,使用Verilog给出最后的电路形式,作为最终的可测性设计的输出文件。

Step2:根据电路的信息,生成一个测试文件,用于测试扫描链的连接是否正确。

Step3:针对特定的仿真器生成一个Tcl脚本,自动对可测性设计的输出结果进行验 证。

本发明的特点:

1、对使用EDIF网表所描述电路的调用层次进行分析时所用算法及存储数据的格式;

2、对使用EDIF网表所描述电路中使用的触发器的分析算法及存储的数据格式及存 储的数据格式,可测性库(library)的设计和library的插入,不同触发的可测性设计结构;

3、分析电路中触发器被不同模块调用和实例化的情况的算法及存储格式;

4、对EDIF网表所描述电路中所有被使用的触发器进行可测性修改的算法;

5、使用Verilog语言对修改后的EDIF网表所描述电路进行封装,使其成为一个符合 Verilog表述的电路;

6、在Verilog环境中按照Verilog语法对电路的扫描链进行设计;

7、自动生成对修改后的电路进行测试的测试文件;

8、Tcl形式的电路自动测试文件的生成,自动添加测试向量并获取相应的测试响应。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号