基于观测硬件电路观测fpga内部信号的方法

文档序号:8232 发布日期:2021-09-17 浏览:42次 英文

基于观测硬件电路观测FPGA内部信号的方法

技术领域

本发明涉及FPGA

技术领域

,尤其是一种基于观测硬件电路观测FPGA内部信号的方法。

背景技术

当用户电路在FPGA上实现并在FPGA上正常运行时,为了确定用户电路在FPGA上的运行过程正确且符合设计思想,通常需要观测用户电路内部某些特定信号的行为或波形。

目前的做法是,先在FPGA上实现用户电路并完成布局布线,此时FPGA内部的部分资源会被用户电路占用,但仍有部分空置未被使用的资源。然后选定用户电路的待观测信号,其已对应到FPGA内部布局布线资源,将待观测信号经由FPGA内部未被占用的绕线资源连接到未被占用的管脚作为观测管脚。将选定的待观测信号的绕线路径及观测管脚加入到用户电路的布局布线成为新的布局布线,对新的布局布线生成码流下载到FPGA正常运行,此时即可由观测管脚对待观测信号进行观测。

但在这种做法中,若FPGA实现用户电路后无未被占用的管脚可使用,或者待观测信号无法利用未被占用的绕线资源连接到相应管脚,则无法实现上述功能,因此现有的这种做法是较为受限的,并不能保证每次都成功的对待观测信号进行观测。

发明内容

本发明人针对上述问题及技术需求,提出了一种基于观测硬件电路观测FPGA内部信号的方法,本发明的技术方案如下:

一种基于观测硬件电路观测FPGA内部信号的方法,该方法包括:

确定在FPGA芯片上运行的用户电路,FPGA芯片内部包含可编程逻辑资源以及观测硬件电路,观测硬件电路包括观测点和观测管脚,观测点通过观测线路连接到观测管脚,观测硬件电路中的观测点为FPGA芯片内部可编程逻辑资源的输出口;

将用户电路中产生的待观测信号的电路结构布局在观测点处作为约束条件,在约束条件下基于FPGA芯片内部的可编程逻辑资源生成用户电路对应的配置码流并加载到FPGA芯片上;

FPGA芯片基于配置码流形成用户电路,通过观测管脚在用户电路的运行过程中对观测点处的待观测信号进行观测。

其进一步的技术方案为,观测硬件电路包括若干个观测点,则观测硬件电路还包括路径选通电路和多位寄存器,各个观测点通过路径选通电路内部的不同路径连接到观测管脚,多位寄存器与调试管脚相连,多位寄存器连接并控制路径选通电路中不同路径的通断;

则在生成用户电路对应的配置码流时,将用户电路的待观测信号的电路结构布局在其中一个观测点处作为约束条件;在用户电路的运行过程中,多位寄存器根据从调试管脚获取到的调试指令输出相应的选通信号、控制路径选通电路选通待观测信号对应的观测点与观测管脚之间的路径、对选中的备选待观测信号进行观测,选通信号的每一个信号位对应一个观测点。

其进一步的技术方案为,路径选通电路包括一个多路选择器,多路选择器的输入端分别连接各个观测点、输出端连接观测管脚;

或者,路径选通电路包括多个依次级联的多路选择器,每个第一级的多路选择器的输入端分别连接对应的各个观测点,最后一级的多路选择器的输出端连接观测管脚。

其进一步的技术方案为,当路径选通电路包括多个级联的多路选择器时,每个第一级的多路选择器及其对应连接的各个观测点均位于预定区域范围内。

其进一步的技术方案为,当所有观测点在FPGA芯片内部按行列结构排布时,各个第一级的多路选择器排列形成行列结构,且每个第一级的多路选择器对应连接的各个观测点均位于同一行列结构中或者位于连续的若干个行列结构中。

其进一步的技术方案为,当所有观测点在FPGA芯片内部按行列结构排布时,每相邻两个观测点之间间隔若干可编程逻辑资源。

其进一步的技术方案为,路径选通电路为通过若干个开关管形成的二维开关阵列,二维开关阵列包括若干个输入端以及一个输出端,二维开关阵列的每个输入端分别连接一个观测点、输出端连接观测管脚。

其进一步的技术方案为,当路径选通电路包括多个多路选择器或者若干个开关管时,观测硬件电路包括一个多位寄存器分别连接至各个受控器件,或者,观测硬件电路包括多个多位寄存器、每个多位寄存器分别连接到对应的若干个受控器件,受控器件为多路选择器或开关管。

