CN100576361C - 一种fpga内嵌双端口存储器的测试方法 - Google Patents
一种fpga内嵌双端口存储器的测试方法 Download PDFInfo
- Publication number
- CN100576361C CN100576361C CN200810112419A CN200810112419A CN100576361C CN 100576361 C CN100576361 C CN 100576361C CN 200810112419 A CN200810112419 A CN 200810112419A CN 200810112419 A CN200810112419 A CN 200810112419A CN 100576361 C CN100576361 C CN 100576361C
- Authority
- CN
- China
- Prior art keywords
- port
- storer
- address
- begin
- bank bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种FPGA内嵌双端口存储器的测试方法,将FPGA中的内嵌双端口存储器全部配置为可选工作模式中的同一种,将同一类端口的输入并行连接到一起作为公共输入端;测试时,先采用March C算法轮流测试两类端口,然后对两类端口同时施加组合向量,进行两端口的关联性故障测试,判断存储器输出的正确性。本发明有效地完成了FPGA内嵌双端口存储器的测试,测试覆盖率达到100%,且合理利用了FPGA中空闲的资源作为检验逻辑,简化了调试过程,减少了输入输出端口,大大提高了测试效率。
Description
技术领域
本发明涉及一种存储器的测试方法,特别是一种FPGA内嵌双端口存储器的测试方法。
背景技术
FPGA内嵌双端口存储器是一种特殊的双端口存储器,它的特点在于存储器可被配置为多种工作模式,不同的工作模式下存储器具有不同的数据宽度和存储深度。对FPGA内嵌双端口存储器测试的关键是确保在各个工作模式下的各种类型的故障的测试覆盖率达到100%。
近年来,FPGA中的内嵌双端口存储器在芯片中所占面积越来越大,在实际应用中的使用频率也越来越高,因此对内嵌双端口存储器的全面测试成为了FPGA测试技术中特别重要的环节。国外对双端口存储器的测试进行了研究,提出了很多测试方法,这些方法大都以March C算法为基础产生测试向量,将此向量施加到规模固定的双端口存储器中,并对双端口存储器的输出结果进行检验。这些方法一般都要将测试程序运行两次,每次只测试一个端口,但这样的测试方法与双端口存储器的实际工作模式有差别,会降低某种耦合故障的测试覆盖率。国内在此领域的研究还处于起步阶段,尚无一种成熟的测试方法。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种具有高测试覆盖率的FPGA内嵌双端口存储器的测试方法。
本发明的技术解决方案是:一种FPGA内嵌双端口存储器的测试方法,其特征在于步骤如下:
(1)对FPGA内嵌的各双端口存储器的两个存储端口进行编号,分别为端口A和端口B;
(2)将各内嵌双端口存储器端口A的输入地址端A、输入数据端A、端口使能端A、读写使能端A、复位控制端A、时钟输入端A分别并联在一起作为公共输入端A,将各内嵌双端口存储器端口A的输出端按位分别并联在一起作为并行输出端A;将各内嵌双端口存储器端口B的输入地址端B、输入数据端B、端口使能端B、读写使能端B、复位控制端B、时钟输入端B分别并联在一起作为公共输入端B,将各内嵌双端口存储器端口B的输出端按位分别并联在一起作为并行输出端B;
(3)将各内嵌双端口存储器配置为相同的工作模式;
(4)将各内嵌双端口存储器的端口A设为有效,端口B设为无效,通过公共输入端A对并联的各存储器施加March C算法测试向量进行故障测试;
(5)将各内嵌双端口存储器的端口B设为有效,端口A设为无效,通过公共输入端B对并联的各存储器施加March C算法测试向量进行故障测试;
(6)将各内嵌双端口存储器的端口A和端口B同时设为有效,通过公共输入端A和公共输入端B对并联的各存储器同时施加组合向量进行两端口的关联性故障测试;
(7)将各内嵌双端口存储器设置为相同的其它工作模式,重复步骤(4)~(6)进行测试。
所述步骤(4)中通过公共输入端A对并联的各存储器施加March C算法测试向量进行故障测试的方法为:
(1)各内嵌双端口存储器通过端口使能端A激活端口A,通过端口使能端B关闭端口B;
(2)按任意顺序给存储器的每个地址单元的每个存储位写入0;然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(3)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入1,然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(4)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(5)按降序从存储器的末地址开始给每个地址单元的每个存储位写入1,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(6)按降序从存储器的末地址开始给每个地址单元的每个存储位写入0,然后按任意顺序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
所述步骤(5)中通过公共输入端B对并联的各存储器施加March C算法测试向量进行故障测试的方法为:
(1)各内嵌双端口存储器通过端口使能端B激活端口B,通过端口使能端A关闭端口A;
(2)按任意顺序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(3)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入1,然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(4)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(5)按降序从存储器的末地址开始给每个地址单元的每个存储位写入1,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(6)按任意序从存储器的末地址开始给每个地址单元的每个存储位写入0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
所述步骤(6)中通过公共输入端A和公共输入端B对并联的各存储器同时施加组合向量进行关联性故障测试的方法为:
(1)各内嵌双端口存储器通过端口使能端A激活端口A,通过端口使能端B激活端口B;
(2)通过端口A按升序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后通过端口A按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,通过端口B按升序从存储器的第2位地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(3)通过端口A按升序从存储器的起始地址开始给每个地址单元的每个存储位写入1,然后通过端口A按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,通过端口B按升序从存储器的第2位地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(4)通过端口A按升序从存储器的起始地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入0,通过端口B按升序从存储器存储深度一半的位置开始到末地址结束给每个地址单元的每个存储位写入0,然后通过端口A按升序从存储器存储深度一半的位置开始到末地址结束读出每个地址单元的每个存储位的存储值,通过端口B按升序从存储器的起始地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(5)通过端口A按升序从存储器存储深度一半的位置开始到末地址结束给每个地址单元的每个存储位写入1,通过端口B按升序从存储器的起始地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入1,然后通过端口A按升序从存储器的起始地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值后再给该地址单元的每个存储位写入0,通过端口B按升序从存储器存储深度一半的位置开始到末地址结束读出每个地址单元的每个存储位的存储值后再给该地址单元的每个存储位写入0,各存储器的读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(6)通过端口A按降序从存储器的末地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入1,通过端口B按降序从存储器存储深度一半的位置开始到起始地址结束给每个地址单元的每个存储位写入1,然后通过端口A按降序从存储器存储深度一半的位置开始到起始地址结束读出每个地址单元的每个存储位的存储值,通过端口B按降序从存储器的末地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(7)通过端口A按降序从存储器的末地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入0,通过端口B按降序从存储器存储深度一半的位置开始到起始地址结束给每个地址单元的每个存储位写入0,然后通过端口A按降序从存储器的末地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,通过端口B按降序从存储器存储深度一半的位置开始到起始地址结束读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
所述端口A或端口B的输入地址宽度、输入数据宽度、输出数据宽度、数据深度均由存储器的工作模式确定。
本发明与现有技术相比的优点在于:
(1)在对单个端口进行March C算法测试向量进行故障测试的基础上,增加了一组组合向量,进行两端口的关联性故障测试,提高了测试的覆盖率;
(2)可利用FPGA中空闲的可配置逻辑资源作为检验逻辑,由内部对存储器阵列的输出结果做出检验,大大节省了FPGA的输入输出端口,有利于测试系统的集成,从而能够降低测试成本。
附图说明
图1为FPGA内嵌单个双端口存储器的端口示意图;
图2为采用本发明方法对FPGA内嵌双端口存储器进行测试的级联结构示意图;
图3为本发明检验逻辑的原理图。
具体实施方式
如图1所示,为FPGA内嵌单个双端口存储器的端口示意图。本发明实施例中将两个端口分别记为端口A201和端口B202,图1的上半部分是端口A201,下半部分是端口B202。端口A201的输入端包括地址输入端address_A203、数据输入端datain_A204、端口使能信号RAM_EN_A205、读写控制信号WEN_A206、复位信号RST_A207、时钟信号CLK_A208,端口A201的输出端为DOUT_A215;端口B202的输入端包括地址输入端address_B209、数据输入端datain_B210、端口使能信号RAM_EN_B211、读写控制信号WEN_B212、复位信号RST_B213、时钟信号CLK_B214,端口B202的输出端为DOUT_B216。
本发明中,应将FPGA中的内嵌双端口存储器全部配置为可选工作模式中的同一种。如图2所示,将双端口存储器阵列中端口A201的各类输入分别并行连接到一起作为公共输入端301,端口B202的各类输入分别并行连接到一起作为公共输入端302;存储器阵列中每个端口A201的输出305全部并行连接到检验逻辑303上,每个端口B202的输出306全部并行连接到检验逻辑304上。图3中的401、402、403是检验逻辑303或304具体实现方式的示意图,由401、402、403组成的检验逻辑303或304通过FPGA中空闲的查找表配置而成,阵列中每个存储器的端口A201或者端口B202的输出信号都分别接入检验逻辑303或304中的与门401、或门402、异或门403中;测试时,当进行读1操作时,存储器输出全为1,输入到与门401进行与操作后,与门401输出结果应为1,否则表明某个存储单元出现固定0故障,当进行读0操作时,存储器输出全为0,输入到或门402进行或操作后,或门402输出结果应为0,否则表明某个存储单元出现固定1故障,由于每个存储单元写入的值都一样,所以异或门403的结果应保持为0,否则表明某个存储单元出现故障。
实施例
对具有5种读、写工作模式的内嵌双端口存储器阵列的测试,具体步骤如下:
第一次配置和测试
(1)将每个内嵌双端口存储器配置为256×16的工作模式,数据深度为256,数据宽度为16bit。
(2)将存储器中同一类端口的各输入端分别并联在一起作为公共输入端;检验逻辑由与门401、或门402、异或门403组成,同一类端口的输出数据同时并行输入到与门401、或门402、异或门403上。
(3)通过端口使能端A205激活端口A201,通过端口使能端B211关闭端口B202;加测试向量时,第一步按升序从首地址开始(也可按任意序,即升序或降序,起始地址任选)给每个地址单元写入16位0,经过256个时钟周期后完成写0操作;第二步按升序从起始地址开始每个时钟周期读出一个地址单元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;第三步按升序从起始地址开始每个时钟周期给相应地址单元写入16位1,经过256个时钟周期完成写1操作,然后按升序从起始地址开始每个时钟周期读出一个地址单元的存储值(16位1)并输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过256个时钟周期完成读1以及结果检验;第四步按升序从起始地址开始每个时钟周期给相应地址单元写入16位0,经过256个时钟周期完成写0操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;第五步按降序从终止地址开始每个时钟周期给相应地址单元写入16位1,经过256个时钟周期完成写1操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值(16位1)并输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过256个时钟周期完成读1以及结果检验;第六步按降序从终止地址开始每个时钟周期给相应地址单元写入16位0,经过256个时钟周期完成写0操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;
(4)通过端口使能端B211激活端口B202,通过端口使能端A205关闭端口A201;加测试向量时,第一步按降序(也可按任意序,即升序或降序,起始地址任选)给每个地址单元写入16位0,经过256个时钟周期后完成写0操作;第二步按升序从起始地址开始每个时钟周期读出一个地址单元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;第三步按升序从起始地址开始每个时钟周期给相应地址单元写入16位1,经过256个时钟周期完成写1操作,然后按升序从起始地址开始每个时钟周期读出一个地址单元的存储值(16位1)并输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过256个时钟周期完成读1以及结果检验;第四步按升序从起始地址开始每个时钟周期给相应地址单元写入16位0,经过256个时钟周期完成写0操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;第五步按降序从终止地址开始每个时钟周期给相应地址单元写入16位1,经过256个时钟周期完成写1操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值(16位1)并输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过256个时钟周期完成读1以及结果检验;第六步按降序从终止地址开始每个时钟周期给相应地址单元写入16位0,经过256个时钟周期完成写0操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;
(5)通过端口使能端A205、B211同时激活端口A201和端口B202;加测试向量时,第一步通过端口A201按升序从起始地址开始每个时钟周期给一个地址单元写入16位0,经过256个时钟周期完成写0操作,然后通过端口A201按升序从起始地址开始每个时钟周期读出一个地址单元的存储值(16位0),通过端口B202按升序从第2位地址开始每个时钟周期读出一个地址单元的存储值(16位0)并在第256个时钟周期返回起始地址,端口A201和端口B202的读出值都输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过256个时钟周期完成读0以及结果检验操作;第二步,通过端口A201按升序从起始地址开始每个时钟周期给一个地址单元写入16位1,经过256个时钟周期完成写1操作,然后通过端口A201按升序从起始地址开始每个时钟周期读出一个地址单元的存储值(16位1),通过端口B202按升序从第2位地址开始每个时钟周期读出每个地址单元的存储值(16位1)并在第256个时钟周期返回起始地址,端口A201和端口B202的读出值都输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过256个时钟周期完成读1以及结果检验;第三步通过端口A201按升序从起始地址开始到第128位地址结束每个时钟周期给一个地址单元写入16位0,通过端口B202按升序从第129位地址开始到最后一位地址结束每个时钟周期给一个地址单元写入16位0,经过128个时钟周期完成写0操作,然后通过端口A201按升序从第129位地址开始到最后一位地址结束每个时钟周期读出一个地址单元的存储值(16位0),通过端口B202按升序从起始地址开始到第128位地址结束每个时钟周期读出一个地址单元的存储值(16位0),端口A201和端口B202的读出值都输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过128个时钟周期完成读0以及结果检验操作;第四步通过端口A201按升序从第129位地址开始到最后一位地址结束每个时钟周期给一个地址单元写入16位1,通过端口B202按升序从起始地址开始到第128位地址结束每个时钟周期给一个地址单元的每个存储位写入1,经过128个时钟周期完成写1操作,然后通过端口A201按升序从起始地址开始到第128位地址结束每个时钟周期先读一个地址单元的存储值(16位1)然后对该地址单元写入16位0,通过端口B202按升序从第129位地址开始到最后一位地址结束每个时钟周期先读一个地址单元的存储值(16位1)然后对该地址单元写入16位0,端口A201和端口B202的读出值都输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过128个时钟周期完成读1以及结果检验;第五步通过端口A201按降序从最后一位地址开始到第129位地址结束每个时钟周期给一个地址单元写入16位1,通过端口B202按降序从第128位地址开始到起始地址结束每个时钟周期给一个地址单元写入16位1,经过128个时钟周期完成写1操作,然后通过端口A201按降序从第128位地址开始到起始地址结束每个时钟周期读取一个地址单元的存储值(16位1),通过端口B202按降序从最后一位地址开始到第129位地址结束每个时钟周期读取一个地址单元的存储值(16位1),端口A201和端口B202的读出值都输入与门401以及异或门403,在正确的情况下与门401应一直输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作,经过128个时钟周期完成读1以及结果检验;第六步通过端口A201按降序从末地址开始到第129位地址结束每个时钟周期给一个地址单元写入16位0,通过端口B202按降序从第128位地址开始到起始地址结束每个时钟周期给一个地址单元写入16位0,然后通过端口A201按降序从末地址开始到第129位地址结束每个时钟周期读出一个地址单元的存储值(16位0),通过端口B202按降序从第128位地址开始到起始地址结束每个时钟周期读出一个地址单元的存储值(16位0),端口A201和端口B202的读出值都输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写0操作,经过128个时钟周期完成读0以及结果检验操作。
第二次配置和测试
将每个内嵌双端口存储器配置为512×8的工作模式,数据深度为512,数据宽度为8位。然后依照与第一次配置和测试时相类似的方法进行测试。
第三次配置和测试
将每个内嵌双端口存储器配置为1024×4的工作模式,数据深度为1024,数据宽度为4位。然后依照与第一次配置和测试时相类似的方法进行测试。
第四次配置包括下列步骤:
将每个内嵌双端口存储器配置为2048×2的工作模式,数据深度为2048,数据宽度为2位。然后依照与第一次配置和测试时相类似的方法进行测试。
第五次配置和测试
将每个内嵌双端口存储器配置为4096×1的工作模式,数据深度为4096,数据宽度为1位。然后依照与第一次配置和测试时相类似的方法进行测试。
通过上述五次配置和测试过程,即可完成对FPGA内嵌双端口存储器在不同工作模式下的故障测试。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (5)
1、一种FPGA内嵌双端口存储器的测试方法,其特征在于步骤如下:
(1)对FPGA内嵌的各双端口存储器的两个存储端口进行编号,分别为端口A(201)和端口B(202);
(2)将各内嵌双端口存储器端口A(201)的输入地址端A(203)、输入数据端A(204)、端口使能端A(205)、读写使能端A(206)、复位控制端A(207)、时钟输入端A(208)分别并联在一起作为公共输入端A(301),将各内嵌双端口存储器端口A(201)的输出端(215)按位分别并联在一起作为并行输出端A(305);将各内嵌双端口存储器端口B(202)的输入地址端B(209)、输入数据端B(210)、端口使能端B(211)、读写使能端B(212)、复位控制端B(213)、时钟输入端B(214)分别并联在一起作为公共输入端B(302),将各内嵌双端口存储器端口B(202)的输出端(216)按位分别并联在一起作为并行输出端B(306);
(3)将各内嵌双端口存储器配置为相同的工作模式;
(4)将各内嵌双端口存储器的端口A(201)设为有效,端口B(202)设为无效,通过公共输入端A(301)对并联的各存储器施加March C算法测试向量进行故障测试;
(5)将各内嵌双端口存储器的端口B(202)设为有效,端口A(201)设为无效,通过公共输入端B(302)对并联的各存储器施加March C算法测试向量进行故障测试;
(6)将各内嵌双端口存储器的端口A(201)和端口B(202)同时设为有效,通过公共输入端A(301)和公共输入端B(302)对并联的各存储器同时施加组合向量进行两端口的关联性故障测试;
(7)将各内嵌双端口存储器设置为相同的其它工作模式,重复步骤(4)~(6)进行测试。
2、根据权利要求1所述的一种FPGA内嵌双端口存储器的测试方法,其特征在于:所述步骤(4)中通过公共输入端A(301)对并联的各存储器施加March C算法测试向量进行故障测试的方法为:
(1)各内嵌双端口存储器通过端口使能端A(205)激活端口A(201),通过端口使能端B(211)关闭端口B(202);
(2)按任意顺序给存储器的每个地址单元的每个存储位写入0;然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(3)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入1,然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(4)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(5)按降序从存储器的末地址开始给每个地址单元的每个存储位写入1,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(6)按降序从存储器的末地址开始给每个地址单元的每个存储位写入0,然后按任意顺序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
3、根据权利要求1所述的一种FPGA内嵌双端口存储器的测试方法,其特征在于:所述步骤(5)中通过公共输入端B(302)对并联的各存储器施加March C算法测试向量进行故障测试的方法为:
(1)各内嵌双端口存储器通过端口使能端B(211)激活端口B(202),通过端口使能端A(205)关闭端口A(201);
(2)按任意顺序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(3)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入1,然后按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(4)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(5)按降序从存储器的末地址开始给每个地址单元的每个存储位写入1,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(6)按任意顺序从存储器的末地址开始给每个地址单元的每个存储位写入0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
4、根据权利要求1所述的一种FPGA内嵌双端口存储器的测试方法,其特征在于:所述步骤(6)中通过公共输入端A(301)和公共输入端B(302)对并联的各存储器同时施加组合向量进行关联性故障测试的方法为:
(1)各内嵌双端口存储器通过端口使能端A(205)激活端口A(201),通过端口使能端B(211)激活端口B(202);
(2)通过端口A(201)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入0,然后通过端口A(201)按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,通过端口B(202)按升序从存储器的第2位地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(3)通过端口A(201)按升序从存储器的起始地址开始给每个地址单元的每个存储位写入1,然后通过端口A(201)按升序从存储器的起始地址开始读出每个地址单元的每个存储位的存储值,通过端口B(202)按升序从存储器的第2位地址开始读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(4)通过端口A(201)按升序从存储器的起始地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入0,通过端口B(202)按升序从存储器存储深度一半的位置开始到末地址结束给每个地址单元的每个存储位写入0,然后通过端口A(201)按升序从存储器存储深度一半的位置开始到末地址结束读出每个地址单元的每个存储位的存储值,通过端口B(202)按升序从存储器的起始地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0;
(5)通过端口A(201)按升序从存储器存储深度一半的位置开始到末地址结束给每个地址单元的每个存储位写入1,通过端口B(202)按升序从存储器的起始地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入1,然后通过端口A(201)按升序从存储器的起始地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值后再给该地址单元的每个存储位写入0,通过端口B(202)按升序从存储器存储深度一半的位置开始到末地址结束读出每个地址单元的每个存储位的存储值后再给该地址单元的每个存储位写入0,各存储器的读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(6)通过端口A(201)按降序从存储器的末地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入1,通过端口B(202)按降序从存储器存储深度一半的位置开始到起始地址结束给每个地址单元的每个存储位写入1,然后通过端口A(201)按降序从存储器存储深度一半的位置开始到起始地址结束读出每个地址单元的每个存储位的存储值,通过端口B(202)按降序从存储器的末地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(7)通过端口A(201)按降序从存储器的末地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写入0,通过端口B(202)按降序从存储器存储深度一半的位置开始到起始地址结束给每个地址单元的每个存储位写入0,然后通过端口A(201)按降序从存储器的末地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,通过端口B(202)按降序从存储器存储深度一半的位置开始到起始地址结束读出每个地址单元的每个存储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
5、根据权利要求2或3所述的一种FPGA内嵌双端口存储器的测试方法,其特征在于:所述端口A(201)或端口B(202)的输入地址宽度、输入数据宽度、输出数据宽度、数据深度均由存储器的工作模式确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810112419A CN100576361C (zh) | 2008-05-23 | 2008-05-23 | 一种fpga内嵌双端口存储器的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810112419A CN100576361C (zh) | 2008-05-23 | 2008-05-23 | 一种fpga内嵌双端口存储器的测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101286367A CN101286367A (zh) | 2008-10-15 |
CN100576361C true CN100576361C (zh) | 2009-12-30 |
Family
ID=40058503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810112419A Active CN100576361C (zh) | 2008-05-23 | 2008-05-23 | 一种fpga内嵌双端口存储器的测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100576361C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532770A (zh) * | 2012-07-06 | 2014-01-22 | 成都林海电子有限责任公司 | 一种基于北斗的卫星移动通信终端信息交互测试方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054536B (zh) * | 2009-11-09 | 2012-10-03 | 上海华虹Nec电子有限公司 | 使用alpg测试仪进行dp sram测试的装置 |
CN102520337B (zh) * | 2011-11-14 | 2014-04-30 | 华为技术有限公司 | 访问寄存器的方法、装置及自动测试机 |
CN105893200A (zh) * | 2014-10-21 | 2016-08-24 | 北京京航计算通讯研究所 | 一种基于模型替换的FPGA中blackbox的等效性检查方法 |
CN107451017B (zh) * | 2016-05-31 | 2021-05-07 | 中车株洲电力机车研究所有限公司 | 一种针对双口存储器的可靠性测试方法及系统 |
CN108108278B (zh) * | 2017-12-26 | 2021-07-30 | 北京国睿中数科技股份有限公司 | 验证总线端口功能覆盖率的方法及系统 |
-
2008
- 2008-05-23 CN CN200810112419A patent/CN100576361C/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532770A (zh) * | 2012-07-06 | 2014-01-22 | 成都林海电子有限责任公司 | 一种基于北斗的卫星移动通信终端信息交互测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101286367A (zh) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100576361C (zh) | 一种fpga内嵌双端口存储器的测试方法 | |
CN101458971B (zh) | 一种嵌入式静态存储器的测试系统及测试方法 | |
CN103576076B (zh) | 用于执行扫描测试的系统和方法 | |
CN103310852B (zh) | 基于ieee 1500标准兼容sram/rom的mbist控制器结构系统 | |
CN111308329B (zh) | 用于众核计算芯片可测性设计的电路、装置及方法 | |
CN102522123B (zh) | 利用数据产生器模块来提高存储设备读写测试效率的方法 | |
CN108062267A (zh) | 一种可配置寄存器文件自测试方法及生成装置 | |
CN103617810A (zh) | 嵌入式存储器的测试结构及方法 | |
CN102789815A (zh) | 一种用于fpga配置的prom电路架构 | |
US7805644B2 (en) | Multiple pBIST controllers | |
CN107978337A (zh) | 适用于随机存储器自动测试的高速电路结构及其测试方法 | |
CN105095040A (zh) | 一种芯片调试方法与装置 | |
CN201117296Y (zh) | 一种嵌入式存储器内建自测试结构 | |
CN103903651A (zh) | 双线串行端口内建自测电路及其通讯方法 | |
CN112698994A (zh) | 一种用于fpga内部资源测试的部分位流回读技术 | |
CN107068196A (zh) | 用于闪存的内建自测试电路、系统及方法 | |
CN104701204B (zh) | Sram芯片引脚焊接不良的检测方法及系统 | |
CN105047229A (zh) | 一种用于rram的存储单元片内自测电路及方法 | |
JP5186587B1 (ja) | 試験装置および試験方法 | |
JPH04178580A (ja) | 半導体メモリの故障自己診断装置 | |
CN107290656B (zh) | 一种集成双向crc校验功能的可扩展jtag调试结构 | |
CN106571156B (zh) | 一种高速读写ram的接口电路及方法 | |
CN103065672A (zh) | 一种基于同步静态随机存储器ip的异步静态随机存储器 | |
CN102682856A (zh) | 存储器件及其测试方法 | |
CN109994144A (zh) | 一种sram输出路径时序测试电路及测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |