现场可编程门阵列原型验证装置及验证方法

文档序号:6427393阅读:143来源:国知局
专利名称:现场可编程门阵列原型验证装置及验证方法
技术领域
本发明涉及现场可编程门阵列(FPGA, Field Programmable Gate Array)原型验证技术,尤其涉及一种FPGA原型验证装置及验证方法。
背景技术
系统原型验证是片上系统(SoC, System on Chip)和专用集成电路(ASIC,Application Specific Integrated Circuit)设计成功的一种关键因素。传统的验证方法包括软件仿真技术和硬件加速器技术。所述软件仿真技术是利用软件仿真SoC或ASIC设计并进行验证,其优点是对于设计具有绝对的可视性,缺点是仿真速度慢。随着SoC设计越来越复杂,设计者们发现由于仿真速度和建模的限制,仅仅依靠软件仿真很难验证硬件设计的正确性。所述硬件加速器是一种使用硬件来运行仿真程序的设备,其仿真验证速度是软 件仿真验证速度的上千倍,优点是定位问题的效率很高,缺点是设备相当昂贵,成本高昂。另一种系统原型验证技术是FPGA原型验证。FPGA原型验证是一种在FPGA上搭建SoC和ASIC设计原型的一种验证技术,可以方便地进行硬件验证和早期软件开发,该技术也称为ASIC原型验证或SoC原型验证。相对于硬件加速器技术,FPGA原型验证具有成本低廉的特点;相对于软件仿真技术,FPGA原型验证不但速度快,还可以避免不能预料的软件缺陷的影响(例如很多不能预料的软件缺陷是来自于对操作系统、应用程序和硬件进行整合而带来的)。对于目前的SoC逻辑规模能够达到上千万门,调试验证平台以及发现问题后如何能够通过观测FPGA内部模块中的信号来定位错误,是FPGA原型验证的一大难点。传统的方法大致有以下两种现有技术一、使用外置逻辑分析仪或者示波器来分析定位错误。图I为现有技术一的FPGA原型验证流程图。参见图1,该流程包括步骤101、启动FPGA原型验证平台,如果发现运行错误,则初步选择一错误位置,执行后续步骤。步骤102、从FPGA原型中选定与所选错误位置相关的信号,并将所选信号引出至FPGA外部的测试管脚作为被监视信号。步骤103、修改FPGA工程,即对FPGA原型重新综合、布局、布线。步骤104、重新运行PFGA平台,并通过外置逻辑分析仪或者示波器来分析步骤102中所述FPGA外部测试管脚的被监视信号。步骤105 106、根据所述被监视信号所表述的信息判断是否能够将错误定位在当前位置,如果能够定位错误位置则结束流程,否则再次选择下一个可能的错误位置,返回步骤102。现有技术一的缺陷I)将内部信号引出到FPGA的管脚上面来,需要重新修改FPGA综合的顶层文件,然后重新综合、布局、布线。这对于大型SoC的FPGA原型验证来说,每一次更改管脚的约束将耗时十几至二十几个小时,可操作性差,效率比较低。2)使用示波器来实时观察FPGA内部的信号,会面临可观察信号过少、信号长度过短的缺点,可视性较差,因此定位错误的效率比较低。现有技术二、在FPGA内部内建逻辑分析仪硬核来分析定位错误。图2为现有技术二的FPGA原型验证流程图。参见图2,该流程包括步骤201、启动FPGA原型验证平台,如果发现运行错误,则初步选择一错误位置,执行后续步骤。步骤202、从FPGA原型中选定与所选错误位置相关的信号,将选定的信号作为被监视信号,连接到FPGA内建的逻辑分析仪硬核的输入信号上。步骤203、修改FPGA工程,即对FPGA原型重新综合、布局、布线。

