一种FPGA测试用的多工位快速配置装置及其配置方法与流程

文档序号:11914079阅读:379来源:国知局
一种FPGA测试用的多工位快速配置装置及其配置方法与流程

本发明涉及一种FPGA测试用的多工位快速配置装置及其配置方法。



背景技术:

FPGA(Field-Programmable Gate Array现场可编程门阵列)是作为专用集成电路领域中的一种半定制电路而出现的,它的出现既解决了定制电路的不足,又克服了原有可编程器件门电路数量有限的缺点,可以广泛应用在航天、通信、计算机硬件系统、程序控制、数字系统等领域。FPGA可以通过编程把一个通用集成电路快速配置成用户需要的专用数字电路,因而大大加快了电子产品的研发周期,降低了研发成本,缩短了产品上市时间。

随着FPGA的广泛应用,对器件可靠性的要求也越来越高,同时由于FPGA的集成度越来越高,内部结构越来越复杂,对于FPGA的测试也将越来越复杂。由于FPGA的可编程性,FPGA的测试不同于普通ASIC的测试。对FPGA测试时需要先将FPGA配置成具有特定功能的电路,再对FPGA施加对应的测试向量。这样通过反复多次不同的配置来覆盖FPGA内部的所有资源来完成对FPGA的测试。随着FPGA规模的不断提升,FPGA的功能日趋复杂,测试配置的体积不断增大。从而导致测试配置的时间增加,测试配置的次数增多。在上述过程中,加载测试配置所占用的时间约占整个测试时间的90%-98%。同时芯片的测试成本是由整个的测试时间决定的,因此,如何尽可能快的完成测试过程中的FPGA配置成了FPGA测试中必须解决的问题。

现有技术中,实现FPGA的配置方法有很多,根据器件的类型和应用场景,各FPGA厂家均提供了多种配置方法来实现对FPGA的配置,归纳起来主要有以下几种:1、JTAG方式;2、主串方式;3、从串方式;4、并行方式。JTAG方式加载配置数据的方法电路简单、工作可靠、无需外接PROM等存储器件进行数据配置;主串、从串方式加载配置数据的方法是通过串行 方式读取专用PROM存储器介质中的数据,实现FPGA的在线配置;这三种配置方法都是采用串行的数据传输方式将配置数据加载到FPGA芯片中的,配置时间较长。并行方式配置速度快,时序简单,可选择8位、16位或32位的数据位宽,但其配置时钟由外部提供,需要设计专用电路控制整个配置过程。

专利《基于测试系统的FPGA多重实时重配置适配器》(申请号:201120260394.6)公开的一种基于测试系统的FPGA多重实时重配置适配器。该方法是将FPGA测试所需要的配置文件储存在一个配置存储器阵列,测试系统在测试时通过测试向量控制多路选择器阵列选择配置文件对待测FPGA芯片进行测试前的配置,该方案针对FPGA测试中需要频繁的对FPGA进行重配置以及测试系统与FPGA开发环境不兼容导致的不能配置的问题提供了一个很好的解决方案。该方案通过EDA开发支持板将FPGA开发环境编译生成的配置文件通过JTAG接口下载到配置测试板中的配置存储器中。测试时由测试向量通过测试通道驱动多路选择器阵列选择存储器组实现将特定的配置文件加载到待测FPGA芯片。专利《基于测试系统的FPGA多重实时重配置适配器》的方案硬件开销较大,一颗千万门级的FPGA芯片测试时需要下载上千种不同的配置数据,配置数据的存储需要消耗大量的存储空间,硬件开销较大;测试程序调试阶段配置数据的更新较为复杂,需要连接EDA开发支持板将配置数据更新到存储器阵列中,同时在配置时需要通过测试向量来控制实现对FPGA芯片的配置,占用了本就紧张的测试系统资源;同时该方案仅仅实现了对FPGA芯片的配置,在测试过程中往往需要对加载后的配置数据进行回读进行配置电路的测试,该方案无法实现对配置数据的回读。一颗设计好的FPGA芯片往往可以支持多种配置模式,该方案也不能够实现对不同配置模式的切换。



技术实现要素:

本发明提供一种FPGA测试用的多工位快速配置装置及其配置方法,可以实现同时对多颗待测FPGA芯片的配置操作,且实现对配置数据的回读操作,支持多种配置模式可选,支持多颗待测FPGA芯片的串行菊花链配置和JTAG链配置模式,并兼容多种测试平台,实现配置适配器与待测FPGA芯 片的隔离保护及动态电平匹配,配置适配器工作时不占用测试程序的向量及通道资源,节省了存储介质,简化了硬件设计,配置数据更新灵活,并节省了配置时间。

为了达到上述目的,本发明提供一种FPGA测试用的多工位快速配置装置,包含:

测试模块;

配置模块;

配置适配器,其电性连接配置模块,并电性连接若干待测FPGA芯片;

所述的测试模块中运行测试程序,所述的配置模块中运行配置程序;所述的测试模块与配置模块之间通过数据通讯链路相连,配置模块与配置适配器之间通过USB传输线相连;

所述的测试模块向配置模块发送操作指令,实现操作工位的选择、配置回读操作类型的选择、配置模式的选择,并将配置文件的存储路径发送给配置模块,接收配置模块返回的操作结果,配置模块接收测试模块的操作指令,将操作指令发送给配置适配器,配置适配器根据操作指令完成对待测FPGA芯片的配置以及对配置数据的回读,配置模块将回读数据发送给测试模块。

所述的配置适配器包含:

配置电路;

USB控制电路,其电性连接配置电路;

若干隔离匹配电路,其电性连接配置电路,该隔离匹配电路的数量与配置适配器的工位数量相同;

若干FGPA接口,其分别对应电性连接隔离匹配电路和待测FPGA,该FGPA接口的数量与配置适配器的工位数量相同;

供电电路,其电性连接配置电路、USB控制电路、以及若干隔离匹配电路;

所述的配置电路包含:

配置控制电路,其电性连接USB控制电路;

接收FIFO,其电性连接USB控制电路和配置控制电路;

发送FIFO,其电性连接USB控制电路和配置控制电路;

若干配置时序电路,其电性连接配置控制电路、接收FIFO、发送FIFO 和隔离匹配电路,该配置时序电路的数量与配置适配器的工位数量相同;

链式配置时序电路,其电性连接配置控制电路、接收FIFO、发送FIFO和所有的隔离匹配电路;

所述的USB控制电路实现配置模块与配置适配器之间基于USB协议的高速数据传输通路,并实现配置模块与配置电路之间的数据交互;

所述的隔离匹配电路,实现配置适配器输出的配置信号电平标准与待测FPGA芯片的电平标准的匹配及信号隔离;

所述的供电电路实现对配置适配器中其他电路提供稳定可靠的电源供应;

所述的配置控制电路接收USB控制电路发送的控制指令,解析指令并根据指令读写配置控制电路内部的配置寄存器信息,设置工位使能、操作类型、配置模式选择及配置接口电平标准选择,获取配置、回读的结果,并向USB控制电路返回操作结果;

接收FIFO通过高速并行接口接收USB控制电路发送的批量数据,并将数据存储供配置时序电路读取,发送FIFO接收配置时序电路发送的回读数据并将数据通过高速并行接口发送给USB控制电路;

配置时序电路按照所选择的配置模式产生除串行菊花链配置和JTAG链配置以外的配置时序将接收FIFO中的配置数据加载到待测FPGA芯片中或者产生回读时序从待测FPGA芯片中读取配置数据,并将读取的数据发送给发送FIFO;

当选择的配置模式为串行菊花链配置或JTAG链配置时,链式配置时序电路产生对应的配置时序将接收FIFO中的配置数据加载到待测FPGA芯片。

所述的USB控制电路包含电性连接的USB收发电路和控制模块,USB收发电路实现配置适配器与配置模块之间的高速数据传输,控制模块将配置模块下发的控制指令通过高速并行接口发送给配置电路,同时通过高速并行接口接收配置电路回发的回读数据,并将回读数据通过批量传输的方式发送给配置模块。

执行回读操作时,配置模块会根据接收到的操作工位信息,按工位编号顺序依次执行回读操作,待当前工位的回读操作完成后,再执行下一个工位的回读操作。

所述的隔离匹配电路包含电性连接的电平转换电路和继电器电路,在配 置适配器对待测FPGA芯片进行操作时,电平转换电路将配置适配器输出的配置信号的电平转换为与待测FPGA芯片的配置端口的电平相匹配的电平标准,然后继电器电路将配置信号与待测FPGA芯片的配置端口连通,在配置操作或回读操作完成后,继电器电路将配置信号与待测FPGA芯片的配置端口的连接断开,以避免对后续测试的干扰。

所述的供电电路包含继电器电路电源JD_POWER、USB控制电路电源USB_POWER、配置电路电源FPGA_POWER以及电平匹配电路电源DUT_POWER四组电源:继电器电路电源JD_POWER是隔离匹配电路中继电器电路的供电电源;USB控制电路电源USB_POWER给USB控制电路提供电源;配置电路电源FPGA_POWER为配置电路提供电源;电平匹配电路电源DUT_POWER是隔离匹配电路中电平转换电路部分与待测FPGA芯片配置端口的电平标准匹配的参考电平。

所述的配置电路中的寄存器包含:

固件版本寄存器Veision;保存FPGA固件程序的版本信息;

工位使能寄存器SITE_CS;控制对应工位配置时序电路(3034)的使能状态;

配置模式寄存器CFG_TYP;保存配置模式信息,配置时序电路(3034)根据该寄存器的值产生对应的配置时序或回读时序;

配置状态寄存器DONE_S;保存待测FPGA芯片(4)的配置结果;

初始化状态寄存器INIT_S;保存待测FPGA芯片(4)的上电初始化完成状态;

回读状态寄存器BUSY_S;在对待测FPGA芯片(4)执行回读操作时保存回读的状态信息;

电平标准寄存器POWER_S:保存待测FPGA芯片(4)当前时刻的电平标准信息,配置控制电路(3031)将根据该寄存器的状态动态调整隔离匹配电路(304)中电平匹配电路的输出电平标准。所述的配置模式包含:

主串配置模式:由待测FPGA芯片产生配置时钟信号,控制配置时序电路将配置数据加载到待测FPGA芯片;

从串配置模式:有配置电路提产生配置时钟信号,将配置数据加载到待测FPGA芯片;

从并配置模式:由配置电路产生配置时钟信号,配置电路根据时序要求将配置数据放在32位或8位的并行总线上加载到待测FPGA芯片;

主并配置模式:由待测FPGA芯片产生配置时钟信号,配置电路根据时序要求将配置数据放在32位或8位的并行总线上加载到待测FPGA芯片;

JTAG配置模式:根据IEEE1149.1/1532协议所规定的JTAG接口时序进行待测FPGA芯片的配置;

