一种fpga内嵌双端口存储器的测试方法

文档序号:6782711阅读:112来源:国知局
专利名称:一种fpga内嵌双端口存储器的测试方法
技术领域
本发明涉及一种存储器的测试方法,特别是一种FPGA内嵌双端口存储器 的测试方法。
背景技术
FPGA内嵌双端口存储器是一种特殊的双端口存储器,它的特点在于存储 器可被配置为多种工作模式,不同的工作^t式下存储器具有不同的数据宽度和 存储深度。对FPGA内嵌双端口存储器测试的关键是确保在各个工作模式下的 各种类型的故障的测试覆盖率达到100%。
近年来,FPGA中的内嵌双端口存储器在芯片中所占面积越来越大,在实 际应用中的使用频率也越来越高,因此对内嵌双端口存储器的全面测试成为了 FPGA测试技术中特别重要的环节。国外对双端口存储器的测试进行了研究, 提出了很多测试方法,这些方法大都以March C算法为基础产生测试向量,将 此向量施加到规模固定的双端口存储器中,并对双端口存储器的输出结果进行 检验。这些方法一般都要将测试程序运行两次,每次只测试一个端口,但这样 的测试方法与双端口存储器的实际工作模式有差别,会降低某种耦合故障的测 试覆盖率。国内在此领域的研究还处于起步阶段,尚无一种成熟的测试方法。

发明内容
本发明的技术解决问题是克服现有4支术的不足,提供了一种具有高测试 覆盖率的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按升序从存储器的起始地址开始l^个地址单元的每个 存储位写入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按升序从存储器的起始地址开始到存储深度一半的位置结束读出每个
端口 B按升序从存储器存储深度一半的位置开始到末地址结束读出每个地址单 元的每个存储位的存储值后再给该地址单元的每个存储位写入0,各存储器的 读出值分端口按位进行与才喿作和异或操作,判断对应位是否都相同并且都为1;
(6) 通过端口 A按降序从存储器的末地址开始到存储深度一半的位置结 束给每个地址单元的每个存储位写入1,通过端口 B按降序从存储器存储深度 一半的位置开始到起始地址结束给每个地址单元的每个存储位写入1,然后通 过端口 A按降序从存储器存储深度一半的位置开始到起始地址结束读出每个地 址单元的每个存储位的存储值,通过端口 B按P争序从存储器的末地址开始到存 储深度一半的位置结束读出每个地址单元的每个存储位的存储值,各存储器的 读出值分端口按位进行与操作和异或操作,判断对应位是否都相同并且都为1;
(7) 通过端口 A按降序从存储器的末地址开始到存储深度一半的位置结 束给每个地址单元的每个存储位写入O,通过端口 B按降序从存储器存储深度 一半的位置开始到起始地址结束给每个地址单元的每个存储位写入0,然后通 过端口 A按降序从存储器的末地址开始到存储深度一半的位置结束读出每个地址单元的每个存储位的存储值,通过端口 B按降序从存储器存储深度一半的位 置开始到起始地址结束读出每个地址单元的每个存储位的存储值,各存储器的 读出值分端口按位进行或操作和异或操作,判断对应位是否都相同并且都为0。
所述端口 A或端口 B的输入地址宽度、输入数据宽度、输出数据宽度、数 据深度均由存储器的工作模式确定。
本发明与现有技术相比的优点在于
(1) 在对单个端口进行March C算法测试向量进行故障测试的勤出上, 增加了一组组合向量,进行两端口的关联性故障测试,提高了测试的覆盖率;
(2) 可利用FPGA中空闲的可配置逻辑资源作为枱r-验逻辑,由内部对存 储器阵列的输出结果做出检验,大大节省了 FPGA的输入输出端口,有利于测 试系统的集成,从而能够降低测试成本。


