本站文件搜索 :输入关键字,查找本站您所需要的文件! 本网站已经开通手机终端,手机访问http://www.dnjqxx.com 转至对应的WebApp域名。
当前位置:首页 > 电脑设计 > 电脑设计技巧 > 详细内容
IP软核的测试技术研究
发布时间:2015-2-12  阅读次数:3341  字体大小: 【】 【】【

IP软核的测试技术研究

 

摘  要:随着超大规模集成电路技术的不断发展,集成电路的集成度不断增加,片上系统(SOC)的规模越来越大,片上系统的设计就变得越来越复杂。开发IP核成为soc的重要设计手段。同时,IP核的测试也对科研人员提出了新的挑战。本文重点描述了IP的测试技术,证明了文献[1]中给出的伪穷举法。并以可编程8255并行I/O接口芯片为例说明了使用伪穷举法进行了IP核校验的方法。


关键词:IP软核;VHDL;IP核测试;8255;伪穷举法




一、引言


随着超大规模集成电路(VLSI)工艺的进展,集成电路的集成度不断增加,片上系统(SOC)的规模也越来越大,为了加快产品的研发进度,基于芯核的设计已成为EDA发展的必然趋势。然而,随着系统复杂度的提高,如何提高IP的可复用性,并且进行有效的测试成为设计人员必须面对的问题。  


IP是知识产权模块的简称,通常分为三类:即硬核、软核和固核。硬核已经完成了全部的前端和后端设计,制造工艺也已经确定,逻辑电路、布局和工艺不能更改。软核是指包括逻辑描述(RTL和门级硬件描述语言代码)、网表和不能物理实现的用于测试的文档。固核是一种介于软核和硬核之间的IP。固核既不是独立的,也不是固定的,它可以根据用户的要求进行修改。


随着EDA技术的发展,设计人员已经能写出越来越复杂的IP核,但是目前对IP核的验证往往停留在简单的波形防真上,缺乏一个完善的测试方法体系。在对IP核进行测试的过程中, 最为重要的步骤是写出一个有效的测试集。 检测硬核或者固核的时候,因为核的电路逻辑结构和版图都是知道的,所以可以使用EDA工具产生逻辑层面上的测试集,但是软核一般是使用硬件描述语言描述的,目前EDA工具还不能自动生成功能层面上的测试集。穷举法能有效的发现功能上面的设计缺陷,但是穷举法的计算量太大,很难应用到复杂IP核的测试中。“伪穷举法”最早是用在逻辑层面上的有效测试方法,下文中介绍伪穷举法在功能层面上的应用。


1、IP软核的伪穷举测试法


作为一个商用IP核,必须对其进行系统的测试。穷举法有简单且功能强大的特点,但是对于有n个输入的电路系统可能有2n种可能的输入组合,如果要使用穷举法对复杂IP核进行测试是不可能的。伪穷举法的思路是将输入分成功能子块,对每个功能子块的输入包括两部分:外界的输入和其他子块的输入。将这两种输入看作功能子块的输入,使用穷举法进行测试,对其他的子块的输入取常数(一般是取0)。下面给出伪穷举法的证明,作为对文献[1]的补充。


定理: 当一个电路被切分成若干功能子块, 并且子块间在一种输入方式下,只存在单向的连接,那么用伪穷举法可以测试出所有的错误.


证明:使用归纳法证明:


当电路被分成一块,那么块与块间的连接是0,这个时候伪穷举法就是穷举法,可以测试出所有的错误。


a 当电路被分成两块,并且块与块间的连接为0的时候,这个时候对两个子块分别进行穷举法测试,可以发现子块所有的错误。并且因为子块之间没有联系,所以不存在连接错误,这样伪穷举法能够发现整个电路所有的错误。





b 当块与块间的连接为c的时候,不妨假设分成的两块是A和B,并且连接c是从A输出到B。那么对A使用穷举法可以测试出A所有的错误。对于B,他的测试输入是B的外围输入Bi和c。测试向量记为B(c, Bi)。对B使用穷举法也能检测出B所有的错误。


下面证明能够测试出所有的连接错误。我们使用反证法,假设有且仅有连接错误α不能被发现, 也就是说对于A和B都分别进行了穷举测试,并且没有错误。但是对于整个电路,存在输入(Ai, Bi)会产生错误。那么,根据伪穷举法的定义,对于功能子块A,输入Ai产生的输出(Aoi, c)是正确的。对与B,输入(c, Bi)输出也是正确的,那么输入(Ai, Bi)也同样是正确的,这样也就是说α不存在,同假设矛盾。


所以分成两块可以检测出所有的错误。


由归纳法,分成任意块都能检测出系统的错误。


证毕。


为了降低测试的数目,测试子块的划分应该遵循如下准则:


1、对于子块i,测试的输入为np + nc其中np是子块i原来就有的输入,nc是其他与i相关的模块产生的测试输入。因为nc要作耦合部分会被反覆测试。所以必须减少nc从而减少测试总的测试数目。同时减少nc也能减少系统的复杂程度,在手工测试中减少问题的发生。


2、不能将子块分得太细。因为分得细虽然可以减少np,但是有可能增加nc。


实际上,对IP软核进行测试,子块必须根据硬件描述语言(HDL),所以在使用HDL进行描述的时候,必须减少模块之间的耦合,从而方便使用伪穷举法进行测试。


