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

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

摘要

基于Perl的EDIF网表级电路的部分可测性设计系统及部分可测性设计方法,涉及数字逻辑电路可测性技术领域。为了提升电路可测性,降低可测性成本,减少由于电路可测性设计新增电路部分带来的硅片面积的消耗。系统包括预处理部分、可测性设计部分和验证部分,预处理部分用于完成对EDIF电路的转换,对具有层次设计的电路进行展开,获得便于后期处理的电路;可测性设计部分用于完成对电路的部分可测性设计过程;方法步骤:对电路进行分析和展开;对电路中使用的触发器进行分析;对电路中使用的被设计人员所选择的那部分触发器进行可测性的改造;对电路中进行可测性改造的那部分触发器进行扫描链的设计;验证修改结果。本发明方便电路的可测性设计和测试。

著录项

  • 公开/公告号CN103530479A

    专利类型发明专利

  • 公开/公告日2014-01-22

    原文格式PDF

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

    申请/专利号CN201310528762.4

  • 发明设计人 俞洋;刘旺;彭喜元;陈诚;

    申请日2013-10-31

  • 分类号G06F17/50;

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

  • 代理人杨立超

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

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-21

    授权

    授权

  • 2014-02-26

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20131031

    实质审查的生效

  • 2014-01-22

    公开

    公开

说明书

技术领域

本发明涉及一种数字逻辑电路部分可测性设计系统及方法,尤其是使用Perl语言辅 助对EDIF网表所描述的电路进行部分可测性设计,涉及数字逻辑电路可测性技术领域。

背景技术

集成电路芯片(IC)已经被普遍应用在各个领域,为社会的各行各业服务着。特别是 在一些高端行业,例如航天,军事以及一些涉及人生安全等对设备可靠性要求高的领域, 保证设备的可靠性是永恒的话题,而集成电路芯片作为设备的重要组成部分,其可靠性直 接影响着设备的可靠性。所以IC的可靠性问题得到广泛关注。目前解决芯片可靠性问题 的一个有效途径是对其进行测试,而测试过程是否充分,是由电路本身的可测性决定的, 所以通过一些手段提高改善可测性是必要的。常用的方法是对电路进行可测性设计。

在IC的设计领域,EDIF网表是用于传递设计结果的一种常用格式,其已经被IC设 计行业认可。传统的IC的可测性设计工作是和电路设计同时进行的,但是由于电路的规 模越来越大,社会分工的细化,电路的设计工作与可测性设计逐步分开,以使双方均可更 好的发挥自己的特长。将设计完的电路传递到可测性设计人员手里,EDIF网表就是一种 常用的格式,对使用EDIF网表描述的电路进行可测性设计就成为一个不可避免的问题。

EDIF网表是一种可以完整描述IC电路结构及物理信息的电路设计描述语言,其存储 格式是文本格式。由于电路的结构通常非常大,EDIF网表文件也将非常巨大,阅读和分 析起来相当费力,所以使用一种可以自动分析EDIF网表的工具来对其进行分析是必须的。 分析工具使用Perl语言编写是一种非常理想的选择,因为Perl具有强大的正则表达式, 可以便捷快速的处理任何文本类的东西。

电路的可测性设计过程一般是对电路中使用的触发器进行修改和替换,将其修改为就 有可观性和可控性的电路节点,同时将这些节点连接成扫描链的形式,引出到外部,以便 于我们观察电路内部节点信号。在实际过程中,对电路中所有的节点进行这样的修改是非 常不经济的,并且常常在一些电路的关键部分,电路的结构不允许再对其做任何改动,而 且有目的性的选择进行可测性修改的触发器,会在提升电路可测性的同时,大大降低可测 性成本,以及减少由于电路可测性设计新增电路部分带来的硅片面积的消耗。这就是电路 的部分可测性设计。现有技术中没有给出基于Perl的EDIF网表级电路的部分可测性设计 的技术方案。

发明内容

本发明的目的是提供基于Perl的EDIF网表级电路的部分可测性设计系统及部分可测 性设计方法,以提升电路可测性的同时,大大降低可测性成本,以及减少由于电路可测性 设计新增电路部分带来的硅片面积的消耗。

本发明为解决上述技术问题采取的技术方案是:

一种基于Perl的EDIF网表级电路的部分可测性设计系统,所述部分可测性设计系统 包括预处理部分、可测性设计部分和验证部分;预处理部分用于完成对EDIF电路的转换, 特别是对具有层次设计的电路进行展开,获得便于后期处理的电路;可测性设计部分用于 完成对电路的部分可测性设计过程,该部分还用于协助可测性设计人员自动完成复杂的可 测性设计工作;验证部分用于完成对设计完成后的电路进行验证;

其中:

预处理部分由电路展开模块和电路解析模块两部分构成;

电路展开模块用于将层次化的电路结构展开成由原语单元直接描述的结构;

电路解析模块用于对展开后的电路进行解析以获得展开后电路的详细结构信息;

可测性设计部分由触发器分析及选择模块、触发器设计模块、扫描链设计模块和可测 性电路生成模块四部分构成;

触发器分析及选择模块用于分析出电路中使用的触发器的详细信息,然后将这些信息 提供给可测性设计人员,由设计人员选择需要进行可测性修改的触发器,并将选择信息进 行保存以供后续步骤使用;

触发器设计模块用于根据上一步选择的待进行可测性修改的触发器进行修改,触发器 设计模块包含有可测性触发器生成模块和触发器可测性修改模块,可测性触发器生成模块 用于对不同类型的触发器生成相应的可测性触发器结构,触发器可测性修改模块用于根据 上一步生成的可测性触发器结构对展开后的原电路进行相应的修改;

扫描链设计模块用于根据上一步触发器设计模块输出的结果进行进一步的设计,首先 由Verilog封装模块对上一步的结果进行分析和Verilog语言描述封装,留出与EDIF语 言描述相同的接口,然后由扫描链连接模块按照设计人员的需求在Verilog环境中对扫描 链进行连接;

可测性电路生成模块对扫描链设计后的结构进行最后的包装,生成最终的可测性设计 完成后的电路文件;

验证部分由测试生成模块和测试验证模块构成,用于完成对可测性设计结果的正确 性进行验证;首先由测试生成模块对生成相应的测试文件,然后由测试验证模块对可测性 设计后的电路进行测试验证。

所述电路展开模块实现其功能的具体过程如下:

步骤1:找到顶层cell;

步骤2:找到顶层cell中使用的每个子cell;

步骤3:判断子cell是否直接由原语构成,若不是则执行步骤4,若直接由原语构成 则不做处理;

步骤4:对不是由原语构成的cell进行展开,分析此cell中使用的子cell,对原电 路中此cell使用的地方进行替换,替换成由子cell直接构成;

步骤5:判断所有子cell是否处理完毕,若是则退出,若不是则转到步骤2。

所述触发器分析及选择模块实现其功能的具体过程如下:

步骤1:分析出展开后电路中所有的触发器信息,包括触发器的类型和触发器的调用 名称;

步骤2:将分析后的结果提交给可测性设计人员,由可测性设计人员选择需要进行可 测性设计的触发器并指定可测性设计触发器的结构;

步骤3:根据可测性设计人员的要求,自动生成相应的修改信息表;

步骤4:根据修改信息表完成对触发器的可测性修改工作。

一种基于Perl的EDIF网表级电路的部分可测性设计方法,所述方法的具体实现过程 为:

步骤一、对电路进行分析和展开:使用Perl在EDIF环境中进行处理,将层次结构的 电路完全展开成使用最底层原语直接构成的描述;

第二步对电路中使用的触发器进行分析:使用Perl在EDIF环境中进行处理,提供所 有被使用的触发器,供设计人员选择;

第三步对电路中使用的被设计人员所选择的那部分触发器进行可测性的改造,使用 Perl在EDIF环境中进行处理,处理完成后进行verilog封装,屏蔽EDIF细节;

第四步对电路中进行可测性改造的那部分触发器进行扫描链的设计,使用Perl在 verilog环境中进行处理;

第五步验证修改结果是否正确,使用Perl生成符合tcl语法的自动测试文件。

本发明的有益效果是:

使用Perl语言完成对EDIF网表级电路的自动分析,取代费时费力的人工分析,同时 辅助可测性设计人员完成对待可测性设计的电路的相关工作,包括对指定触发器进行可测 性替换,对扫描链进行连接。本发明取代了以往人工可测性设计环节繁杂的电路描述文本 替换和修改工作,加快了可测性设计过程,节约了时间,提高了效率,并同时由于工作的 简单化使得可测性设计工作的准确性和可靠性得到了很大程度上的提高。

