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

文档序号:8487738阅读:265来源:国知局
基于Perl的EDIF网表级电路的自动可测性设计系统的自动可测性设计方法
【技术领域】
[0001] 本发明涉及一种EDIF网表级电路的自动可测性设计系统及自动可测性设计方 法。
【背景技术】
[0002] 在当今随着半导体技术的发展,集成电路芯片(1C)得到了广泛的应用,保障集成 电路芯片的可靠性成为一个重要问题。对1C进行测试的方法成为解决1C可靠性的主要途 径,但是具有复杂功能的1C的可测性低的问题严重制约了 1C测试的有效性。而对1C进行 可测性设计可以有效的改善电路的可控性和可观性,大大提高了芯片的可测性,使得1C测 试可以有效的进行。
[0003] 电路的可测性设计就是在不影响电路功能的前提下,对原电路的结构进行改造, 使电路内部原来不具有可控性和客观性的节点获得这些性质,便于测试。常用的方法是对 原电路中使用的触发器进行可测性改造,使其成为可测性触发器,然后将改造后的触发器 连接成一条或几条触发器链,称为扫描链,将扫描链的输入端和输出端作为电路的测试端 口,通过这些端口就可以控制并观测电路的内部节点。常用的可测性触发器是多路选择器 结构的可测性触发器,即在原触发器的输入端加入一个多路选择器,这样就可以控制触发 器的数据。
[0004] 在目前的电路设计过程中,电路设计往往是由不同的部门或公司分别完成其中的 一部分,同时在整个电路设计的过程中会涉及到多种EDA工具,这就涉及到数据交换的问 题。而EDIF网表是不同公司和不同EDA工具之间交换数据的一种标准格式。EDIF是电子 设计交换格式(Electronic Design Interchange Format)的英文缩写,它是一种不受版权 限制的数据格式,它提出和规定了电路设计有关的原理图、符号和物理布局、互连以及结构 信息。使用EDIF网表语言描述的电路,可以作为标准的交换格式在各个电路的设计环节进 行信息交换。
[0005] EDIF网表级电路是使用EDIF网表语言描述的电路,在电路的设计过程中,电路的 功能设计和可测性设计往往是分开的,电路功能设计的人员传递给电路可测性设计人员的 电路数据很多时候就是用EDIF网表描述的,这样的网表中主要描述电路中各个元件的使 用信息及互相之间的连接信息。通过分析电路的EDIF网表就可以获得电路必要信息,以对 电路进行可测性设计成为电路可测性设计的一种重要方式。
[0006] EDIF网表的存储格式是ASIC编码的文本格式,所以可以非常方便的使用Perl语 言对其进行分析和处理。Perl语言是一种高级、通用、直译式、动态的、功能强大的语言,其 最重要的特性是内部集成的正则表达式的功能,以及巨大的第三方代码库CPAN。其中正则 表达式的功能可以为我们非常好的处理文本,在这里可以用来非常方便高效的处理EDIF 网表。
[0007] 在触发器设计阶段,需要对电路中使用的触发器进行可测性修改,在实际的电路 中触发器的使用数量是相当庞大的,所以有必要使用工具对电路中使用的触发器进行自动 化的修改。这里我们可以使用Perl语言编写自动化修改的工具完成这个功能,代替费时费 力的人工手动修改。
[0008] 在扫描链设计阶段,需要对已经完成触发器修改的电路进行触发器的连接,将那 些修改完的具有可测性的触发器连接成一条或数条链。由于测试的需要,扫描链的设计常 常需要人工完成,并随时修改其连接方式。虽然EDIF网表非常通用,非常适合使用软件处 理,但是由于EDIF网表并不是常用的直接设计语言,作为电路设计人员,阅读和修改时并 不是很方便。但是在这个阶段,设计人员只需要知道需要进行连接的触发器的相关信息即 可。所以在这里可以在保证电路功能不变的前提下,使用常用的电路设计语言对进行触发 器修改后的EDIF网表电路进行包装,对外屏蔽内部信息并提供与EDIF相应的接口,以供触 发器扫描链设计。
[0009] 在电路设计领域,Verilog HDL(Verilog硬件描述语言)就是一种常用的设计语 言,可以作为封装EDIF网表电路的设计语言,将其包装成Verilog的形式,对外提供符合 Veri log语法的接口,以供可测性设计人员进一步便捷的设计。Veri log语言的存储格式也 是文本格式的,也可以使用Perl语言方便的完成封装这项工作,同时可以辅助扫描链设计 人员在Verilog环境中完成扫描链的设计工作。