步骤204、重新运行PFGA平台,使用FPGA软件观察所述内建的逻辑分析仪显示的信息,对被监视信号进行分析。步骤205 206、判断是否能够将错误定位在当前位置,如果能够定位错误位置则结束流程,否则再次选择下一个可能的错误位置,返回步骤202。现有技术二的缺陷I)由于定位FPGA运行错误问题主要采用排除法,最先判断与当前错误最相关的位置是存在问题,然后按照相关性大小来逐个排除这些位置是否正常,因此现有技术二将反复修改送入内置逻辑分析仪硬核的信号,而每一次对逻辑分析仪硬核的更改都会重新进行综合、布局布线,带来大量的时间消耗,可操作性差,效率比较低。2)在FPGA内建逻辑分析仪硬核的定位方法需要占用FPGA资源,对于大型FPGA原型验证平台来说,FPGA的资源是有限的,因此内建逻辑分析仪硬核这种定位方法所能够分析的数据量是比较有限的,也会面临可观察信号过少的缺点,可视性也比较差,因此定位错误的效率比较低。

发明内容
有鉴于此,本发明的目的是提供一种FPGA原型验证装置和验证方法,以提高FPGA验证的可操作性和效率。本发明的技术方案是这样实现的一种现场可编程门阵列FPGA原型验证装置,该装置包括分组信号选择模块、异步先入先出FIFO模块、存储器控制模块、数据发送模块以及总控制模块,其中所述分组信号选择模块具有一路以上输入端和一路输出端,其输入端连接FPGA原型的至少一组分组信号,该分组信号选择模块根据选择指令从其输入端的所述分组信号中选择一组作为被监视信号,并从输出端输出该被监视信号;所述异步FIFO模块位于所述分组信号选择模块和存储器控制模块之间,用于接收所述分组信号选择模块输出的被监视信号,将该被监视信号同步成与所述存储器控制模块速率相同的信号并输出给存储器控制模块;所述存储器控制模块用于将所述同步后的被监视信号存储到外部存储器,并从所述外部存储器读取被监视信号到所述数据发送模块,由该数据发送模块发送所述被监视信号到外部分析设备;
所述总控制模块用于对所述分组信号选择模块、异步FIFO模块、数据发送模块进行控制。优选的,该验证装置进一步包括一触发控制模块,设置在所述分组信号选择模块和异步FIFO模块之间,用于控制所述分组信号选择模块向所述异步FIFO模块发送被监视信号的时机。优选的,所述触发控制模块具体包括开关单元、对比信号寄存器、信号选择寄存器和触发判断单元,其中所述开关单元的输入端连接所述分组信号选择模块输出端,输出端连接所述异步FIFO模块的输入端,用于开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输;所述对比信号寄存器用于存储对比信号;所述信号选择寄存器用于存储被监视信号中需要对比的信号数量和位置;所述触发判断单元用于根据信号选择寄存 器的存储信息从被监视信号中选择对应的信号,当所选信号与所述触发对比寄存器中存储的对比信号满足预定的一致率时开启所述开关单元。优选的,所述分组信号选择模块的每路输入端具有256条信号线;所述对比信号寄存器的位数为32比特;所述信号选择寄存器的位数为16比特,其中低8比特用于存储需要对比的信号线数量,高8比特用于存储需要对比的信号线位置。优选的,所述触发控制模块进一步包括结束条件寄存器,用于存储监测结束条件,触发判断单元进一步实时判断当前是否满足所述结束条件寄存器中存储的监测结束条件,在满足所述监测结束条件时关闭所述开关单元。优选的,所述触发控制模块具体包括开关单元和控制寄存器,其中所述开关单元的输入端连接所述分组信号选择模块输出端,输出端连接所述异步FIFO模块的输入端,用于开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输;所述控制寄存器用于控制所述开关单元的状态,在总控制模块向该控制寄存器写入开启控制数据时开启所述开关单元,在总控制模块向该控制寄存器写入关闭控制数据时关闭所述开关单元。优选的,所述触发控制模块具体包括开关单元和启动信号线,其中所述开关单元的输入端连接所述分组信号选择模块输出端,输出端连接所述异步FIFO模块的输入端,用于开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输;所述启动信号线由总控制模块控制信号跳变,通过信号跳变来控制所述开关单元的开启和关闭状态。优选的,所述分组信号选择模块具体包括一复用器和一分组选择寄存器,所述复用器的输入端连接FPGA原型的至少一组分组信号,该复用器的控制端连接所述分组选择寄存器,所述分组选择寄存器的控制端连接所述总控制模块,所述总控制模块用于配置该分组选择寄存器以控制所述复用器从其输入端的所述分组信号中选择一组进行输出。一种FPGA原型验证方法,该方法包括A、预先对FPGA原型的信号进行分组,得到一组以上分组信号,并将所述分组信号线连接输入到一分组信号选择模块;B、启动FPGA原型验证;在发现运行错误时,控制所述分组信号选择模块从其输入端的分组信号中选择一组作为被监视信号;C、将所选的被监视信号同步为与存储器速率一致的信号,并存入存储器;D、从所述存储器中读取所述信号并传输给外部分析设备;E、判断步骤D的分析结果,如果信号异常,则完成错误定位,结束本流程;否则,控制所述分组信号选择模块从其输入端的分组信号中选择另一组作为被监视信号,返回步骤C0优选的,所述步骤C中,在同步所述被监视信号之前,进一步包括一触发控制步骤在满足触发条件的情况下才触发执行对所述被监视信号的同步处理及后续步骤。优选的,所述触发控制步骤具体为从所述被监视信号中选择指定数量和位置的信号,与预设的触发对比信号进行对比,当所选信号与触发对比信号满足预定的一致率时,触发执行对所述被监视信号的同步处理及后续步骤。优选的,在重新选择一组信号作为被监视信号后,在所述触发控制步骤中,从所述被监视信号中所选择的信号的数量和位置可重新设定,所述对比信号也可重新设定。优选的,该方法在步骤C之后进一步包括实时判断当前是否满足预设的监测结束条件,在满足所述监测结束条件时停止执行步骤C所述的对所述被监视信号的同步处理及后续步骤。 与现有技术相比,本发明预先对FPGA原型的信号进行分组,并设置有分组信号选择模块,通过该分组信号选择模块从已分组的信号中选择切换被监视信号,如果从当前被监视信号中没能定位错误,则只需修改该分组信号选择模块的配置(例如修改其寄存器设置)即可快速切换另一组信号进行验证。本发明在整个FPGA验证的过程中没有对FPGA工程做任何修改,不需要重新综合、布局、布线,这将节省大量的时间。因此本发明的可操作性较现有技术有很大的提闻,定位错误的效率也有很大提闻。同时,对于现有技术中使用示波器或者逻辑分析仪来实时观察被监视信号的方案相比,本发明采用异步FIFO模块以及存储器控制模块将被监视信号存储到外部存储器中,由于外部存储器可以被外部分析设备(如计算机、示波器等)方便地访问,因此本发明的方案可以提供监视信号给外部分析设备,由外部分析设备(如计算机的软件工具)观察被监视信号,因此可观察的信号种类多,其可视性强,且可以对被监视的信号进行选择,或反复观察某一段被监视信号;进一步提高了定位错误的效率。进一步的,由于本发明还进一步包括一触发控制模块,可以对传输被监视信号的时机进行选择性地触发,因此本发明可以更加灵活地选择被监控的信号,从而更加精确和快速地定位错误的位置。同时,由于可以选择性地输出被监视信号,减少了被监控信号的数据量,从而可以降低对外部存储器的存储空间的要求,提高了定位错误的效率。总之,与现有技术相比本发明能够在不对FPGA工程做任何修改的条件下实施对FPGA内部的信号进行实时记录、筛选,并且根据触发控制模块来开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输,从而确定监测的时间长度,因此本发明能够大大加快FPGA原型平台的搭建以及快速定位SoC和ASIC的各种逻辑问题。本发明的每一次错误定位主要花费时间的过程是将DDR内部的数据传送到PC、然后PC将该数据转换成波形文件这两个过程,通常这两个过程的时间花费不过几分钟,这大大加快了 FPGA定位问题的效率。