其进一步的技术方案为,调试管脚为FPGA芯片的动态可重配端口或边界扫描链的边界扫描端口。

其进一步的技术方案为,FPGA芯片内部可编程逻辑资源至少包括可编程模块以及互联资源模块,观测硬件电路中的观测点包括可编程模块的输出口和/或互联资源模块中的绕线盒的输出口。

其进一步的技术方案为,FPGA芯片内部所有可编程模块的部分输出口均作为观测点,或者,FPGA芯片内部部分可编程模块的部分输出口均作为观测点;

FPGA芯片内部所有绕线盒的部分输出口均作为观测点,或者,FPGA芯片内部部分绕线盒的部分输出口均作为观测点。

其进一步的技术方案为,每个观测点至观测管脚的观测线路具有预定的观测时延。

其进一步的技术方案为,任意两条观测线路的观测时延之间的差值小于预定阈值。

本发明的有益技术效果是:

本申请公开了一种基于观测硬件电路观测FPGA内部信号的方法,该方法通过对FPGA芯片进行硬件改进设计并结合相应的软件功能配置共同实现,通过在FPGA芯片内加入单独的观测硬件电路,并以观测硬件电路中观测点的位置作为待观测信号的布局位置的约束条件来生成配置码流,可以在用户电路的运行过程中,使用观测硬件电路而非可编程逻辑资源实现对待观测信号的在线观测,避免了因为没有空闲的可编程逻辑资源而无法实现观测功能的现象,可以保证稳定实现观测目标。

附图说明

图1是本申请一个实施例中的观测硬件电路的结构示意图。

图2是本申请另一个实施例中的观测硬件电路的结构示意图。

图3是本申请又一个实施例中的观测硬件电路的结构示意图。

图4是本申请又一个实施例中的观测硬件电路的结构示意图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步说明。

本申请公开了一种基于观测硬件电路观测FPGA内部信号的方法,该方法基于对FPGA芯片的硬件改进设计以及相应的软件功能配置共同实现,本申请分为两部分分别介绍:

一、对FPGA芯片的硬件改进设计。

本申请中的FPGA芯片除了包含常规的可编程逻辑资源之外,还设计了专门的观测硬件电路、也即还包括额外增加的硬件资源。观测硬件电路包括观测点和观测管脚以及观测线路,观测点通过专用的观测线路连接到观测管脚,观测硬件电路中的观测点为FPGA芯片内部可编程逻辑资源的输出口。观测硬件电路是基于常规电路组件制作实现的硬件资源,因此采用常规的FPGA制作工艺即可实现,可以认为本申请中的FPGA芯片是基于现有的仅有可编程逻辑资源的常规FPGA额外增加观测硬件电路以后修改得到的。

FPGA芯片内部可编程逻辑资源至少包括可编程模块以及互联资源模块,可编程模块包括CLB(基本逻辑单元)、BRAM、IOB、DSP和PC等,互联资源模块包括绕线盒和互联线,则可选的,观测硬件电路中的观测点为可编程模块的输出口或互联资源模块中的绕线盒的输出口。如图1所示,现有的FPGA芯片通常采用Column-Based架构,可编程逻辑资源1在FPGA芯片内部按行列式结构排布,则可以根据需要选择在任意一个可编程逻辑资源1的输出口处设置硬件资源的观测点2,再经过专门的观测线路3连接到观测管脚4。

观测点2至观测管脚4的观测线路3具有预定的观测时延,且可以通过调整观测点和/或观测管脚的摆放位置,和/或调整观测线路的绕线方式调整观测时延,使得观测时延符合预设要求。

二、软件相应配置。