图1为FPGA内嵌单个双端口存储器的端口示意图; 图2为采用本发明方法对FPGA内嵌双端口存储器进^f亍测试的级联结构示 意图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是4企验逻辑303或304具体实现方式的示意图, 由401、 402、 403组成的检验逻辑303或304通过FPGA中空闲的查找表配 置而成,阵列中每个存储器的端口 A201或者端口 B202的输出信号都分别接 入检验逻辑303或304中的与门401、或门402、异或门403中;测试时,当 进行读1操作时,存储器输出全为1,输入到与门401进行与操作后,与门401 输出结果应为1,否则表明某个存储单元出现固定O故障,当进行读0操作时, 存储器输出全为0,输入到或门402进行或操作后,或门402输出结果应为0, 否则表明某个存储单元出现固定1故障,由于每个存储单元写入的值都一样, 所以异或门403的结果应保持为0,否则表明某个存储单元出现故障。
实施例
对具有5种读、写工作模式的内嵌双端口存储器阵列的测试,具体步骤如

第一次配置和测试
(1) 将每个内嵌双端口存储器配置为256 x 16的工作模式,数据深度为 256,数据宽度为16bit。
(2) 将存储器中同一类端口的各输入端分别并联在一起作为公共输入端; 检l^逻辑由与门401、或门402、异或门403组成,同一类端口的输出数据同 时并行输入到与门401、或门402、异或门403上。
(3) 通过端口使能端A205激活端口 A201,通过端口使能端B211关闭 端口 B202;加测试向量时,第一步按升序从首地址开始(也可按任意序,即升 序或降序,起始地址任选)给每个地址单元写入16位0,经过256个时钟周期后完成写0操作;第二步按升序从起始地址开始每个时钟周期读出一个地址单 元的存储值(16位0)并输入或门402以及异或门403,在正确的情况下或门 402应一直输出0、异或门403应一直输出0,否则说明某个存储单元未能实 现写O操作,经过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,否则说明某个存储单元未能实现写O操作, 经过256个时钟周期完成读0以及结果检验操作;第五步按降序从终止地址开 始每个时钟周期给相应地址单元写入16位1,经过256个时钟周期完成写1 操作,然后按降序从终止地址开始每个时钟周期读出一个地址单元的存储值
(16位1)并输入与门401以及异或门403,在正确的情况下与门401应一直 输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1操作, 经过256个时钟周期完成读1以及结果检验;第六步按降序从终止地址开始每 个时钟周期给相应地址单元写入16位0,经过256个时钟周期完成写O操作, 然后按P争序从终止地址开始每个时钟周期读出 一个地址单元的存储值(16位0) 并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异 或门403应一直输出0,否则说明某个存储单元未能实现写O操作,经过256 个时钟周期完成读0以及结果检验操作;
(4)通过端口使能端B211激活端口 B202,通过端口使能端A205关闭 端口 A201;加测试向量时,第一步按降序(也可按任意序,即升序或降序,起始地址任选)给每个地址单元写入16位0,经过256个时钟周期后完成写0 操作;第二步按升序从起始地址开始每个时钟周期读出一个地址单元的存储值 (16位0)并输入或门402以及异或门403,在正确的情况下或门402应一直 输出0、异或门403应一直输出0,否则说明某个存储单元未能实现写O操作, 经过256个时钟周期完成读0以及结果检验操作;第三步按升序从起始地址开 始每个时钟周期给相应地址单元写入16位1,经过256个时钟周期完成写1 操作,然后按升序从起始地址开始每个时钟周期读出一个地址单元的存储值 (16位1 )并输入与门401以及异或门403,在正确的情况下与门401应一直 输出1、异或门403应一直输出0,否则说明某个存储单元未能实现写1才喿作, 经过256个时钟周期完成读1以及结果枱r验;第四步按升序从起始地址开始每 个时钟周期给相应地址单元写入16位0,经过256个时钟周期完成写O操作, 然后按降序从终止地址开始每个时钟周期读出 一个地址单元的存储值(16位0) 并输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异 或门403应一直输出0,否则说明某个存储单元未能实现写O操作,经过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,否则说明某个存储单元未能实现写O操作,经过256个时 钟周期完成读0以及结果检验操作;
(5)通过端口使能端A205、 B211同时激活端口 A201和端口 B202;加测试向量时,第一步通过端口 A201按升序从起始地址开始每个时钟周期给一 个地址单元写入16位0,经过256个时钟周期完成写O操作,然后通过端口 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应一直 输出O,否则说明某个存储单元未能实现写1操作,经过256个时钟周期完成 读1以及结果检验;第三步通过端口 A201按升序从起始地址开始到第128位 地址结束每个时钟周期给一个地址单元写入16位0,通过端口 B202按升序从 第129位地址开始到最后一位地址结束每个时钟周期给一个地址单元写入16 位O,经过128个时钟周期完成写O操作,然后通过端口 A201按升序从第129 位地址开始到最后一位地址结束每个时钟周期读出一个地址单元的存储值(16 位0),通过端口 B202按升序从起始地址开始到第128位地址结束每个时钟周 期读出一个地址单元的存储值(16位0),端口 A201和端口 B202的读出值都 输入或门402以及异或门403,在正确的情况下或门402应一直输出0、异或 门403应一直输出0,否则说明某个存储单元未能实现写O操作,经过128个 时钟周期完成读0以及结果检验操作;第四步通过端口 A201按升序从第129 位地址开始到最后一位地址结束每个时钟周期给一个地址单元写入16位1,通过端口 B202按升序从起始地址开始到第128位地址结束每个时钟周期给一个 地址单元的每个存储位写入1,经过128个时钟周期完成写1操作,然后通过 端口 A201按升序从起始地址开始到第128位地址结束每个时钟周期先读一个 地址单元的存储值(16位1 )然后对该地址单元写入16位0,通过端口 B202 按升序从第129位地址开始到最后一位地址结束每个时钟周期先读一个地址单 元的存储值(16位1 )然后对该地址单元写入16^f立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位地址结束每个时钟周期读出一个地址单元的存储值M6位0), 通过端口 B202按降序从第128位地址开始到起始地址结束每个时钟周期读出 一个地址单元的存储值(16位0),端口 A201和端口 B202的读出值都输入或 门402以及异或门403,在正确的情况下或门402应一直输出0、异或门403 应一直输出0,否则说明某个存储单元未能实现写0操作,经过128个时钟周期完成读0以及结果检验操作。
第二次配置和测试
将每个内嵌双端口存储器配置为512x8的工作模式,数据深度为512, 数据宽度为8位。然后依照与第一次配置和测试时相类似的方法进行测试。 第三次配置和测试
将每个内嵌双端口存储器配置为1024x4的工作模式,数据深度为1024, 数据宽度为4位。然后依照与第一次配置和测试时相类似的方法进行测试。 第四次配置包括下列步骤
将每个内嵌双端口存储器配置为2048 x 2的工作模式,数据深度为2048, 数据宽度为2位。然后依照与第一次配置和测试时相类似的方法进行测试。 第五次配置和测试
将每个内嵌双端口存储器配置为4096 x 1的工作模式,数据深度为4096, 数据宽度为1位。然后依照与第一次配置和测试时相类似的方法进行测试。
通过上述五次配置和测试过程,即可完成对FPGA内嵌双端口存储器在不 同工作模式下的故障测试。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
权利要求
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) 按P争序从存储器的末地址开始给每个地址单元的每个存储位写入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;(4) 按升序从存储器的起始地址开始给每个地址单元的每个存储位写入 0,然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储 值,各存储器的读出值按位进行或操作和异或才喿作,判断对应位是否都相同并 且都为0;(5) 按降序从存储器的末地址开始给每个地址单元的每个存储位写入1, 然后按降序从存储器的末地址开始读出每个地址单元的每个存储位的存储值, 各存储器的读出值按位进行与操作和异或操作,判断对应位是否都相同并且都 为1;(6) 按任意序从存储器的末地址开始给每个地址单元的每个存储位写入值,各存储器的读出值按位进行或操作和异或操作,判断对应位是否都相同并 且都为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 )按升序从存储器的起始地址开始到存储深度一半 的位置结束给每个地址单元的每个存储位写入O,通过端口 B(202)按升序从 存储器存储深度一半的位置开始到末地址结束给每个地址单元的每个存储位写 入O,然后通过端口 A (201 )按升序从存储器存储深度一半的位置开始到末地 址结束读出每个地址单元的每个存储位的存储值,通过端口 B(202)按升序从 存储器的起始地址开始到存储深度一半的位置结束读出每个地址单元的每个存 储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对 应位是否都相同并且都为0;(5) 通过端口 A (201 )按升序从存储器存储深度一半的位置开始到末地 址结束给每个地址单元的每个存储位写入1,通过端口 B (202)按升序从存储 器的起始地址开始到存储深度一半的位置结束给每个地址单元的每个存储位写 入1,然后通过端口 A (201)按升序从存储器的起始地址开始到存储深度一半 的位置结束读出每个地址单元的每个存储位的存储值后再给该地址单元的每个 存储位写入O,通过端口 B (202)按升序从存储器存储深度一半的位置开始到 末地址结束读出每个地址单元的每个存储位的存储值后再给该地址单元的每个存储位写入0,各存储器的读出值分端口按位进行与操作和异或操作,判断对 应位是否都相同并且都为1;(6) 通过端口 A (201)按降序从存储器的末地址开始到存储深度一半的 位置结束给每个地址单元的每个存储位写入1,通过端口 B (202)按降序从存 储器存储深度一半的位置开始到起始地址结束给每个地址单元的每个存储位写 入1,然后通过端口 A (201 )按降序从存储器存储深度一半的位置开始到起始 地址结束读出每个地址单元的每个存储位的存储值,通过端口 B(202)按降序 从存储器的末地址开始到存储深度一半的位置结束读出每个地址单元的每个存 储位的存储值,各存储器的读出值分端口按位进行与操作和异或操作,判断对 应位是否都相同并且都为1;(7) 通过端口 A (201 )按降序从存储器的末地址开始到存储深度一半的 位置结束给每个地址单元的每个存储位写入O,通过端口 B (202)按降序从存 储器存储深度一半的位置开始到起始地址结束给每个地址单元的每个存储位写 入O,然后通过端口 A (201 )按降序从存储器的末地址开始到存储深度一半的 位置结束读出每个地址单元的每个存储位的存储值,通过端口 B(202)按降序 从存储器存储深度一半的位置开始到起始地址结束读出每个地址单元的每个存 储位的存储值,各存储器的读出值分端口按位进行或操作和异或操作,判断对 应位是否都相同并且都为0。
5、根据权利要求2或3所述的一种FPGA内嵌双端口存储器的测试方法, 其特征在于所述端口 A (201 )或端口 B (202)的输入地址宽度、输入数据 宽度、输出数据宽度、数据深度均由存储器的工作模式确定。
全文摘要
一种FPGA内嵌双端口存储器的测试方法,将FPGA中的内嵌双端口存储器全部配置为可选工作模式中的同一种,将同一类端口的输入并行连接到一起作为公共输入端;测试时,先采用March C算法轮流测试两类端口,然后对两类端口同时施加组合向量,进行两端口的关联性故障测试,判断存储器输出的正确性。本发明有效地完成了FPGA内嵌双端口存储器的测试,测试覆盖率达到100%,且合理利用了FPGA中空闲的资源作为检验逻辑,简化了调试过程,减少了输入输出端口,大大提高了测试效率。
文档编号G11C29/04GK101286367SQ200810112419
公开日2008年10月15日 申请日期2008年5月23日 优先权日2008年5月23日
发明者鹏 储, 刘增荣, 涛 周, 孙华波, 帆 张, 张彦龙, 张志权, 文治平, 李学武, 勇 王, 雷 陈 申请人:北京时代民芯科技有限公司;中国航天时代电子公司第七七二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1