本发明对使用EDIF网表所描述的电路进行部分可测性设计,适用于对由synplify 综合生成的符合xilinx公司EDIF网表规范的电路描述进行可测性设计的需求。本发明提 出的部分可测性设计在提升电路可测性的同时,大大降低可测性成本,同时减少由于电路 可测性设计新增电路部分带来的硅片面积的消耗。本发明是一个可以用于辅助可测性设计 的自动化工具,能方便电路的可测性设计和测试。

附图说明

图1是本发明的基于Perl的EDIF网表级电路的部分可测性设计系统原理框图。

具体实施方式

具体实施方式一:如图1所示,本实施方式所述的基于Perl的EDIF网表级电路的部 分可测性设计系包括预处理部分、可测性设计部分和验证部分,预处理部分完成对EDIF 电路的转换,特别是对具有层次设计的电路进行展开,获得便于后期处理的电路;可测性 设计部分完成对电路的可测性设计过程,该部分可以协助可测性设计人员自动完成复杂的 可测性设计工作;验证部分完成对设计完成后的电路进行验证,以保证设计的正确性;其 中:

预处理部分由电路展开模块和电路解析模块两部分构成,电路展开模块将层次化的电 路结构展开成由原语单元直接描述的结构;电路解析模块对展开后的电路进行解析以获 得展开后电路的详细结构信息。

可测性设计部分由触发器分析及选择模块、触发器设计模块、扫描链设计模块及可测 性电路生成模块四部分构成,触发器分析及选择模块可以分析出电路中使用的触发器的详 细信息,然后将这些信息提供给可测性设计人员,由设计人员选择需要进行可测性修改的 触发器,并将选择信息进行保存以供后续步骤使用;触发器设计模块根据上一步选择的待 进行可测性修改的触发器进行修改,这一步骤有两个小步,可测性触发器生成模块和触发 器可测性修改模块,可测性触发器生成模块对不同类型的触发器生成相应的可测性触发器 结构,触发器可测性修改模块根据上一步生成的可测性触发器结构对展开后的原电路进行 相应的修改;扫描链设计模块根据上一步触发器设计模块输出的结果进行进一步的设计, 首先由Verilog封装模块对上一步的结果进行分析和Verilog语言描述封装,只留出与 EDIF语言描述相同的接口,目的是为了便于设计人员进行手动的修改扫描链的设计,因 为扫描链的设计多变需要经常修改,而且在EDIF文件中修改特别麻烦,而在Verilog中 编写则比较方便,此后由扫描链连接模块按照设计人员的需求在Verilog环境中对扫描链 进行连接;可测性电路生成模块对扫描链设计后的结构进行最后的包装,生成最终的可测 性设计完成后的电路文件,此电路文件为Verilog的声明形式,只是对电路的原端口和测 试端口进行了声明,以供使用,其他的内容作为黑盒。

验证部分由测试生成模块和测试验证模块构成,以完成对可测性设计结果的正确性进 行验证,首先由测试生成模块对生成相应的测试文件,然后由测试验证模块对可测性设计 后的电路进行测试验证。

所述预处理部分由电路展开模块和电路解析模块两部分构成,分别实现将层次化的电 路展开成由原语单元直接描述的结构及对展开后的电路进行解析以获得展开后的电路详 细结构;电路展开模块的具体实现过程如下:

Step1:找到顶层cell;

Step2:找到顶层cell中使用的每个子cell;

Step3:判断子cell是否直接由原语构成,若不是,则执行step4,若直接由原语构 成则不做处理;

Step4:对不是由原语构成的cell进行展开,分析此cell中使用的子cell,对原电 路中此cell使用的地方进行替换,替换成由子cell直接构成;

Step5:判断所有子cell是否处理完毕,若是则退出,若不是则转到步骤2。

所述可测性设计部分由触发器分析及选择模块、触发器设计模块、扫描链设计模块及 可测性电路生成模块四部分构成,其中触发器分析及选择模块具体实现过程如下:

Step1:分析出展开后电路中所有的触发器信息,包括触发器的类型和触发器的调用 名称;

Step2:将分析后的结果提交给可测性设计人员,由可测性设计人员选择需要进行可 测性设计的触发器并指定可测性设计触发器的结构;