串行链配置模式:多个待配置的FPGA芯片的配置端口与一个共同的配置电路按照菊花链的方式连接,将其中的一颗待配置FPGA芯片的配置模式设置为主串模式,其他待配置FPGA芯片的配置模式设置为从串模式,由配置为主串模式的芯片产生配置时钟信号,配置电路按照主串模式的时序要求将配置数据输出到配置端口,实现同时对菊花链上的多颗芯片的配置;

JTAG链配置模式:多个待配置的FPGA芯片的配置端口与一个共同的配置电路按照JTAG链的方式连接,配置电路按照JTAG模式的时序要求将配置数据输出到配置端口,实现同时对JTAG链上的多颗芯片的配置。

所述的配置时序电路包含Master Serial时序电路、Slave SelectMAP时序电路、Master SelectMAP时序电路、JTAG时序电路、以及Salve Serial时序电路,所述的链式配置时序电路包含串行菊花链配置时序电路以及JTAG链配置时序电路。

本发明还提供一种FPGA测试用的多工位快速配置方法,该方法基于FPGA测试用的多工位快速配置装置实现,该FPGA测试用的多工位快速配置方法包含测试模块中测试程序的测试方法和配置模块中配置程序的配置方法;

所述的测试方法包含:测试模块中的测试程序向配置模块中的配置程序发送配置指令后,接收配置程序返回的操作结果,测试程序对操作结果进行解析并根据解析得到的数据判断是否对待测FPGA芯片进行了正确配置,如果进行了正确配置,则运行测试向量进行正常测试,如果没有进行正确配置,则终止测试程序;

所述的配置方法包含以下步骤:

配置模块中的配置程序读取配置文件中的配置数据并查找到固件版本正确的配置适配器;

如果配置程序接收到测试模块中的测试程序发送的合法的配置指令,配置程序向配置适配器发送复位指令对配置适配器进行复位,然后将操作工位选择指令、配置模式选择指令、以及配置回读选择指令发送给配置适配器;

如果配置回读选择指令中发送的是配置指令,则配置程序将配置数据发送到配置适配器,并读取每个工位的配置结果,将配置结果发送给测试模块中的测试程序;

如果配置回读选择指令中发送的是回读指令,则配置程序依次接收配置适配器发送的每个工位的回读数据,将回读数据发送给测试模块中的测试程序。

所述的配置文件包含:

1、测试程序与配置程序之间数据通讯链路的实现方式及实现参数;

2、配置程序的版本信息;

3、配置适配器的固件版本信息;

4、配置文件的处理方式信息。

如果配置程序无法查找到配置适配器,则退出配置程序。

配置程序查找到配置适配器后,从配置适配器获取配置适配器的固件版本信息,将获取到的固件版本信息与从配置文件中读取到的配置适配器的固件版本信息做比对,如果固件版本信息一致,则确认是正确的配置适配器,如果固件版本信息不一致,则退出配置程序。

配置程序接收到配置指令并解析配置指令,判断配置指令的合法性,如果配置指令不合法,则结束配置,将操作结果发送给测试模块中的测试程序;

合法的配置指令需满足以下条件:

1、需要操作的工位数不为零,且小于等于配置适配器支持的最大工位数;

2、在回读操作时一次操作的工位数只能为一个工位;

3、在配置操作时配置指令中需要包含配置数据的存储路径信息;

4、选择的配置模式需为配置适配器支持的配置模式。

配置程序向配置适配器发送复位指令、操作工位选择指令、配置模式选择指令、以及配置回读选择指令后,配置程序需要判断上述指令是否发送成功,如果不成功,则结束配置,将操作结果发送给测试模块中的测试程序。

本发明具有以下优点:

1、现有技术需要将配置文件预先通过专用的装置下载到配置适配器,本发明将配置文件直接存储在计算机上,可以节省配置装置上大量的存储器件,不需要设计存储器阵列电路去存放配置文件,简化了硬件设计,同时在配置文件更新时不需要再通过专用的设备将配置文件下载到配置适配器,只需要将新生成的配置数据覆盖原有的配置数据即可。

2、本发明节省了配置时间,采用基于USB2.0协议的高速数据传输方式将配置数据由计算机发送到配置装置,同时在正常的测试前配置时采用SelectMap数据位宽为32位的方式对待测FPGA芯片进行配置,采用这种方式在配置时钟为10MHZ时将大小为2.3MB的配置数据配置到待测FPGA芯片上的时间约为100mS,在将计算机到配置装置的数据传输方式升级到USB3.0的情况下配置的时间会更短。

3、可配置的配置文件数量不受限制,现有技术由于受配置存储器阵列存储容量的限制,可配置的配置文件数量有限,本发明将配置文件存放在计算机的硬盘中,可配置的配置文件数量不受配置适配器的限制。

4、本发明支持多种配置模式可选,并兼容多种开发测试程序的测试平台。

5、本发明可以实现对配置数据的回读操作,将配置数据从待测FPGA芯片内部回读出来并与加载的配置数据文件比对,协助测试程序实现对FPGA芯片回读功能的测试。

6、现有技术均是实现了对同一颗芯片的反复多次配置,本发明可以实现同时对多颗待测FPGA芯片的配置操作,且待测FPGA芯片相互之间完全隔离,不会相互干扰。

7、本发明可以动态的调整输出配置信号的电平标准,配置适配器可以根据当前待测FPGA芯片配置接口的电平标准提供相匹配的电平标准的数据信号,避免了因电平的不匹配对待测FPGA芯片造成的损伤及配置过程中因电平不匹配导致的配置失败等问题,同时在完成配置操作后切断与待测FPGA芯片的连接,避免了在对待测FPGA芯片进行测试时配置适配器与待测FPGA芯片连接通路的存在对测试结果的影响。