基于本申请这种内置专门的观测硬件电路的FPGA芯片,确定在FPGA芯片上运行的用户电路,用户电路是需要利用FPGA芯片内的可编程逻辑资源实现的、用于实现用户设计功能的电路结构。将用户电路中产生的待观测信号的电路结构布局在观测点处作为约束条件,在该约束条件下基于FPGA芯片内部的可编程逻辑资源进行布局布线继而生成用户电路对应的配置码流。比如在图1中,将用户电路中产生的待观测信号的电路结构布局在观测点2处、由观测点2处的可编程逻辑资源A实现。得到配置码流后,将配置码流加载到FPGA芯片上,FPGA芯片基于配置码流形成相应的用户电路,并且用户电路中的待观测信号由观测点处的可编程逻辑资源实现,因此待观测信号经由所在的可编程逻辑资源的输出口处的观测点、经由专门的观测线路连接到观测管脚传输到FPGA芯片外进行观测。因此本申请使用专门的观测硬件电路在用户电路的运行过程中对观测点处的待观测信号进行观测,可以有效避免没有空闲的可编程逻辑资源来实现观测功能的现象,从而保证持续稳定的实现在线观测功能。

在另一个实施例中,FPGA芯片内增加的观测硬件电路包括若干个观测点,在该实施例中,观测硬件电路中的观测点包括可编程模块的输出口和/或互联资源模块中的绕线盒的输出口。具体的,可以将FPGA芯片内部所有可编程模块的部分输出口均作为观测点,或者,FPGA芯片内部部分可编程模块的部分输出口均作为观测点。对应的,可以将FPGA芯片内部所有绕线盒的部分输出口均作为观测点,或者,FPGA芯片内部部分绕线盒的部分输出口均作为观测点。在一个特殊的情况中,也可以将所有可编程模块的所有输出口以及所有绕线盒的所有输出口都作为观测点,将所有可编程逻辑资源的所有输出口都作为观测点,则在生成用户电路对应的配置码流时,待观测信号随意布局在任意位置处都可以满足布局在观测点处的条件,则此时相当于无需再设置布局布线的约束条件,但这样会导致观测点太多、电路过于冗杂,且会存在重复覆盖的问题,没有必要因此通常不会这样操作。

可选的,在有多个观测点的情况下,所有观测点在FPGA芯片内部有多种分布方式,包括随机分布,或者,按区域分布在若干个区域内,或者按行列结构排布。当所有观测点在FPGA芯片内部按行列结构排布时,每相邻两个观测点之间间隔若干可编程逻辑资源且不同的观测点之间的间隔可以相同也可以不同。如图2以观测点在FPGA芯片按区域分布为例,观测点分布在4个区域内,每个区域内包括4个观测点。图3以观测点在FPGA芯片按行列结构排布为例,同一行的相邻两个观测点之间间隔两个可编程逻辑资源、同一列的相邻两个观测点之间间隔一个可编程逻辑资源。

这多个观测点可以分别使用各自独立的观测管脚,但是这样会占用过多管脚,因此通常可选的,这多个观测点共用一个观测管脚,则在该实施例中,观测硬件电路还包括路径选通电路和多位寄存器,各个观测点通过路径选通电路内部的不同路径连接到观测管脚,多位寄存器与调试管脚5相连,多位寄存器连接路径选通电路并根据调试管脚输入的调试指令控制路径选通电路中不同路径的通断。

则在该实施例中,基于这种硬件结构,在生成用户电路对应的配置码流时,将用户电路的待观测信号的电路结构布局在其中一个观测点处作为约束条件。在用户电路的运行过程中,多位寄存器根据从调试管脚获取到的调试指令输出相应的选通信号、控制路径选通电路选通待观测信号对应的观测点与观测管脚之间的路径、对选中的备选待观测信号进行观测,选通信号的每一个信号位对应一个观测点。

该实施例非常适合用户电路内部存在多个可能需要被观测的备选待观测信号的情况,则将用户电路内部可能的备选待观测信号的电路结构分别布局在各个观测点处作为约束条件生成配置码流,在用户电路的运行过程中,从所有备选待观测信号中选取一个作为实际要观测的待观测信号并生成相应的调试指令通过调试管脚输入,则多位寄存器根据从调试管脚获取到的调试指令输出相应的选通信号、控制路径选通电路选通实际需要观测的待观测信号对应的观测点与观测管脚之间的路径。当需要更换其他有备选待观测信号作为实际要观测的待观测信号时,生成新的调试指令,多位寄存器进行内容更新,并控制路径选通电路选通相应的路径。但由于观测点的数目比较多,因此多位寄存器的位宽通常也较大,为了提高多位寄存器的数据更新速度,一般会采用扫描链或多位宽总线来读写多位寄存器,但即便如此,在该实施例中,多位寄存器的内容更新速度也很难达到实时的要求,会导致切换的时候存在一定的时延,因此很难快速控制路径选通电路切换路径,所以该实施例较为适用于需要在不同时段切换不同的待观测信号但对实时性要求并不高的场景。