如果块与块之间没有联系的话,还可以进行并行测试,减少测试的总次数。比如8位串行加法器,可以把每个一位加法器Fi作为一个功能子块。当奇数位的输入全部是0,那么偶数位的进位就被奇数位屏蔽掉,这样偶数位之间就没有联系。所以可以分别对奇数位和偶数位进行并行测试。


下面结合笔者设计的8255的IP核介绍一下伪穷举测试集方法的应用。


2、8255并行通信芯片


8255并行通信芯片IP软核是配合Intel位处理器而设计的通用可编程I/O接口器件,它能把外围设备连到微型计算机总线上。它由由数据总线缓冲器、读写控制逻辑、A组和B组两组控制电路、数据端口等组成。图1为8255的内部结构框图和引脚图


           


图1  8255的内部结构及引脚


8255共有三种操作模式:基本的输入/输出(方式0)、应答式输入/输出(方式1)和应答式双向输入/输出(方式2)。不同的工作方式有不同的功能及特点,如表1所示。


表1  8255三个数据口


工作方式

A

B

C

0

基本输入输出

输出锁存

输入三态

基本输入输出

输出锁存

输入三态

基本输入输出

输出锁存

输入三态

1

应答式输入输出

输入输出均锁存

应答式输入输出

输入输出均锁存

作为A口和B口的控制位及状态位

2

应答式双向输入输出

输入输出均锁存

方式0或方式1

作为A口的控制或基本输入/输出

2  8255端口及选择寄存器的控制信号

A1

A2

操作

0

0

0

1

0

A口→数据总线

0

1

0

1

0

B口→数据总线

1

0

0

1

0

C口→数据总线

0

0

1

0

0

数据总线→A

0

1

1

0

0

数据总线→B

1

0

1

0

0

数据总线→C

1

1

1

0

0

数据总线→控制寄存器

×

×

×

×

1

数据总线为三态

1

1

0

1

0

非法条件

×

×

1

1

0

数据总线为三态


8255的控制信号有:


(片选信号):芯片选中信号,低电平有效,允许8255与CPU交换信息。


(读信号):低电平有效。此时允许CPU从8255端口中读取据或外设状态信息。


(写信号):低电平有效。此时允许CPU将数据、控制字写入8255中。


A0和A1(端口选择信号):一般与地址线A0、A1相连。他们与 、 信号相配合用来选择端口及内部控制寄存器,并控制信号传送的方向。


3、伪穷举法测试举例


在这个系统中,根据VHDL描述,输入被分成5个子块,分别是:控制信号模块、A口模块、B口模块、C口模块和数据口子块,对于每个子块nc=0。他们的测试向量记为为 Fi, Ai, Bi, Ci , Di。向量中每个元素∈{0,1}。


对于Fi来说,它包含A1、 A2、 、 和 5个输入,记为Fi(A1,A2, , , ),输出为控制信号输出,测试的目标方程的映射关系ζ(Fi, Ai, Bi, Ci , Di)参见表2。在测试时,穷举出Fi向量空间所有的值,做为输入。对于每个输入Fi,检查是否满足ζ(Fi, Ai, Bi, Ci , Di)。


同理对于Ai的测试,他的输入包括控制输入和数据输入, 然后所有输入进行穷举,检查Di的数据输出。Bi, Ci , Di依次类推进行测试。


这样,在保证测试集的完备的情况下,测试的复杂度由Ω(240)下降到Ω(28),大幅度的减少测试数目,也避免了由于测试数目过大而导致的重复测试和测试遗漏的问题。


二、结束语


IP软核由VHDL硬件描述语言写成,可读性好,容易按用户条件修改,但是EDA软件无法提供系统的测试方法。文中证明了伪穷举法的正确性。并且根据伪穷举法测试分块的原则,强调了在IP软核设计的过程中就应该减少模块间的耦合,增强可测试性。使用伪穷举法可以有效地进行IP软核的测试。尤其是使用了并行测试后,可以大大提高测试的效率。伪穷举法可以应用于测试IP核,尤其是HDL描述的软核。


参考文献


[1] R.Tang, P. E. Si, W. k. Huang and F. Lombardi. “Testing IP Core with Pseudo Exhaustive Test Sets”. ASIC, 2001. Proceedings. 4th International Conference on , 2001 Page(s): 740 -743


[2] I.Ghosh and S.Dey , “ A Fast and Low Cost Testing Technique for Core-Based Sytem-on-Chip,” IEEE Trans. On CAD of ICAS, Vol.19,2000,pp.863-877


[3] 曾繁泰.VHDL程序设计.北京:清华大学出版社,2001,278~284


[4] 徐惠民.数字逻辑设计与VHDL描述.北京:机械工业出版社,2002,1~10



我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[1]
    暂无已审核评论!


电脑技巧学习网站版权所有  地址:广州市海珠区
       本站部分有关软件和系统的内容和观点来自网络,不代表本站观点!特此公告!电脑技巧学习论坛,真诚欢迎热爱探讨电脑技巧的朋友加入电脑技巧学习论坛,将你的观点、见解和作品分享给网友们!电脑技巧网,提供计算机知识,电脑使用技巧,电脑基础知识,让电脑爱好者可以快速学到电脑知识!
 注意事项:电脑不要24小时通电,偶尔会遭遇雷雨天气。会损坏电脑。 


站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

 copyright 2000-2109  ( dnjqxx.com ) All rights reserved   粤ICP备18150927号
广告联系|版权声明|下载帮助|软件发布| 网站地图|

企业简介 |总裁致辞|成长历程|联系我们|组织机构|企业文化

网站统计