8、测试程序通过专用的数据通讯链路发送指令实现对待测FPGA芯片的测试前配置,配置适配器工作时不占用测试程序的向量及通道资源。

附图说明

图1是本发明提供的FPGA测试用的多工位快速配置装置的结构框图。

图2是配置适配器的电路框图。

图3是测试方法的流程图。

图4是配置方法的流程图。

具体实施方式

以下根据图1~图4,具体说明本发明的较佳实施例。

如图1所示,本发明提供一种FPGA测试用的多工位快速配置装置,包含:

测试模块1;

配置模块2;

配置适配器3,其电性连接配置模块2,并电性连接若干待测FPGA芯片4。

本实施例中,所述的测试模块1与配置模块2之间通过数据通讯链路相连,配置模块2与配置适配器3之间通过USB传输线相连。

所述的测试模块1向配置模块2发送操作指令,实现操作工位的选择、配置回读操作类型的选择、配置模式的选择,并将配置文件的存储路径发送给配置模块2,接收配置模块2返回的操作结果,配置模块2接收测试模块1的操作指令,将操作指令发送给配置适配器3,配置适配器3根据操作指令完成对待测FPGA芯片4的配置以及对配置数据的回读,配置模块2将回读数据发送给测试模块1,由于执行回读操作时,多个工位无法同时向测试模块1返回回读数据,因此配置模块2在接收到回读指令之后,会根据接收到的操作工位信息,按工位编号从小到大的顺序依次执行回读操作,待当前工位的回读操作完成并将回读数据存储到文本文件后,再执行下一个工位的回读操作。

所述的测试模块1中运行测试程序,所述的配置模块2中运行配置程序,所述的测试模块1和配置模块2都采用计算机PC系统实现。

本实施例中,测试程序是基于Teradyne生产的通用大规模集成电路测试系统J750开发的FPGA测试程序,并在原有的测试程序架构基础上增加程序 实现测试程序与配置程序之间的数据交互,以控制配置程序实现对待测FPGA芯片的配置和回读操作。

本实施例中,配置程序是一种PC应用软件,通过与测试程序之间的数据通讯链路接收测试程序的操作指令,并通过USB传输线向配置适配器3发送操作指令完成对待测FPGA芯片4的配置和回读操作。

所述的数据通讯链路为测试模块1与配置模块2之间数据交互的通路,由于测试程序是基于测试系统提供的专用开发环境开发的,其底层的驱动开发是不开放的,无法将配置程序整合到测试程序中去,因此需要另外开发配置程序,配置程序与测试程序独立为两个单独的程序之后,两个程序之间的数据交互的通讯链路也需要进行单独的考虑,目前常用的程序间通讯方式很多,可以根据项目的实际需要选择不同的实现方式,在配置程序运行在测试程序的计算机系统上时,该数据通讯链路可以通过程序之间共享内存、匿名管道、共享文件及消息传递等方式实现,当配置程序运行在与测试程序独立的计算机系统上时,该数据通讯的链路可以通过网络Socket通信、共享网络文件等方式实现,本实施例中,选用基于TCP/IP的以太网通讯方式,使用Socket编程的形式在测试程序和配置程序之间实现了简单的UDP通讯进行程序间数据的交互,使用这种方式的好处是在配置程序的运行环境与测试系统的平台环境不兼容时可以将配置程序和测试系统分开,将配置程序放在单独的PC终端上,配置程序的PC终端和测试系统之间通过局域网实现基于TCP/IP的UDP通讯,进行数据交互,即使在配置程序和测试程序运行在同一个PC终端上时也可以通过将远端IP地址和本地IP地址都指定为127.0.0.1的形式实现基于TCP/IP的UDP通讯。

所述USB传输线为可以传输基于USB2.0标准的高速数字信号的传输线。

如图2所示,所述的配置适配器3包含:

配置电路303;

USB控制电路302,其电性连接配置电路303,本实施例中,该USB控制电路302通过高速并行接口连接配置电路303;

若干隔离匹配电路304,其电性连接配置电路303,该隔离匹配电路304的数量与配置适配器3的工位数量相同;

若干FGPA接口305,其分别对应电性连接隔离匹配电路304和待测 FPGA4,该FGPA接口305的数量与配置适配器3的工位数量相同;

供电电路301,其电性连接配置电路303、USB控制电路302、以及若干隔离匹配电路304。

所述的配置电路303包含:

配置控制电路3031,其电性连接USB控制电路302;

接收FIFO(先入先出first in first out)3032,其电性连接USB控制电路302和配置控制电路3031,本实施例中,该接收FIFO3032通过高速并行接口连接USB控制电路302;

发送FIFO3033,其电性连接USB控制电路302和配置控制电路3031,本实施例中,该发送FIFO3033通过高速并行接口连接USB控制电路302;

若干配置时序电路3034,其电性连接配置控制电路3031、接收FIFO3032、发送FIFO3033和隔离匹配电路304,该配置时序电路3034的数量与配置适配器3的工位数量相同。

链式配置时序电路3035,其电性连接配置控制电路3031、接收FIFO3032、发送FIFO3033和隔离匹配电路304。