图I为现有技术一的FPGA原型验证流程图;图2为现有技术二的FPGA原型验证流程图3为本发明所述FPGA原型验证装置的一种实施例的结构框图;图4为本发明所述分组信号选择模块的一种具体结构示意图;图5为本发明所述FPGA原型验证装置的另一种实施例的结构框图;图5a为图5所述实施例中触发控制模块的第一种实施方式的结构示意图;图5b为图5所述实施例中触发控制模块的第二种实施方式的结构示意图;图5c为图5所述实施例中触发控制模块的第三种实施方式的结构示意图;图5d为图5所述实施例中触发控制模块的第四种实施方式的结构示意图;图6为本发明所述FPGA原型验证方法的一种流程图;
图7为包括触发控制步骤的一种FPGA原型验证方法流程图。
具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。图3为本发明所述FPGA原型验证装置的一种实施例的结构框图。参见图3,该装置包括分组信号选择模块301、异步FIFO模块302、存储器控制模块303、数据发送模块304以及总控制模块305。所述分组信号选择模块301具有一路以上输入端和一路输出端,其输入端连接FPGA原型的至少一组分组信号,一组分组信号被并行输入到一路输入端,该分组信号选择模块301根据选择指令从其输入端的所述分组信号中选择一组作为被监视信号,并从输出端输出该被监视信号。所述异步FIFO模块302位于所述分组信号选择模块301和存储器控制模块303之间,用于接收所述分组信号选择模块301输出的被监视信号,将该被监视信号同步成与所述存储器控制模块303速率相同的信号并输出给存储器控制模块303。所述存储器控制模块303用于检测到异步FIFO模块302存在数据后,将所述同步后的被监视信号存储到外部存储器306,并从所述外部存储器306读取被监视信号到所述数据发送模块304,由该数据发送模块304发送所述被监视信号到外部分析设备307进行验证。所述外部分析设备可以是装有分析软件的计算机或者示波器等等,此实施例以计算机为例进行说明。所述存储器控制模块303可以是各种存储器控制器,本实施方案优选双倍速率动态存储器(DDR)控制器,所述数据发送模块304使用串行或者并行端口发送数据,本实施方案优选通用异步接收/发送装置(UART)进行数据发送。所述总控制模块305用于对所述分组信号选择模块301、异步FIFO模块302、数据发送模块304进行控制,可以配置所述信号选择模块301进行信号选择,启动数据发送模块304进行数据传输,并在完成所有信号的数据存储后使异步FIFO模块302停止接收数据。图4为本发明所述分组信号选择模块的一种具体结构示意图。参见图4,所述分组信号选择模块301具体包括一复用器(MUX) 311和一分组选择寄存器312,所述复用器311的输入端连接FPGA原型的至少一组分组信号的信号线,一组分组信号线被并行输入到对应的一路输入端,该复用器311的控制端连接所述分组选择寄存器312,所述分组选择寄存器312的控制端连接所述总控制模块305,所述总控制模块305用于配置该分组选择寄存器312以控制所述复用器311从其输入端的所述分组信号中选择一组(即一路并行信号)输出给所述异步FIFO模块302。本发明中,所述复用器311每路输入端的并行连线数量根据实际的应用来决定,没有具体限制,例如本实施方案优选为复用器311的每路输入端配置有256条并行信号线,如果对应的某一分组信号线的数量相对较小没有达到256条,则可以将256条连线中没有使用的信号置O或者置I。图5为本发明所述FPGA原型验证装置的另一种实施例的结构框图。参见图5,该实施例中进一步包括一触发控制模块308,其他与图3所述实·施例相同,该触发控制模块308设置在所述分组信号选择模块301和异步FIFO模块302之间,用于控制所述分组信号选择模块301向所述异步FIFO模块302发送被监视信号的时机,从而更加灵活地选择被监控的信号,提高定位错误的效率。图5a为图5所述实施例中触发控制模块的第一种实施方式的结构示意图。参见图5a,在该实施方式中,所述触发控制模块具体包括开关单元511、对比信号寄存器512、信号选择寄存器513和触发判断单元514,其中所述开关单元511的输入端连接所述分组信号选择模块301输出端,输出端连接所述异步FIFO模块302的输入端,用于开启或关闭所述分组信号选择模块301向所述异步FIFO模块302的信号传输。所述对比信号寄存器512用于存储对比信号;所述信号选择寄存器513中存储被监视信号中需要对比的信号数量和位置。上述对比信号寄存器512和信号选择寄存器513的信息可以通过总控制模块305进行设置。所述触发判断单元514用于根据信号选择寄存器513的存储信息从被监视信号中选择对应的信号,并判断所选信号与所述触发对比寄存器中存储的对比信号是否满足预定的一致率,例如所述一致率可以设置为百分比X% (如50%。100%等),当所选信号有X%的信号与所述对比信号一致时,则满足该预定的一致率,否则不满足该预定的一致率。如果满足预定的一致率则开启所述开关单元511,即启动所述分组信号选择模块301向所述异步FIFO模块302的信号传输。对于对比信号寄存器512的位数,本发明方案优选为32比特(bit),但是本发明并不仅限于32bit。对于信号选择寄存器513的位数,本发明方案优选为16bit,但不仅限于16bit,该信号选择寄存器513的低8bit表不分组信号选择模块输出的并行信号中需要被比较的信号数量(即被比较的信号线的数量),例如如果为10,则表示将从被监视信号中选择10条信号线的信号状态与所述对比信号寄存器512的低IObit数据作对比,如果相同则启动所述开关单元511进行数据传输。该信号选择寄存器513的高Sbit表示分组信号选择模块输出的并行信号中需要被比较的信号的位置(即被比较信号线在256条信号线中具体位置),例如如果需对比信号的数量为10,位置为0,则256条信号线中的第0-9条信号线的信号被选择作为需对比的信号与所述对比信号进行对比;如果需对比信号数量为7,位置为13,则256条信号线中的第13-19条信号线的信号被选择作为需对比的信号。当信号选择寄存器513决定的信号状态与对比信号寄存器512相同时则所述触发判断单元启动所有256bit信号的采样与传送,并连续在时钟的每一个上升沿或者下降沿(本发明方案优选时钟上升沿)对所有256bit信号的状态采样并写入到异步FIFO模块302中。当外部存储器达到了存储数据量最大值之后则停止数据传输并重新设置对比信号寄存器512和信号选择寄存器513。图5b为图5所述实施例中触发控制模块的第二种实施方式的结构示意图。参见图5b,该实施例在上述图5a的基础上进一步增加一个结束条件寄存器515,用于存储预设的监测结束条件,该结束条件可以是已采样的信号数量,开始监测的时间长度等。所述触发判断单元514判断当前是否满足所述结束条件寄存器515存储的监测结束条件,例如当前所采样的信号数量是否已经达到结束条件寄存器515存储的已采用信号数量,或者当前监测时间是否达到结束条件寄存器515存储的监测时间长度,如果满足所述监测结束条件,则触发判断单元514关闭所述开关单元511,停止所述分组信号选择模块301向所述异步FIFO模块302的信号传输。图5c为图5所述实施例中触发控制模块的第三种实施方式的结构示意图。参见图5c,在该实施方式中,所述触发控制模块具体包括开关单元521和控制寄存器522,其中所述开关单元521的输入端连接所述分组信号选择模块301输出端,输出端连接所述异步FIFO模块302的输入端,用于开启或关闭所述分组信号选择模块301向所述异步FIFO模块302的信号传输;
所述控制寄存器522用于控制所述开关单元521的状态,若向该控制寄存器522写入开启控制数据则开启所述开关单元521,如果写入关闭控制数据则关闭所述开关单元521。例如可以通过总控制模块305向该控制寄存器522写入开启控制数据,此时触发所述开关单元521启动所述分组信号选择模块301向所述异步FIFO模块302的信号传输;如果总控制模块305向该控制寄存器522写入关闭控制数据,此时触发所述开关单元521关闭所述分组信号选择模块301向所述异步FIFO模块302的信号传输。图5d为图5所述实施例中触发控制模块的第四种实施方式的结构示意图。参见图5d,在该实施方式中,所述触发控制模块具体包括开关单元531和启动信号线532,其中所述开关单元531的输入端连接所述分组信号选择模块301输出端,输出端连接所述异步FIFO模块302的输入端,用于开启或关闭所述分组信号选择模块301向所述异步FIFO模块302的信号传输。所述启动信号线532可以由总控制模块305控制进行跳变,通过信号跳变来控制所述开关单元531的开启和关闭状态。例如在初始阶段开关单元531默认为关闭状态,当所述启动信号线发生信号跳变时开启所述开关单元531,从而启动所述分组信号选择模块301向所述异步FIFO模块302的信号传输,当所述启动信号线再次发生信号跳变时关闭所述开关单元531,从而关闭所述分组信号选择模块301向所述异步FIFO模块302的信号传输。利用上述FPGA原型验证装置,本发明还公开了对应的FPGA原型验证方法。图6为本发明所述FPGA原型验证方法的一种流程图。参见图6,该方法包括步骤601、预先对FPGA原型的信号进行分组,得到一组以上分组信号,并将所述分组信号线连接输入到所述FPGA原型验证装置的分组信号选择模块。本步骤中所述对FPGA原型信号进行分组是从FPGA原型中各子模块本身的特性出发,将FPGA内部的每一个子模块或者是顶层模块或者是系统中的信号分组,每一组信号包含该模块或者系统中一些关键信号,例如将本模块的状态机信号、总线接口信号、各种中间计算结果信号、控制信号,以及系统互连总线信号等作为关键信号。具体怎样将信号分组可以由技术实施人员自行决定。步骤602、启动FPGA原型验证;在发现运行错误时,控制所述分组信号选择模块从其输入端的分组信号中选择一组作为被监视信号。此处所选的分组信号为与初步选定的错误位置相关的分组信号,可以通过配置分组信号选择模块的寄存器进行选择,每一次信号的米样与传输仅针对一组信号。步骤603、将所选的被监视信号同步为与存储器速率一致的信号,并存入存储器。此处可以利用异步FIFO模块对被监测信号进行同步,并由存储器控制器将同步后的信号存储到存储器中。步骤604、从所述存储器中读取所述信号并传输给计算机进行分析。此处可以通过串行端口将数据发送至PC,PC端将接收到的串行数据进行处理,并将其转换成波形查看工具能够识别的文件格式,使用波形查看工具来打开经过转换后的文件,根据波形信息来判断当前被监视信号是否运行正常。步骤605、判断步骤604的分析结果,如果信号异常,则说明本组被监视信号具有错误,从而完成错误定位,结束本流程;否则,还不能完成错误定位,控制所述分组信号选择模块从其输入端的分组信号中选择另一组作为被监视信号,返回步骤603。为了更加灵活地选择被监控的信号,所述步骤603中在同步所述被监视信号之前,可以进一步包括一触发控制步骤。图7为包括触发控制步骤的一种FPGA原型验证方法流程图,参见图7步骤631,在满足触发条件的情况下才触发执行步骤603对所述被监视信号进行同步处理及后续步骤,否则不触发执行步骤603及后续步骤。此步骤具体可以通过所述触发控制模块来实现。在一种优选的实施方式中,所述触发控制步骤具体可以为从所述被监视信号中选择指定数量和位置的信号(例如可以通过所述对比信号寄存器进行配置),与预设的触发对比信号(例如可以通过所述信号选择寄存器进行配置)进行对比,当所选信号与触发对比信号满足预定的一致率时,触发执行对所述被监视信号的同步处理及后续步骤;在步骤605中,如果不能完成错误定位,则控制所述分组信号选择模块从其输入端的分组信号中选择另一组作为被监视信号,返回步骤631。在该触发控制步骤631中,每当重新选择一组信号作为被监视信号时,从所述被监视信号中所选择的信号的数量和位置可重新设定,所述对比信号也可重新设定,也就是说对比信号寄存器和信号选择寄存器可以重新设置,从而更改对被监视信号的触发条件。当外部存储器达到了存储数据量最大值后停止对所述被监视信号的同步处理及后续步骤,结束监测。或者,上述方法中可在执行步骤603之后进一步判断当前是否满足预设的监测结束条件,在满足所述监测结束条件时停止执行对所述被监视信号的同步处理及 后续步骤。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种现场可编程门阵列FPGA原型验证装置,其特征在于,该装置包括分组信号选择模块、异步先入先出FIFO模块、存储器控制模块、数据发送模块以及总控制模块,其中 所述分组信号选择模块具有一路以上输入端和一路输出端,其输入端连接FPGA原型的至少ー组分组信号,该分组信号选择模块根据选择指令从其输入端的所述分组信号中选择ー组作为被监视信号,并从输出端输出该被监视信号; 所述异步FIFO模块位于所述分组信号选择模块和存储器控制模块之间,用于接收所述分组信号选择模块输出的被监视信号,将该被监视信号同步成与所述存储器控制模块速率相同的信号并输出给存储器控制模块; 所述存储器控制模块用于将所述同步后的被监视信号存储到外部存储器,并从所述外部存储器读取被监视信号到所述数据发送模块,由该数据发送模块发送所述被监视信号到外部分析设备; 所述总控制模块用于对所述分组信号选择模块、异步FIFO模块、数据发送模块进行控 制。
2.根据权利要求I所述的装置,其特征在于,该装置进ー步包括一触发控制模块,设置在所述分组信号选择模块和异步FIFO模块之间,用于控制所述分组信号选择模块向所述异步FIFO模块发送被监视信号的时机。
3.根据权利要求2所述的装置,其特征在于,所述触发控制模块具体包括开关单元、对比信号寄存器、信号选择寄存器和触发判断単元,其中 所述开关単元的输入端连接所述分组信号选择模块输出端,输出端连接所述异步FIFO模块的输入端,用于开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输; 所述对比信号寄存器用于存储对比信号; 所述信号选择寄存器用于存储被监视信号中需要对比的信号数量和位置; 所述触发判断単元用于根据信号选择寄存器的存储信息从被监视信号中选择对应的信号,当所选信号与所述触发对比寄存器中存储的对比信号满足预定的一致率时开启所述开关单元。
4.根据权利要求3所述的装置,其特征在干,所述分组信号选择模块的每路输入端具有256条信号线;所述对比信号寄存器的位数为32比特;所述信号选择寄存器的位数为16比特,其中低8比特用于存储需要对比的信号线数量,高8比特用于存储需要对比的信号线位置。
5.根据权利要求3所述的装置,其特征在干,所述触发控制模块进一歩包括结束条件寄存器,用于存储监测结束条件,触发判断单元进一步实时判断当前是否满足所述结束条件寄存器中存储的监测结束条件,在满足所述监测结束条件时关闭所述开关単元。
6.根据权利要求2所述的装置,其特征在于,所述触发控制模块具体包括开关单元和控制寄存器,其中 所述开关単元的输入端连接所述分组信号选择模块输出端,输出端连接所述异步FIFO模块的输入端,用于开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输; 所述控制寄存器用于控制所述开关単元的状态,在总控制模块向该控制寄存器写入开启控制数据时开启所述开关单元,在总控制模块向该控制寄存器写入关闭控制数据时关闭所述开关単元。
7.根据权利要求2所述的装置,其特征在干,所述触发控制模块具体包括开关单元和启动信号线,其中 所述开关単元的输入端连接所述分组信号选择模块输出端,输出端连接所述异步FIFO模块的输入端,用于开启或关闭所述分组信号选择模块向所述异步FIFO模块的信号传输; 所述启动信号线由总控制模块控制信号跳变,通过信号跳变来控制所述开关単元的开启和关闭状态。
8.根据权利要求I所述的装置,其特征在于,所述分组信号选择模块具体包括ー复用器和一分组选择寄存器,所述复用器的输入端连接FPGA原型的至少ー组分组信号,该复用器的控制端连接所述分组选择寄存器,所述分组选择寄存器的控制端连接所述总控制模块,所述总控制模块用于配置该分组选择寄存器以控制所述复用器从其输入端的所述分组信号中选择ー组进行输出。
9.ー种FPGA原型验证方法,其特征在干,该方法包括 A、预先对FPGA原型的信号进行分组,得到ー组以上分组信号,并将所述分组信号线连接输入到一分组信号选择模块; B、启动FPGA原型验证;在发现运行错误时,控制所述分组信号选择模块从其输入端的分组信号中选择ー组作为被监视信号; C、将所选的被监视信号同步为与存储器速率一致的信号,并存入存储器; D、从所述存储器中读取所述信号并传输给外部分析设备; E、判断步骤D的分析结果,如果信号异常,则完成错误定位,结束本流程;否则,控制所述分组信号选择模块从其输入端的分组信号中选择另一组作为被监视信号,返回步骤C。
10.根据权利要求9所述的方法,其特征在于,所述步骤C中,在同步所述被监视信号之前,进ー步包括一触发控制步骤在满足触发条件的情况下才触发执行对所述被监视信号的同步处理及后续步骤。
11.根据权利要求10所述的方法,其特征在于,所述触发控制步骤具体为 从所述被监视信号中选择指定数量和位置的信号,与预设的触发对比信号进行对比,当所选信号与触发对比信号满足预定的一致率时,触发执行对所述被监视信号的同步处理及后续步骤。
12.根据权利要求11所述的方法,其特征在于,在重新选择ー组信号作为被监视信号后,在所述触发控制步骤中,从所述被监视信号中所选择的信号的数量和位置可重新设定,所述对比信号也可重新设定。
13.根据权利要求11所述的方法,其特征在于,该方法在步骤C之后进ー步包括实时判断当前是否满足预设的监测结束条件,在满足所述监测结束条件时停止执行步骤C所述的对所述被监视信号的同步处理及后续步骤。
全文摘要
本发明公开了一种现场可编程门阵列FPGA原型验证装置及方法,所述装置包括分组信号选择模块、异步先入先出FIFO模块、存储器控制模块、数据发送模块以及总控制模块,所述分组信号选择模块的输入端连接FPGA原型的至少一组分组信号,在FPGA原型验证出错时,根据选择指令从分组信号选择模块输入端的所述分组信号中选择一组作为被监视信号,并输出给所述异步FIFO模块同步成与所述存储器控制模块速率相同的信号,并由所述存储器控制模块将同步后的信号存储到外部存储器,从所述外部存储器读取被监视信号到数据发送模块,由该数据发送模块发送所述被监视信号到外部计算机进行数据分析以定位错误。利用本发明,可以提高FPGA验证的可操作性、可视性和效率。
文档编号G06F17/50GK102855338SQ201110177368
公开日2013年1月2日 申请日期2011年6月28日 优先权日2011年6月28日
发明者高峰, 王明耀 申请人:重庆重邮信科通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1