Step3:根据可测性设计人员的要求,自动生成相应的修改信息表;

Step4:根据修改信息表完成对触发器的可测性设计工作。

具体实施方式二:本实施方式所述的一种基于Perl的EDIF网表级电路的部分可测性 设计方法的具体实现过程为:

步骤一、对电路进行分析和展开,使用Perl在EDIF环境中进行处理,将层次结构的 电路完全展开成使用最底层原语直接构成的描述;

第二步对电路中使用的触发器进行分析:使用Perl在EDIF环境中进行处理,提供所 有被使用的触发器,供设计人员选择;

第三步对电路中使用的被设计人员所选择的那部分触发器进行可测性的改造,使用 Perl在EDIF环境中进行处理,处理完成后进行verilog封装,屏蔽EDIF细节,便于后 期处理及供不了解EDIF语法的人进行使用;

第四步对电路中进行可测性改造的那部分触发器进行扫描链的设计,使用Perl在 verilog环境中进行处理;

第五步验证修改结果是否正确,使用Perl生成符合tcl语法的自动测试文件。

本实施方式中的步骤一由预处理部分模块完成,步骤二~四由可测性设计部分完成, 步骤五由验证部分完成。

具体实施过程:

以一个例子说明,描述形式如下:

这个例子只是用来说明算法的实现过程。

在这个例子中,LIB1库和LIB2库都是原语库,其中的CELL1,CELL2及FD都是原语, FD是触发器。在LIB3中,CELL3包含3个instance,INST1是调用的是CELL1,INST2 和INST3都是调用的FD;CELL4中的INST4调用的是CELL2,INST5使用的是CELL3。由 此可以看出在这个例子中只有CELL4不是由原语直接构成的,需要展开。

展开的过程如下:

首先找到顶层模块,有design语句可以找到顶层模块A1调用的是LIB3中的CELL4, 所以CELL4也是顶层模块,需要进行下一步分析。

分析发现CELL4中有两个子cell,即INST4和INST5,INST4调用的CELL2是原语, INST5调用的CELL3不是直接由原语构成,那么需要将CELL3在CELL4中展开。

展开的过程就是将子cell中的内容复制到调用的cell中,并做一些相应的修改,特 别是在展开的过程中需保证instance的实例名和net的节点名不重复,因此将需展开的 子cell在调用中的实例名作为所有名字的前缀。

首先处理的是CELL3的的调用语句,即将CELL4中

(instance INST5(viewRef netlist(cellRef CELL3)))

替换成CELL3中的子cell调用语句,并做名称处理,替换之后的结果为

然后处理net,先处理CELL3的外部端口,即CLK,D1,Q1,将CELL3中与外部端口 相连的那些节点中的其他端口放到CELL4中的使用CELL3的外部端口的节点中,以使其直 接相连。例如在CELL3的CLK外部节点中,有INST2的C端口和INST3的C端口与其相连, 将这两个端口放到CELL4中的与CELL3的外部端口CLK相连的节点中,即为CELL4的CLK 节点中,并做名称处理,处理之后的结果为CELL4中的CLK节点变为

同理可出CELL3的D1及Q1节点,处理之后的结果为CELL4中的O1_D1节点变为

CELL4中的Q1_Q2节点变为

这样就完成中INST5的展开工作,接下来检查CELL4中调用的所有的子cell,发现 都是由原语构成,完成所有的替换工作。若不是则按照上述步骤对不是原语的cell进行 展开。

下面对展开后的电路进行触发器的处理,发现在电路中使用的触发器种类有FD一种, 使用的个数为两个,使用的地方为CELL4中,名称分别为INST5INST2,INST5_INST3。 将这些触发器的信息提交给可测性设计人员,设计人员选择需要进行可测性设计的触发 器;例如选择INST5_INST2做可测性设计,INST5_INST3不做处理,并指定可测性触发器 的结构为FD_T这样的部分可测性设计的决策。接下来,辅助设计工具按照设计人员的选 择及设计人员提供的可测性触发的结构生成修改信息表,然后根据修改信息表对CELL4 进行修改,将使用INST5_INST2的地方替换成设计人员制定的可测性触发器FD_T,并做 相应的端口处理,留出测试端口。

最后由测试验证模块完成可测性修改之后的功能验证。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号