所述的USB控制电路302实现配置模块2与配置适配器3之间基于USB协议的高速数据传输通路,并实现配置模块2与配置电路303之间的数据交互;所述的USB控制电路302包含电性连接的USB收发电路(图中未示出)和控制模块(图中未示出),USB收发电路实现配置适配器3与配置模块2之间的高速数据传输,以便在最短的时间内将配置数据从配置模块2下发到配置适配器3上,控制模块将配置模块2下发的控制指令通过高速并行接口发送给配置电路303,同时通过高速并行接口接收配置电路303回发的回读数据,并将回读数据通过批量传输的方式发送给配置模块2。

本实施例中,该USB控制电路302采用专用的USB2.0通讯控制芯片,使用CYPRESS公司的EZ-USB FX2系列芯片CY7C68013A作为USB2.0控制器电路的主控芯片,CY7C68013A芯片的主要结构包含USB2.0收发器、串行接口引擎(SIE)、增强型8051、16KB的随机存取存储器(RAM)、4KB的FIFO存储器、I/O口、数据总线、地址总线和通用可编程接口(GPIF);CY7C68013A芯片的串行接口引擎负责完成独立串行数据的编解码、差错控制、位填充等与USB协议有关的功能,从而将芯片内嵌的微程序控制器MCU 解放出来,简化了固件代码的开发,在该CY7C68013A芯片中USB接口和外围电路直接共享FIFO存储器,这时增强型8051可不参与数据的传输,但可通过FIFO或随机存取存储器RAM的方式访问所传输的数据,另外这些FIFO与USB之间的传输是以数据包的形式实现的,而不是一次只传输一个字节,这种数据的传输方式较好的解决了USB高速模式下的宽带问题,可以实现480Mb/s的高速数据传输,USB控制电路302与配置电路303之间的高速数据通讯通过CY7C68013A芯片的GPIF接口的形式实现,数据传输的时序可以通过CYPRESS公司提供的GPIF工具进行设计。

USB控制电路302的信号定义如下表所示:

CY7C68013A芯片中固件程序的程序需要在CYPRESS公司提供的例程的基础上进行改进,改动的地方主要有:

1、GPIF时序代码存放在gpif.c文件中,该文件可以由GPIF Designer软件根据设计的时序自动生成;

2、修改函数DR_VendorCmnd()增加对配置软件控制指令的响应操作;

3、修改函数TD_Init(void),修改GPIF的数据位宽为16位,USB批量数据传输为自动传输方式:

EP2FIFOCFG=0x11;

EP6FIFOCFG=0x09。

所述的隔离匹配电路304,实现配置适配器3输出的配置信号电平标准与待测FPGA芯片4的电平标准的匹配及信号隔离,根据配置适配器3支持的工位数,每一个隔离匹配电路304对应一个工位,所述的隔离匹配电路304包含电性连接的电平转换电路(图中未示出)和继电器电路(图中未示出),在配置适配器3对待测FPGA芯片4进行操作时,电平转换电路将配置适配器3与输出的配置信号的电平转换为与待测FPGA芯片4的配置端口的电平相匹配的电平标准,然后继电器电路将配置信号与待测FPGA芯片4的配置端口连通,在配置/回读操作完成后,继电器电路还要将配置信号与待测FPGA芯片4的配置端口的连接断开,以避免对后续测试的干扰。

本实施例中,电平转换电路将配置电路303输出的配置信号电平转换为与待测FPGA芯片4的配置端口的电平标准相匹配的电平DUT_POWER,继电器电路选用COTO公司的2333-05继电器实现对配置信号的通断隔离及选通操作,2333-05继电器是三刀单掷的继电器,一个继电器即可实现对三路信号的通断控制,可有效的节省电路板的面积。

所述的供电电路301实现对配置适配器3中其他电路提供稳定可靠的电源供应。

本实施例中,供电电路301的输入由+12V@4A的电源适配器提供,供电电路301包含JD_POWER、USB_POWER、FPGA_POWER以及DUT_POWER四组电源:电源JD_POWER是隔离匹配电路304中继电器电路的供电电源,由于系统使用的继电器数量较多,继电器切换的瞬间电流及工作电流都比较大,因此该电源由四组专用的DC/DC模块实现,模块的输出电压为5V,每组模块可以输出的最大电流为2A,可以保证在继电器切换瞬间的大电流需求,不至于引起系统电源的波动;电源USB_POWER给USB控制电路302提供电源,本发明选用的USB2.0控制器芯片只需要一个3.3V的电源,因此该部分的电源可以使用一个3.3V的低压差线性稳压器(LDO)实现,为了避免LDO芯片12V输入3.3V输出应用中大压差的芯片发热情况,该部分的电源实现时首先使用一个DC/DC模块将12V的输入电源转换为5V的电源SYS_POWER,然后再通过一个3.3V的LDO芯片实现USB_POWER的电源输出;电源FPGA_POWER为配置电路303提供电源,配置电路303选用的FPGA芯片一般都会有多种电源类型,因此该部分会有多个电源电路,本发明选用的FPGA芯片的工作电源包括3.3V、2.5V、1.8V三种电源,可以选用3颗输出电压分别为3.3V、2.5V、1.8V的LDO芯片实现这三路电源的输出,LDO的输入电源使用与USB_POWER电源部分相同的SYS_POWER电源;电源DUT_POWER是隔离匹配电路304中电平转换电路部分与待测FPGA芯片4配置端口的电平标准匹配的的参考电平,本发明中的参考电平目前只支持3.3V、2.5V、1.8V三种电平标准,因此该部分电源的实现是将FPGA_POWER电源部分的三路电源由继电器根据配置电路的待测FPGA芯片4的芯片电平标准寄存器(POWER_S)的值选择电源切换给DUT_POWER。