在该实施例中,每个观测点至观测管脚的观测线路分别具有各自预定的观测时延,且可选的,任意两条观测线路的观测时延之间的差值小于预定阈值。

在该实施例中,调试管脚可以与观测管脚一样是单独设置的专门的管脚,也可以复用FPGA芯片上的已有管脚。当调试管脚复用FPGA芯片上的已有管脚时,调试管脚为FPGA芯片的动态可重配端口(Dynamic Reconfiguration Port,DRP)或边界扫描链的边界扫描端口。

在该实施例中,路径选通电路具有多种不同的实现方式,分别介绍如下:

实现方式1:在一个实施例中,路径选通电路包括一个多路选择器,该多路选择器的输入端分别连接各个观测点、输出端连接观测管脚,多位寄存器连接多路选择器的选择控制端。

实现方式2:在另一个实施例中,路径选通电路包括多个依次级联的多路选择器,每个第一级的多路选择器的输入端分别连接对应的各个观测点,各个第一级的多路选择器的输出端连接后一级的多路选择器的输入端,依次连接直至连接到最后一级的多路选择器的输入端,最后一级的多路选择器的输出端连接观测管脚,则多位寄存器连接各个位于各级的多路选择器的选择控制端。如图2和3都以路径选通电路包括形成两级级联的多路选择器为例。

当路径选通电路包括多个级联的多路选择器时,各层次的多路选择器的布设位置可以按需分布,比如一种常见的做法是,与各个观测点直接相连的第一级的多路选择器靠近所连接的观测点布设,而最后一级的多路选择器靠近观测管脚布设。而根据观测点的分布情况不同,第一级的多路选择器的布设情况也不同,在一个实施例中,观测点在FPGA芯片内部按区域分布、也即观测点分布在多个不同的区域内,则可以配置每个预定区域范围内的观测点对应连接同一个第一级的多路选择器,则每个第一级的多路选择器及其对应连接的各个观测点均位于预定区域范围内,如图2所示。在另一个实施例中,观测点在FPGA芯片内部按行列结构排布,则各个第一级的多路选择器排列形成行列结构,且每个第一级的多路选择器对应连接的各个观测点均位于同一行列结构中或者位于连续的若干个行列结构中,如图3所示。除了第一级和最后一级的多路选择器之外,中间各级的多路选择器可以根据实际需要布设在相应位置。

实现方式3:在另一个实施例中,路径选通电路为通过若干个开关管形成的二维开关阵列,二维开关阵列包括若干个输入端以及一个输出端,二维开关阵列的每个输入端分别连接一个观测点、输出端连接观测管脚,多位寄存器连接并控制各个开关管的通断从而使得不同的输入端与输出端连通。开关管可以采用MOS管实现,则二维开关阵列包括若干个第一选通MOS管和第二选通MOS管,每个第一选通MOS管的源极分别作为二维开关阵列的一个输入端连接一个观测点、漏极连接对应的第二选通MOS管的源极,各个第二选通MOS管的漏极均连接观测管脚,多位寄存器连接各个第一选通MOS管和第二选通MOS管的栅极,如图4所示。

在上述实现方式2或实现方式3中,当路径选通电路包括多个多路选择器或者若干个开关管时,观测硬件电路包括一个多位寄存器分别连接至各个受控器件,或者,观测硬件电路包括多个多位寄存器、每个多位寄存器分别连接到对应的若干个受控器件,受控器件为多路选择器或开关管。如图2以观测硬件电路包括一个多位寄存器分别连接至各个受控器件为例,多位选择器连接所有5个多路选择器提供SEL。如图3以观测硬件电路包括多位寄存器1和多位寄存器2为例,多位寄存器1连接第一级的三个多路选择器并提供SEL1,多位寄存器2连接第二级也即最后一级的多路选择器并提供SEL2。如图4以观测硬件电路包括多位寄存器1和多位寄存器2为例,多位寄存器1连接各个第一选通MOS管并提供SEL1,多位寄存器2连接各个第二选通MOS管并提供SEL2。需要说明的是,当有多个多位寄存器时,可以按照上述示例根据受控器件的功能或者所在的级联层级划分对应的多位寄存器,也可以不按该方式设置。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:退化模拟模型建立方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类