基于观测硬件电路对比观测fpga内部信号的方法
技术领域
本发明涉及FPGA
技术领域
,尤其是一种基于观测硬件电路对比观测FPGA内部信号的方法。背景技术
当用户电路在FPGA上实现并在FPGA上正常运行时,为了确定用户电路在FPGA上的运行过程正确且符合设计思想,通常需要观测用户电路内部某些特定信号的行为或波形。
目前的做法是,先在FPGA上实现用户电路并完成布局布线,此时FPGA内部的部分资源会被用户电路占用,但仍有部分空置未被使用的资源。然后选定用户电路的待观测信号,其已对应到FPGA内部布局布线资源,将待观测信号经由FPGA内部未被占用的绕线资源连接到未被占用的管脚作为观测管脚。将选定的待观测信号的绕线路径及观测管脚加入到用户电路的布局布线成为新的布局布线,对新的布局布线生成码流下载到FPGA正常运行,此时即可由观测管脚对待观测信号进行观测。
但在这种做法中,若FPGA实现用户电路后无未被占用的管脚可使用,或者待观测信号无法利用未被占用的绕线资源连接到相应管脚,则无法实现上述功能,因此现有的这种做法是较为受限的,并不能保证每次都成功的对待观测信号进行观测。
发明内容
本发明人针对上述问题及技术需求,提出了一种基于观测硬件电路对比观测FPGA内部信号的方法,本发明的技术方案如下:
一种基于观测硬件电路对比观测FPGA内部信号的方法,该方法包括:
确定在FPGA芯片上运行的用户电路,FPGA芯片内部包含可编程逻辑资源和观测硬件电路,观测硬件电路包括通过第一观测路径相连的观测点和第一观测管脚,以及,通过第二观测路径相连的参考点和第二观测管脚;观测点和参考点分别是FPGA芯片内部可编程逻辑资源的输出口;第一观测路径和第二观测路径分别具有各自对应的预定时延;
将用户电路中产生的待观测信号的电路结构布局在观测点处、将待观测信号对应的参考信号的电路结构布局在参考点处作为约束条件,在约束条件下基于FPGA芯片内部的可编程逻辑资源生成用户电路对应的配置码流并加载到FPGA芯片上;
FPGA芯片基于配置码流形成用户电路,在用户电路的运行过程中,通过第一观测管脚输出观测点处的待观测信号、通过第二观测管脚输出参考点处的参考信号,将参考信号与待观测信号进行对比观测。
其进一步的技术方案为,观测硬件电路还包括第一路径选通电路、第一多位选择器和第一调试管脚,第一路径选通电路的输入端连接的各个信号点通过第一路径选通电路内部的不同路径连接到第一观测管脚,第一多位寄存器连接并控制第一路径选通电路不同路径的通断;
观测点为第一路径选通电路的输入端连接的其中一个信号点,则第一多位寄存器根据从第一调试管脚获取到的第一调试指令控制选通观测点至第一观测管脚的路径。
其进一步的技术方案为,观测硬件电路还包括第二路径选通电路、第二多位选择器和第二调试管脚,第二路径选通电路的输入端连接的各个信号点通过第二路径选通电路内部的不同路径连接到第二观测管脚,第二多位寄存器连接并控制第二路径选通电路不同路径的通断;
参考点为第二路径选通电路的输入端连接的其中一个信号点,则第二多位寄存器根据从第二调试管脚获取到的第二调试指令控制选通参考点至第二观测管脚的路径。
其进一步的技术方案为,第一路径选通电路的输入端连接的每个信号点与第二路径选通电路的输入端连接的每个信号点分别对应形成一组信号点,且一组信号点中的两个信号点之间的布设距离不超过预定距离且经过相同的绕线路径连接到对应的观测管脚;则一组信号点中与第一路径选通电路相连的信号点为观测点、另一个信号点为参考点。
其进一步的技术方案为,第一路径选通电路和第二路径选通电路的输入端连接相同的若干个信号点,且各个信号点形成H型树形结构使得各个信号点到第一路径选通电路和第二路径选通电路的时延相同,观测点和参考点分别为其中的任意两个不同的信号点。
其进一步的技术方案为,当第一路径选通电路选通一个信号点作为观测点时,第二路径选通电路选通不同的信号点作为参考信号,则同一个待观测信号对应多个不同的参考信号;
当第一路径选通电路选通不同的信号点作为观测点时,第二路径选通电路选通同一个信号点作为参考信号、则不同的待观测信号对应相同的参考信号,或者,第二路径选通电路选通不同的信号点作为参考信号、则不同的待观测信号对应不同的参考信号。
其进一步的技术方案为,多个不同的参考信号为同步信号或异步信号,且多个不同的参考信号的频率相同或不同。
其进一步的技术方案为,参考点为全局时钟缓冲器的输出端,则第二观测路径中设置有时延调节电路,FPGA芯片基于配置码流形成用户电路时还对时延调节电路的时延进行配置、使得第二观测路径与第一路径选通电路的输入端的任意信号点至第一观测管脚的路径之间的时延差值小于预定阈值。
其进一步的技术方案为,参考点布设在预定位置处,使得第二观测路径与第一路径选通电路的输入端的任意信号点至第一观测管脚的路径之间的时延差值小于预定阈值。
其进一步的技术方案为,第一路径选通电路的输入端连接的若干个信号点呈行列式分布,参考点位于任意一行信号点或任意一列信号点的中心位置处;或者,第一路径选通电路的输入端连接的若干个信号点分布在具有预定范围的信号点区域内,则参考点位于所有信号点区域的中心位置处。
其进一步的技术方案为,参考信号与其对应的待观测信号为同步信号,或者,为同频信号,或者,参考信号的频率是待观测信号的整数倍频。
其进一步的技术方案为,待观测信号对应的参考信号为主时钟信号或预定的用户时钟信号。
其进一步的技术方案为,FPGA芯片为多裸片FPGA且内部包括若干个具有电路连接关系的FPGA裸片,则每个FPGA裸片分别引出第一观测管脚和第二观测管脚。
本发明的有益技术效果是:
本申请公开了一种基于观测硬件电路对比观测FPGA内部信号的方法,该方法通过对FPGA芯片进行硬件改进设计并结合相应的软件功能配置共同实现,通过在FPGA芯片内加入单独的观测硬件电路并基于观测硬件电路的布局位置作为对信号的约束条件来生成配置码流,可以在用户电路的运行过程中,使用观测硬件电路而非可编程逻辑资源实现对待观测信号及其对应的参考信号的在线对比观测,从而确定待观测信号的相对行为,以满足相应的观测需要,可以保证稳定实现观测目标。
附图说明
图1是本申请一个实施例的观测硬件电路的电路图。
图2是本申请另一个实施例的观测硬件电路的电路图。
图3是本申请另一个实施例的观测硬件电路的电路图。
图4是本申请另一个实施例的观测硬件电路的电路图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种基于观测硬件电路对比观测FPGA内部信号的方法,该方法基于对FPGA芯片的硬件改进设计以及相应的软件功能配置共同实现,本申请分为两部分分别介绍:
一、对FPGA芯片的硬件改进设计。
本申请中的FPGA芯片除了包含常规的可编程逻辑资源之外,还设计了专门的观测硬件电路、也即还包括额外增加的硬件资源。观测硬件电路包括通过第一观测路径1相连的观测点2和第一观测管脚3,以及,通过第二观测路径4相连的参考点5和第二观测管脚6。
观测点2和参考点5分别是FPGA芯片内部可编程逻辑资源的输出口。FPGA芯片内部可编程逻辑资源至少包括可编程模块以及互联资源模块,可编程模块包括CLB(基本逻辑单元)、BRAM、IOB、DSP和PC等,互联资源模块包括绕线盒和互联线,则可选的,观测硬件电路中的观测点2/参考点5为可编程模块的输出口或互联资源模块中的绕线盒的输出口。如图1所示,现有的FPGA芯片通常采用Column-Based架构,可编程逻辑资源7在FPGA芯片内部按行列式结构排布,则可以根据需要选择在相应的可编程逻辑资源7的输出口处设置硬件资源的观测点2和参考点5,再分别经过专门的观测线路3连接到对应的观测管脚。
第一观测路径1和第二观测路径4分别具有各自对应的预定时延,且可以通过调整观测路径的绕线方式调整时延,使得观测时延符合预设要求。且在本申请中,通常配置第一观测路径1和第二观测路径4之间的延时差值小于预定阈值,也即在误差范围内保证第一观测路径1和第二观测路径4的时延相似。比如一种典型的布设方式如图1所示,观测点2和参考点5布设的距离不超过设定值,且第一观测路径1和第二观测路径4的绕线方式相同。
观测硬件电路是基于常规电路组件制作实现的硬件资源,因此采用常规的FPGA制作工艺即可实现,可以认为本申请中的FPGA芯片是基于现有的仅有可编程逻辑资源的常规FPGA额外增加观测硬件电路以后修改得到的。
二、软件相应配置。
基于本申请这种内置专门的观测硬件电路的FPGA芯片,确定在FPGA芯片上运行的用户电路,用户电路是需要利用FPGA芯片内的可编程逻辑资源实现的、用于实现用户设计功能的电路结构。
将用户电路中产生的待观测信号的电路结构布局在观测点2处、将待观测信号对应的参考信号的电路结构布局在参考点5处作为约束条件,在约束条件下基于FPGA芯片内部的可编程逻辑资源生成用户电路对应的配置码流并加载到FPGA芯片上。FPGA芯片基于配置码流形成相应的用户电路,并且用户电路中的待观测信号由观测点2处的可编程逻辑资源实现、待观测信号对应的参考信号由参考点5实现。因此在用户电路的运行过程中,待观测信号经由所在的可编程逻辑资源的输出口处的观测点2、经由第一观测路径1连接到第一观测管脚3传输到FPGA芯片外进行观测,同时,待观测信号对应的参考信号经由所在的可编程逻辑资源的输出口处的参考点5、经由第二观测路径4连接到第二观测管脚6传输到FPGA芯片外进行观测,也即可以对待观测信号及其对应的参考信号同时输出进行对比观测,以确定待观测信号相对于参考信号的相对行为,以满足相应的观测需求,待观测信号的参考信号为与其相关的信号,根据实际需要配置。可选的,参考信号与其对应的待观测信号为同步信号,或者,为同频信号,或者,参考信号的频率是待观测信号的整数倍频。而在选取信号类型时,待观测信号对应的参考信号为主时钟信号或预定的用户时钟信号。一个比较典型的应用是,可以通过将待观测信号及其参考信号对比观测确定待观测信号的具体时序。再一个比较典型的应用是,可以将两个时钟树的输出分别作为待观测信号及其参考信号从而确定时钟偏斜(Clock Skew)。
进一步可选的,在另一个实施例中,本申请的FPGA芯片为多裸片FPGA且内部包括若干个具有电路连接关系的FPGA裸片,则每个FPGA裸片分别引出第一观测管脚和第二观测管脚,每个FPGA裸片内部分别形成有上述电路,则可以对各个FPGA裸片分别按照本申请的提供的方法进行观测。
观测硬件电路的一种实现方式是,仅在一个可编程逻辑资源的输出口设置信号点作为观测点2。另一个实现方式是,在多个可编程逻辑资源的输出口处设置多个信号点,根据实际需要从中选择一个观测点2,则可选的,观测硬件电路还包括第一路径选通电路、第一多位选择器和第一调试管脚,第一路径选通电路的输入端连接的各个信号点通过第一路径选通电路内部的不同路径连接到第一观测管脚,第一多位寄存器连接并控制第一路径选通电路不同路径的通断,信号点为可编程逻辑资源的输出口。则在该实施例中,观测点为第一路径选通电路的输入端连接的其中一个信号点,则第一多位寄存器根据从第一调试管脚获取到的第一调试指令SEL1控制选通观测点至第一观测管脚的路径,与第一观测管脚连通的信号点即为观测点。
当有多个信号点可以被选择成为观测点时,参考点的实现方式也有多种,主要可以分为如下两大类:
第一类情况:观测点2对应的参考点5也可以从多个可编程逻辑资源的输出口处的信号点中选择得到。则在该实施例中,观测硬件电路还包括第二路径选通电路、第二多位选择器和第二调试管脚,第二路径选通电路的输入端连接的各个信号点通过第二路径选通电路内部的不同路径连接到第二观测管脚,第二多位寄存器连接并控制第二路径选通电路不同路径的通断。参考点为第二路径选通电路的输入端连接的其中一个信号点,被选为参考点的信号点处的信号即为参考信号,则第二多位寄存器根据从第二调试管脚获取到的第二调试指令SEL2控制选通参考点至第二观测管脚的路径。
在该实施例中,需要保证被选择作为观测点2的信号点形成的第一观测路径与被选择作为参考点5的信号点形成的第二观测路径之间的时延差值要小于预定阈值,具有两种不同的实现方式:
(1)用于选定形成观测点的信号点与用于选定形成参考点的信号点相互独立。第一路径选通电路的输入端连接的每个信号点与第二路径选通电路的输入端连接的每个信号点分别对应形成一组信号点,且一组信号点中的两个信号点之间的布设距离不超过预定距离且经过相同的绕线路径连接到对应的观测管脚。如图2中A1处的信号点与B1处的信号点形成一组信号点,A2处的信号点与B2处的信号点形成一组信号点,其他以此类推。则一组信号点中与第一路径选通电路相连的信号点为观测点、另一个信号点为参考点,比如当选择A1处的信号点为观测点时,对应的B1处的信号点即为参考点5。
在这种情况中,第一路径选通电路和第二路径选通电路可以采用相同的电路实现,比如采用一个或多个形成级联结构的多路选择器实现。
在该实施例中,由于被选为观测点和参考点的信号点形成一组对应的信号点,因此当第一路径选通电路选通一个信号点作为观测点时、第二路径选通电路需要选通对应的一个信号点作为参考信号,因此一个待观测信号通常对应一个参考信号,但是不同的待观测信号对应的参考信号可以相同也可以不同。比如A1处的待观测信号即对应B1处的参考信号,A2处的待观测信号即对应B2处的参考信号,B1处的参考信号与B2处的参考信号可以相同也可以不同。
(2)用于选定形成观测点的信号点与用于选定形成参考点的信号点存在共用的现象,也即一个信号点可以被选择成为观测点、或者也可以被选择成为参考点。则第一路径选通电路和第二路径选通电路的输入端连接相同的若干个信号点,且各个信号点形成H型树形结构使得各个信号点到第一路径选通电路和第二路径选通电路的时延相同,观测点和参考点分别为其中的任意两个不同的信号点。在这种实施方式中,第一路径选通电路和第二路径选通电路可以采用相同的电路实现,比如采用一个或多个形成级联结构的多路选择器实现,与各个信号点的连接方式可以根据实际情况设定,只需使得各个信号点形成H型树形结构即可,比如图3示出了一种连接方式,以第一路径选通电路为例,其包括四个第一级多路选择器MUX1-1、MUX1-2、MUX1-3和MUX1-4分别连接各个信号点,然后四个第一级多路选择器再通过MUX2连接到第一观测管脚,第二路径选通电路也采用这种电路结构,图中未示出。
由于任意两个信号点到第一路径选通电路和第二路径选通电路的时延相同,且第一路径选通电路到第一观测管脚的时延与第二路径选通电路到第二观测管脚的时延的差值不超于预定阈值,则选取任意两个信号点作为观测点和参考点时,所形成的两条观测路径之间的时延差值都小于预定阈值。
在该实施例中,由于可以选择任意的信号点作为观测点/参考点,因此当第一路径选通电路选通一个信号点作为观测点时,第二路径选通电路选通不同的信号点作为参考信号,则同一个待观测信号对应多个不同的参考信号。当第一路径选通电路选通不同的信号点作为观测点时,第二路径选通电路选通同一个信号点作为参考信号、则不同的待观测信号对应相同的参考信号,或者,第二路径选通电路选通不同的信号点作为参考信号、则不同的待观测信号对应不同的参考信号。以不同的信号点处的信号均不相同为例,比如在选择K1处的信号点作为观测点时,可以选通K2处的信号点作为参考点,也可以选通K2处的信号点作为参考点,则相应的K1处的待观测信号可以对应不同的信号。再比如,当选择K1处的信号点作为观测点时可以选通K2处的信号点作为参考点,而在选择K3处的信号点作为观测点时也可以选通K2处的信号点作为参考点,或者在选择K3处的信号点作为观测点时可以选通K4处的信号点作为参考点。
在上述两种情况中,多个不同的参考信号为同步信号或异步信号,且多个不同的参考信号的频率相同或不同。
第二类情况:仅设置一个信号点作为参考点,则在这种情况中,需要保证在选取不同的信号点作为观测点时,第一观测路径和第二观测路径之间的时延差值都要小于预定阈值,具有两种不同的实现方式:
(1)参考点为全局时钟缓冲器(GBUF)的输出端,则第二观测路径中设置有时延调节电路,如图4所示,FPGA芯片基于配置码流形成用户电路时还对时延调节电路的时延进行配置、使得第二观测路径与第一路径选通电路的输入端的任意信号点至第一观测管脚的路径之间的时延差值小于预定阈值。
(2)参考点布设在预定位置处,使得第二观测路径与第一路径选通电路的输入端的任意信号点至第一观测管脚的路径之间的时延差值小于预定阈值,这样选取第一路径选通电路的输入端的任意一个信号点作为观测点时,都可以满足两条观测路径之间的时延差值小于预定阈值的要求。通常可以将参考点布设在第一路径选通电路的输入端连接的若干个可被选为参考点的信号点的中心位置处。可选的,第一路径选通电路的输入端连接的若干个信号点呈行列式分布,则参考点位于任意一行信号点或任意一列信号点的中心位置处。或者,第一路径选通电路的输入端连接的若干个信号点分布在具有预定范围的信号点区域内,则参考点位于所有信号点区域的中心位置处。
基于第二类情况,由于仅设置一个信号点作为参考点,因此选取不同的信号点作为观测点时,不同的待观测信号通常对应同一个参考信号。
在实际应用时,无论采用上述第一类情况还是第二类情况,都以采用一套参考点的硬件电路输出一个参考信号为例,但实际可以设置多套如上的电路从而同时输出多个参考信号。