所述的FGPA接口305是配置适配器3与待测FPGA芯片4的连接接口,本实施例中,FPGA接口选用高速信号连接器,可确保配置信号正确无误的传输。

所述的配置电路303是实现待测FPGA芯片4配置及回读操作的主要执行电路,配置电路303接收USB控制电路302发送的数据及命令并产生相应的配置时序将配置数据加载到待测FPGA芯片4上,本实施例中,所述的配置电路303是使用硬件编程语言Verilog编写代码,通过FPGA开发软件编译综合而生成的硬件电路,将编译后的配置文件加载到FPGA芯片中即生成了 所需要的电路功能。

对一颗待测FPGA芯片实现所有配置模式的全覆盖至少需要42个信号线,由于本发明是应用在芯片的测试环节,待测试FPGA芯片的状态都是未知的,因此在设计时多颗芯片的配置信号线都是相互独立的,避免了相互之间的干扰及影响,那么在使用一颗FPGA芯片同时实现对8颗待测FPGA芯片的配置需要的信号线数量为42*8+27=363,即选用的用于实现配置电路功能的FPGA芯片的可用用户IO数量要大于363,目前市面上满足这一条件的FPGA芯片价格一般都比较昂贵,在实际应用本发明时可以根据实际情况将多颗FPGA芯片级联或并行使用来实现对多工位FPGA芯片的配置,本实施方式中只对使用一颗FPGA芯片实现配置电路的方案进行介绍,所述的使用多颗FPGA芯片实现配置电路的方法与使用一颗芯片类似。

配置电路303中,所述的配置控制电路3031接收USB控制电路302发送的控制指令,解析指令并根据指令设置工位使能、操作类型、配置模式选择及配置接口电平标准选择,获取配置、回读的结果,并向USB控制电路302返回操作结果。

配置控制电路3031的功能主要是接收USB控制电路302发送的操作控制指令,解析指令并根据指令读写相关的配置控制电路3031内部的配置寄存器,本实施例中,配置电路303的寄存器信息如下表所示:

针对不同厂家的FPGA芯片会有不同的配置模式,这里列举的配置模式只是本实施例中的FPGA芯片支持的配置模式:

主串(Master Serial)配置模式:由待测FPGA芯片产生配置时钟信号,控制配置时序电路将配置数据加载到待测FPGA芯片;

从串(Salve Serial)配置模式:有配置电路提产生配置时钟信号,将配置数据加载到待测FPGA芯片;

从并(Slave SelectMAP)配置模式:由配置电路产生配置时钟信号,配置电路根据时序要求将配置数据放在32位或8位的并行总线上加载到待测FPGA芯片;

主并(Master SelectMAP)配置模式:由待测FPGA芯片产生配置时钟信号,配置电路根据时序要求将配置数据放在32位或8位的并行总线上加载到待测FPGA芯片;

JTAG配置模式:根据IEEE1149.1/1532协议所规定的JTAG接口时序进行待测FPGA芯片的配置;

串行链配置模式:多个待配置的FPGA芯片的配置端口与一个共同的配置电路按照菊花链的方式连接,将其中的一颗待配置FPGA芯片的配置模式设置为主串模式,其他待配置FPGA芯片的配置模式设置为从串模式,由配置为主串模式的芯片产生配置时钟信号,配置电路按照主串模式的时序要求将配置数据输出到配置端口,实现同时对菊花链上的多颗芯片的配置;

JTAG链配置模式:多个待配置的FPGA芯片的配置端口与一个共同的配置电路按照JTAG链的方式连接,配置电路按照JTAG模式的时序要求将配置数据输出到配置端口,实现同时对JTAG链上的多颗芯片的配置。

接收FIFO3032通过高速并行接口接收USB控制电路302发送的批量数据,并将数据存储供配置时序电路3034读取,发送FIFO3033接收配置时序电路3034发送的回读数据并将数据通过高速并行接口发送给USB控制电路302。

本实施例中,接收FIFO3032和发送FIFO3033均由配置电路使用的FPGA厂家提供的内核生成。

配置时序电路3034按照所选择的配置模式产生除串行菊花链配置和JTAG链配置以外的配置时序将接收FIFO3032中的配置数据加载到待测FPGA芯片4中或者产生回读时序从待测FPGA芯片4中读取配置数据,并将读取的数据发送给发送FIFO3033,同时配置时序电路3034在进行配置或 回读操作前还要根据所选择的配置模式控制对应隔离匹配电路中的继电器电路将所选择的配置模式所使用到的信号端口与待测FPGA芯片对应的配置端口连接起来,并在配置、回读操作完成后控制继电器断开二者的连接;根据配置适配器3支持的工位数,每一个配置时序电路3034对应一个工位。

当选择的配置模式为串行菊花链配置或JTAG链配置时,链式配置时序电路3035产生对应的配置时序将接收FIFO3032中的配置数据加载到待测FPGA芯片4中,同时配置时序电路3034还要根据所选择的配置模式所使用的配置信号控制对应匹配隔离电路中的继电器将配置信号与待测FPGA芯片的配置端口连接上,并在配置操作完成后控制继电器断开二者的连接。

