一种FPGA中LUT6的编程测试方法与流程

文档序号:28691969发布日期:2022-01-29 11:38阅读:362来源:国知局
一种FPGA中LUT6的编程测试方法与流程
一种fpga中lut6的编程测试方法
技术领域
1.本发明涉及一种fpga中lut6的编程测试方法,属于现场可编程门阵列(field programmable gate arrays,fpga)中的lut6的测试技术领域。


背景技术:

2.field programmable gate arrays即fpga现场可编程门阵列是目前常用的电子设备,其具有可编程,应用简便,适用范围广的特点。
3.目前国内各检测机构对 fpga 的测试基本上采取基于应用的测试技术,即对其功能进行符合性检验,是基于自动化测试系统的功能验证性的测试。测试流程如图 1 所示。
4.可编程逻辑资源的核心是可编程逻辑功能块(clb),其中,查找表(lut)模块是其重要构成部分。在测试中,主要判断其构成的组合及时序电路的正确性。
5.查找表(lut)可被认为是一个具有1位输出端的存储器阵列,存储器的地址线就是lut的输入信号线,一个具有n输入的lut就对应2n个存储单元的存储器。在fpga中,lut通常由sram存储单元实现,用户将逻辑功能的真值表通过编程的方式写入lut中,可实现任意n输入的组合逻辑功能。lut6为具有一般输出的6输入查找表。
6.现阶段,测试 lut6 的直观而简单的方法就是将 lut6 的输入输出都和 fpga 器件的 io 连接起来进行测试,但这一方法的主要问题是 fpga 器件的 io 和 lut6 的数量相差悬殊,每配置一次只能测试较少数量的 lut6,应用此种方法测试 lut6 模块将大量增加配置次数和测量时间成本。
7.但是,随着 fpga 系统级密度的进一步提升,fpga 内嵌的高性能资源核越来越多,性能的不断提升使得 fpga 的结构已超出了基本架构范围,基本的测试方法也已不能满足这些功能模块的测试。
8.另外,fpga 集成度的越来越高,fpga 测试配置的完备性也是 fpga 测试不得不考虑的一个问题再有,随着 fpga 规模的不断扩大,自动化测试平台的搭建是不可能大量地依靠人工,所以软件的发展也是 fpga 测试发展的一个因素。
9.此外,还要研究能适应多种结构的有效的通用结构模型和故障模型,从而实现针对各种不同结构、模型 fpga 的专用和通用测试方法。对于 fpga 的测试不单单是把 fpga 分成若干部分分别进行测试,还要研究把一个 fpga 作为一个整体进行测试的方法,从而达到减少编程次数的目的。


技术实现要素:

10.本发明要解决的技术问题是:提供一种fpga中lut6的编程测试方法,减少编程以及测试次数,以解决传统测试人工编写测试程序而导致的流程复杂、成本高、生产效率偏低的问题。
11.为了解决上述技术问题,本发明提出的技术方案是:一种fpga中lut6的编程测试
方法,执行如下步骤:1)lut6逻辑资源功能设计;2)lut6输入向量设计;3)确定测试程序变量n;4)通过编程自动生成lut6测试程序;5)将自动生成的lut6测试程序通过编程自动移植到lut6测试工具中;6)进行测试仿真;7)将lut6测试程序写入fpga中并进行数据读取;8)比对仿真数据与fpga中的读取数据;9)确定测试结果,预期结果与读取结果比对,若一致,则通过测试;若不一致,则测试不通过;所述lut6测试程序包括两组功能电路,a将被测试的全部的lut6模块配置为64位2进制输入的结构,输入的时候再将64位2进制变更为16进制进行展示;b将被测试的全部的lut6模块配置为上一电路的64位2进制数据取反输入的结构,同样,输入的时候将64位2进制变更为16进制进行展示;各lut6模块的内部,输入向量为i0、i1、i2、i3、i4、i5, i5为上一lut6模块的输出。
12.上述技术方案的改进是:各lut6模块的内部,lut6的输出全部通过可编程逻辑触发器进行寄存,寄存后的输出通过内部通道级联到下一级lut6的i5端口上,最后一个lut6的输出连接到模块外部。
13.上述技术方案的改进是:通过modelsim行为级仿真获取预期结果。
14.本发明的有益效果是:本发明全覆盖lut6模块,提高了测试效率;采用在线编程的方式,解决了传统的测试多次例化verilog的问题;采用了编程方式进行生成测试代码与移植测试代码的方式,减少了测试过程中的人工操作,提高了生产效率,降低了成本。本方法实施步骤简单,可移植性强,具有一定的工程应用价值。
附图说明
15.图1是fpga测试流程图。
16.图2是本发明提供的lut6测试示意图。
17.图3是本发明提供的一种fpga中lut6的编程测试方法流程示意图。
具体实施方式
18.实施例一本实施例的一种fpga中lut6的编程测试方法,如图3所示,执行如下步骤:1)lut6逻辑资源功能设计;2)lut6输入向量设计;3)确定测试程序变量n;4)通过编程自动生成lut6测试程序;为了覆盖lut6模块的存储单元,通过编程,自动生成输入数据与输入数据的取反数据,并实现其自动转化为16进制。手动设置初始输入向量,通过编程自动生成多个lut6s
组合。根据存储单元的数量,设置有n个lut6s组合。从而自动生成lut6测试程序;5)将自动生成的lut6测试程序通过编程自动移植到lut6测试工具中;6)进行测试仿真;7)将lut6测试程序写入fpga中并进行数据读取;8)比对仿真数据与fpga中的读取数据;9)确定测试结果,预期结果与读取结果比对,若一致,则通过测试;若不一致,则测试不通过;所述lut6测试程序包括两组功能电路,a将被测试的全部的lut6模块配置为64位2进制输入的结构,输入的时候再将64位2进制变更为16进制进行展示;b将被测试的全部的lut6模块配置为上一电路的64位2进制数据取反输入的结构,同样,输入的时候将64位2进制变更为16进制进行展示;各lut6模块的内部,输入向量为i0、i1、i2、i3、i4、i5, i5为上一lut6模块的输出。
19.各lut6模块的内部,lut6的输出全部通过可编程逻辑触发器进行寄存,寄存后的输出通过内部通道级联到下一级lut6的i5端口上,最后一个lut6的输出连接到模块外部。
20.通过modelsim行为级仿真获取预期结果。
21.为减少配置次数和节约时间成本,如图 2 所示,并将 fpga 器件中的 lut6 进行遍历性测试,测试设计输入可将 fpga 的一个 lut6 设计成最小的逻辑单元lut6s,此最小逻辑单元能够实现输出等于输入,便于测试过程中进行跟踪测试,再将上一个 lut6s 的输出作为下一个 lut6s 的输入,如此进行多次级联组成一个阵列;这样级联的优点是占用了很少的 i/o 管脚即测试了 fpga 器件的 95% 以上的 lut6。
22.本发明不局限于上述实施例所述的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1