【发明内容】

[0010] 本发明是为了适应对EDIF网表级电路的自动可测性设计的需求,从而提出一种 基于Perl的EDIF网表级电路的自动可测性设计系统及自动可测性设计方法。
[0011] 基于Perl的EDIF网表级电路的自动可测性设计系统,它包括电路源码解析模块 1、触发器修改模块2、扫描链设计模块3、可测性电路生成模块4、测试验证模块5 ;
[0012] 电路源码解析模块1用于对数字逻辑电路的EDIF网表级描述的分析,获得电路中 所有触发器使用的信息;
[0013] 触发器修改模块2包括可测性触发器生成模块21和触发器可测性修改模块22 ;
[0014] 触发器修改模块2用于根据电路源码解析模块提供的触发器信息,在电路的EDIF 网表描述的文件中用EDIF语言完成对所有触发器的可测性修改;
[0015] 扫描链设计模块3包括Verilog封装模块31和扫描链连接模块32 ;
[0016] Verilog封装模块31用于根据电路源码解析模块提供的触发器信息及触发器修 改模块提供的触发器修改后的电路EDIF网表,完成对EDIF网表描述电路的Verilog封装;
[0017] 扫描链连接模块32用于根据电路源码解析模块提供的触发器信息及触发器修改 模块提供的触发器修改后的电路EDIF网表,完成对EDIF网表描述电路用Verilog语言完 成电路的扫描链设计;
[0018] 可测性电路生成模块4用于根据扫描链设计模块生成的Verilog形式的电路完成 对电路的再次Verilog封装,获得最终的可测性设计后的电路;
[0019] 测试验证模块5用于根据电路源码解析模块提供的端口和触发器信息以及可测 性电路生成模块提供的已完成可测性设计的电路,生成测试文件并对可测性设计后的电路 进行验证。
[0020] 可测性电路生成模块4获得最终的可测性设计后的电路对外屏蔽所有电路内部 信息,仅提供符合常用硬件描述语言形式的接口。
[0021] 基于Perl的EDIF网表级电路的自动测试方法,它由以下步骤实现:
[0022] 步骤一、采用电路源码解析模块1对电路中使用的触发器进行分析,并使用Perl 在EDIF环境中进行处理;
[0023] 步骤二、采用触发器修改模块2对电路中使用的触发器进行可测性的修改,并使 用Perl在EDIF环境中进行处理;
[0024] 步骤三、使用Perl对已完成触发器可测性修改后的EDIF电路进行Verilog封装, 屏蔽EDIF细节,然后对电路中可测性改造的触发器进行扫描链的设计;
[0025] 步骤四、使用Perl给出最终的具有可测性的且符合Verilog语法的电路,并验证 修改正确后,使用Perl生成符合Tel语法的自动测试文件,进而实现EDIF网表级电路的自 动测试。
[0026] 步骤一中采用电路源码解析模块1对电路中使用的触发器进行分析,并使用Perl 在EDIF环境中进行处理的具体方法为:
[0027] 步骤A1、打开EDIF网表级电路文件;
[0028] 步骤A2、从EDIF网表级电路文件中分析出电路中所有的元件使用信息,以及电路 的调用信息;
[0029] 步骤A3、从步骤A2中获得的电路所有元件使用信息的文件中,分析出具体的 instance的调用情况,并将其保存成调用格式,以文件形式保存;
[0030] 步骤A4、从步骤A3输出的调用信息的文件中,找到与触发器有关的调用信息,分 成对电路中使用的触发器的分析。
[0031] 步骤二中采用触发器修改模块2对电路中使用的触发器进行可测性的修改,并使 用Perl在EDIF环境中进行处理的具体方法为:
[0032] 步骤B1、从步骤一中分析出的所使用的所有触发器信息中,获得触发的类型;
[0033] 步骤B2、生成一个可测性EDIF元件库,该元件库中包含有步骤B1中分析出的所有 类型的触发器对应的可测性触发器;
[0034] 步骤B3、将步骤B2获得的可测性库插入到原电路的EDIF元件中,插入的位置在原 电路有关触发器声明的库之后;
[0035] 步骤B4、根据步骤一中分析出的所使用的所有触发器信息,生成触发器的修改信 息;
[0036] 步骤B5、根据步骤B4获得的生成触发器的修改信息,对
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1