配置时序电路3034为根据待测FPGA芯片4的配置时序产生相应的时序电路实现对待测FPGA芯片4一对一的配置操作,待测FPGA芯片4目前支持五种配置模式,因此配置时序电路部分共包含Master Serial时序电路、Slave SelectMAP时序电路、Master SelectMAP时序电路、JTAG时序电路、Salve Serial时序电路五种配置模式的时序电路,每种配置时序电路由配置模式寄存器(CFG_TYP)控制产生相应的配置时序。配置时序电路3034的具体实现跟待测FPGA芯片4的配置、回读时序相关,不同的待测FPGA芯片4配置时序不尽相同,在本实施例中两种位宽的主并配置和从并配置的时序要求是一样的,使用同一个配置时序电路,只需修改配置信号的输出数据总线的位宽。在本实施例中共有8个相同的配置时序电路,实现对8颗待测FPGA芯片的配置操作,8个配置时序电路的使能由工位使能寄存器(SITE_CS)控制。

链式配置时序电路为根据待测FPGA芯片4支持的链式配置时序产生相应的时序电路实现对待测FPGA芯片4配置操作,待测FPGA芯片4目前支持两种链式配置模式,串行链配置模式和JTAG链配置模式。因此,链式配置时序电路共包含串行链式配置电路、JTAG链配置电路两种配置电路。每种配置时序电路的使能由配置模式寄存器(CFG_TYP)控制。链式配置时序电路的具体实现跟待测FPGA芯片4的配置时序相关,不同的待测FPGA芯片4配置时序不尽相同。在本实施例中共有一组链式配置时序电路,实现对8颗待测FPGA芯片的配置操作。

本发明还提供一种FPGA测试用的多工位快速配置方法,该方法基于一 种FPGA测试用的多工位快速配置装置实现,该方法包含测试模块中测试程序的测试方法和配置模块中配置程序的配置方法。

如图3所示,本实施例中,所述的测试方法包含以下步骤:

步骤S101、测试模块上电初始化;

步骤S102、测试模块中的测试程序向配置模块中的配置程序发送配置指令;

步骤S103、测试程序判断配置程序是否返回了操作结果,如果是,进行步骤S104,如果否,进行步骤S106;

步骤S104、测试程序解析接收到的数据;

步骤S105、测试程序根据接收到的数据判断是否进行了正确配置,如果是,进行步骤S107,如果否,则显示测试失败,进行步骤S108;

步骤S106、测试程序判断接收是否超时,如果是,进行步骤S108,如果否,进行步骤S103;

步骤S107、测试程序运行测试向量;

步骤S108、测试模块下电,测试结束。

如图4所示,本实施例中,所述的配置方法包含以下步骤:

步骤S201、配置模块启动后,配置程序读取配置文件;

步骤S202、配置程序判断是否找到配置适配器,如果是,进行步骤S203,如果否,则显示找不到配置适配器,进行步骤S227;

步骤S203、配置程序获取配置适配器固件版本信息;

步骤S204、配置程序判断配置适配器固件版本信息是否正确,如果是,进行步骤S205,如果否,则显示配置适配器固件版本错误,进行步骤S227;

步骤S205、配置程序判断是否接收到测试模块中的测试程序发送的配置指令,如果是,进行步骤S206;

步骤S206、配置程序解析配置指令;

步骤S207、配置程序判断配置指令是否合法,如果是,进行步骤S208,如果否,则显示配置指令错误,进行步骤S224;

步骤S208、配置程序向配置适配器发送接口电平标准信号指令;

步骤S209、配置程序判断发送接口电平标准信号指令操作是否成功,如果是,进行步骤S210,如果否,则显示配置适配器操作错误,进行步骤S224;

步骤S210、配置程序向配置适配器发送复位指令;

步骤S211、配置程序判断发送复位指令操作是否成功,如果是,进行步骤S212,如果否,则显示配置适配器操作错误,进行步骤S224;

步骤S212、配置程序向配置适配器发送操作工位选择指令;

步骤S213、配置程序判断发送操作工位选择指令是否成功,如果是,进行步骤S214,如果否,则显示配置适配器操作错误,进行步骤S224;

步骤S214、配置程序向配置适配器发送配置模式指令;

步骤S215、配置程序判断发送配置模式指令是否成功,如果是,进行步骤S216,如果否,则显示配置适配器操作错误,进行步骤S224;

步骤S216、配置程序向配置适配器发送配置回读选择指令;

步骤S217、配置程序判断发送配置回读选择指令是否成功,如果是,进行步骤S218,如果否,则显示配置适配器操作错误,进行步骤S224;

步骤S218、配置程序判断发送的是配置指令,还是回读指令,如果是配置指令,进行步骤S219,如果是回读指令,进行步骤S225;

步骤S219、配置程序根据接收到的配置文件信息将需要下载的配置数据从配置文件中读取到缓存中;

步骤S220、配置程序将缓存中的数据发送到配置适配器;

步骤S221、配置程序判断数据发送操作是否成功,如果是,进行步骤S221,如果否,

步骤S222、配置程序读取配置适配器对各个工位的配置操作结果;

步骤S223、配置程序判断读取配置操作结果是否成功,如果是,进行步骤S224,如果否,则显示配置适配器操作错误,进行步骤S224;

步骤S224、配置程序将配置操作结果返回给测试模块中的测试程序,进行步骤S205;

步骤S225、配置程序接收并保存配置适配器发送的回读数据;

步骤S226、配置程序判断接收回读数据的操作是否成功,如果是,进行步骤S224,如果否,进行步骤S225;

步骤S227、退出配置程序。

配置程序在启动后首先会从配置程序的配置文件中读取程序运行的配置数据,配置文件中包含的主要信息有:

1、测试程序与配置程序间数据通讯链路的实现方式及相关的参数,例如在使用基于TCP/IP的通讯方式时配置文件中需包含测试程序运行终端的IP地址、端口号及配置程序运行终端的IP地址和端口号,在使用共享文件实现数据通讯时配置文件中需要包含共享文件的完整路径信息及文件名称;

2、配置程序的版本信息;

3、配置适配器的固件版本信息;

4、配置文件的处理方式信息;

为了减少配置过程的时间,针对配置文件做了一些处理,针对从网络服务器上读取配置文件耗时较长的问题,在实际使用过程中第一次读取配置文件时会将配置文件拷贝到计算机硬盘中的临时文件夹,当再次读取配置文件时就不再从服务器读取配置文件而是直接从本地硬盘的临时文件夹中读取,这样可以节省一些时间,而在程序调试阶段并不考虑从服务器读取配置文件的时间,同时为了便于更新配置文件,那么这个时候就不需要将配置文件拷贝到本地的计算机硬盘上了,那么这里就存在一个选择的问题,需不需要将配置文件拷贝到本地的硬盘上,以及拷贝到本地的硬盘上之后放在什么位置,在实际使用中就需要这样的一些参数,配置文件的处理方式信息就是做这些选择的。

在获取配置数据后,配置程序需要主动查找配置适配器,在无法查询到配置适配器设备时会报警告知操作者“找不到配置适配器”,然后退出程序,在查找到配置适配器之后会进一步从配置适配器获取配置适配器的固件版本信息,然后将获取到的固件版本信息与从配置文件中读取到的配置适配器的固件版本信息做比对,若不一致则要报警告知“配置适配器固件版本错误!”,然后退出程序。

配置程序在确认配置适配器正确连接且固件版本正确后,会一直检测测试程序的配置指令,当接收到测试程序发送的配置指令后会对配置指令进行解析并对配置指令的合法性进行判断,只有在配置指令合法的情况下才会继续后面的操作,合法的配置指令需满足以下条件:

1、需要操作的工位数要不大于配置适配器支持的最大工位数且不能为零;

2、在回读操作时一次操作的工位数只能为一个工位;

3、在配置操作时配置指令中需要包含配置数据的存储路径信息;

4、选择的配置模式需为配置适配器支持的配置模式。

在确认配置指令合法之后,配置程序将向配置适配器发送复位指令对配置适配器进行复位,随后会将操作工位、配置模式、及配置回读选择指令通过控制指令的方式依次下发到配置适配器,若其中某一条指令的发送操作失败后,配置程序直接向测试程序发送操作错误结果,并结束本次配置流程。

在配置回读选择指令发送完成后,配置程序将根据选择的操作方式执行后续的操作,当选择的操作是配置时,配置程序需要根据接收到的配置数据的存储路径信息将配置数据从配置文件中读取到配置缓存中,然后再将配置缓存中的数据发送到配置适配器,在配置数据正确完整的发送到配置适配器之后,配置程序将向配置适配器发送指令读取每个工位的配置结果,并将操作的结果发送给测试程序,当选择的操作是回读操作时,配置程序将进入接收批量数据的状态,并在接收到数据后将数据存储在文本文件中,在数据接收完成之后,将操作结果及保存的文本文件的存储路径信息发送给测试程序。

本发明具有以下优点:

1、现有技术需要将配置文件预先通过专用的装置下载到配置适配器,本发明将配置文件直接存储在计算机上,可以节省配置装置上大量的存储器件,不需要设计存储器阵列电路去存放配置文件,简化了硬件设计,同时在配置文件更新时不需要再通过专用的设备将配置文件下载到配置适配器,只需要将新生成的配置数据覆盖原有的配置数据即可。

2、本发明节省了配置时间,采用基于USB2.0协议的高速数据传输方式将配置数据由计算机发送到配置装置,同时在正常的测试前配置时采用SelectMap的配置方式,数据位宽为32位时对待测FPGA芯片进行配置,采用这种方式在配置时钟为10MHZ时将大小为2.3MB的配置数据配置到待测FPGA芯片上的时间约为100mS,在将计算机到配置装置的数据传输方式升级到USB3.0的情况下配置的时间会更短。

3、可配置的配置文件数量不受限制,现有技术由于受配置存储器阵列存储容量的限制,可配置的配置文件数量有限,本发明将配置文件存放在计算机的硬盘中,可配置的配置文件数量不受配置适配器的限制。

4、本发明支持多种配置模式可选,并兼容多种开发测试程序的测试平台。

5、本发明可以实现对配置数据的回读操作,将配置数据从待测FPGA 芯片内部回读出来并与加载的配置数据文件比对,协助测试程序实现对FPGA芯片回读功能的测试。

6、现有技术均是实现了对同一颗芯片的反复多次配置,本发明可以实现同时对多颗待测FPGA芯片的配置操作,且待测FPGA芯片相互之间完全隔离,不会相互干扰。

7、本发明可以动态的调整输出配置信号的电平标准,配置适配器可以根据当前待测FPGA芯片配置接口的电平标准提供相匹配的电平标准的数据信号,避免了因电平的不匹配对待测FPGA芯片造成的损伤及配置过程中因电平不匹配导致的配置失败等问题,同时在完成配置操作后切断与待测FPGA芯片的连接,避免了在对待测FPGA芯片进行测试时配置适配器与待测FPGA芯片连接通路的存在对测试结果的影响。

8、测试程序通过专用的数据通讯链路发送指令实现对待测FPGA芯片的测试前配置,配置适配器工作时不占用测试程序的向量及通道资源。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1