CN113419906B - 一种多采样频率的fpga在线调试方法 - Google Patents
一种多采样频率的fpga在线调试方法 Download PDFInfo
- Publication number
- CN113419906B CN113419906B CN202110547413.1A CN202110547413A CN113419906B CN 113419906 B CN113419906 B CN 113419906B CN 202110547413 A CN202110547413 A CN 202110547413A CN 113419906 B CN113419906 B CN 113419906B
- Authority
- CN
- China
- Prior art keywords
- sampling
- circuit
- clock
- fpga
- same
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2215—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种多采样频率的FPGA在线调试方法,涉及FPGA技术领域,该方法由FPGA基于配置码流利用可编程逻辑资源实现用户电路和监控电路,在用户电路的运行过程中,监控电路内部的多个采样子电路对用户电路的信号变化速度不同的多组待观测信号分别使用不同的采样时钟进行采样,采样时钟与待观测信号的控制时钟相匹配且呈正相关,使得采样时钟的周期与相应的待观测信号的信号预期变化周期一致,因此可以在保证监控到信号变化的前提下,减少采样重复不变的无效数据,从而提高监控调试的效率。
Description
技术领域
本发明涉及FPGA技术领域,尤其是一种多采样频率的FPGA在线调试方法。
背景技术
当用户电路在FPGA上实现并在FPGA上正常运行时,为了确定用户电路在FPGA上的运行过程正确且符合设计思想,通常需要观测用户电路内部某些特定信号的行为或波形。为了实现这个功能,目前的做法是在FPGA上增加调试电路,当用户电路在FPGA上正常运行时,利用调试电路采样用户电路的待观测信号并输出到FPGA进行实时观测监控继而实现相应的调试。
在实际实现时,一般需要对用户电路的多个待观测信号监控调试,一般的做法时,监控电路按照同一个采样时钟对各个待观测信号进行采样然后进行存储,采样结束后再将存储的数据输出到FPGA外进行观测。这种做法存在的问题是,有些待观测信号的变化缓慢、信号有可能很长时间都不发生变化,因此监控电路连续采样到的多个数据都是相同的,这些重复采样的数据意义不大。而由于监控电路需要将采样到的数据存储后再输出,因此采样过程的总样本数受限于存储容量,在存储容量有限的情况下、总样本数也受限,这其中若有较多重复采样的无意义数据,则会导致调试效率较低。
发明内容
本发明人针对上述问题及技术需求,提出了一种多采样频率的FPGA在线调试方法,本发明的技术方案如下:
一种多采样频率的FPGA在线调试方法,该方法包括:
在对用户电路进行调试时,将由用户电路和监控电路构成的全局电路对应的配置码流加载到FPGA上,FPGA基于配置码流利用可编程逻辑资源实现用户电路和监控电路,监控电路连接用户电路;
监控电路包括至少两个采样子电路和一个样本输出模块,每个采样子电路分别对应一个信号组,监控电路在用户电路运行过程中,分别通过各个采样子电路按照各个信号组对应的采样时钟以相应的采样频率对信号组中的各个待观测信号进行采样并存储,并通过样本输出模块利用FPGA内建的边界扫描链将各个采样子电路存储的数据传输到FPGA外进行监控调试;每个待观测信号对应的采样时钟与待观测信号的控制时钟相匹配且呈正相关且存在至少两个采样子电路使用的采样时钟不同。
其进一步的技术方案为,控制时钟在同一预设时钟区间内的若干个待观测信号属于同一个信号组并对应同一个采样时钟,预设时钟区间的时钟频率越高、对应的采样时钟的频率越高。
其进一步的技术方案为,一个或多个功能模块内的所有待观测信号属于同一个信号组并对应同一个采样时钟,功能模块的时钟频率越高、对应的采样时钟的频率越高。
其进一步的技术方案为,一个或多个时钟域内的所有待观测信号属于同一个信号组并对应同一个采样时钟,时钟域的时钟频率越高、对应的采样时钟的频率越高。
其进一步的技术方案为,一个或多个数据通路内的所有待观测信号属于同一个信号组并对应同一个采样时钟,数据通路的时钟频率越高、对应的采样时钟的频率越高。
其进一步的技术方案为,监控电路还包括至少一个触发模块,各个采样子电路分别对应不同的触发模块或者存在至少两个采样子电路对应同一个触发模块,每个触发模块用于获取触发信号并在检测到触发信号满足预设触发条件时向对应的采样子电路发送采样使能信号使得采样子电路开始采样;其中,不同的触发模块的触发信号不同和/或预设触发条件不同。
其进一步的技术方案为,各个采样子电路使用的采样参数相同,或,存在至少两个采样子电路使用的采样参数不同;其中,采样参数包括采样长度和/或采样次数。
其进一步的技术方案为,各个采样时钟的频率呈倍数关系,则监控电路包括锁相环电路,锁相环电路连接用户电路获取基准时钟信号,锁相环电路输出各个采样时钟。
其进一步的技术方案为,各个采样时钟的绕线均走时钟树,且各个采样时钟占用一个全局时钟树或一个区域时钟树。
其进一步的技术方案为,每个采样子电路中分别包括一个采样模块和一个存储模块,各个采样子电路中的存储模块的存储性能均相同,或者,存在至少两个采样子电路中的存储模块存在至少一项存储性能不同,存储模块的存储性能包括写入速度、存储宽度和存储深度中的至少一种。
其进一步的技术方案为,FPGA基于配置码流中与用户电路对应的第一部分利用第一类资源形成用户电路、并基于配置码流中与监控电路对应的第二部分利用第二类资源形成监控电路;
第一类资源和第二类资源分别表示FPGA内部不同部分的可编程逻辑资源,第一类资源是FPGA内部在未对用户电路进行调试时用于实现用户电路的可编程逻辑资源,且第一类资源和第二类资源中具有相同资源类型的可编程逻辑资源的硬件结构相同。
本发明的有益技术效果是:
本申请公开了一种多采样频率的FPGA在线调试方法,该方法利用监控电路内部多个采样子电路,对信号变化速度不同的待观测信号使用不同的采样时钟进行采样,采样时钟与待观测信号的控制时钟相匹配且呈正相关,由于采样时钟的周期与相应的待观测信号的信号预期变化周期一致,因此可以在保证监控到信号变化的前提下,减少采样重复不变的无效数据,从而提高监控调试的效率。
附图说明
图1是本申请中监控电路与用户电路的一种电路连接结构图。
图2是本申请中监控电路与用户电路的另一种电路连接结构图。
图3是FPGA内部的可编程逻辑资源的排布示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种多采样频率的FPGA在线调试方法,该方法的实现过程如下:
在对用户电路进行调试时,将由用户电路和监控电路构成的全局电路对应的配置码流加载到FPGA上。本申请中的全局电路是需要利用FPGA上的可编程逻辑资源实现并在FPGA上运行的全部电路结构,全局电路至少包括用户电路,用户电路是全局电路中用于实现用户设计功能的电路结构。当对用户电路进行调试时,全局电路除了包括用户电路之外,还包括连接至用户电路的监控电路,监控电路是全局电路中用于实现对用户电路的信号监控功能的电路结构,则在这种情况中全局电路由用户电路和监控电路构成。
本领域技术人员知道的是,在输入全局电路后,需要经过综合、装箱、布局、布线和时序分析等步骤才能生成全局电路对应的配置码流,本申请对这些中间步骤不再详细展开描述。
FPGA基于配置码流利用可编程逻辑资源实现用户电路和监控电路,监控电路连接用户电路。
其中,请参考图1,监控电路包括至少两个采样子电路和一个样本输出模块,每个采样子电路分别对应一个信号组,一个信号组中包括一个或若干个待观测信号。监控电路在用户电路运行过程中,分别通过各个采样子电路按照各个信号组对应的采样时钟以相应的采样频率对信号组中的各个待观测信号进行采样并存储,且存在至少两个采样子电路使用的采样时钟不同。每个待观测信号对应的采样时钟与待观测信号的控制时钟相匹配且呈正相关,也即每个采样子电路的采样频率与对应信号组中的待观测信号的控制时钟相匹配,也即待观测信号的控制时钟的频率越高、待观测信号的变化越快,则相应的采样子电路的采样频率也越高,通常设置采样时钟的周期与相应的待观测信号的信号预期变化周期一致。如图1以监控电路包括三个采样子电路为例,采样子电路1按照采样时钟CLK1对待观测信号Sig1进行采样并存储,采样子电路2按照采样时钟CLK2对待观测信号Sig2进行采样并存储,采样子电路3按照采样时钟CLK3对待观测信号Sig3进行采样并存储。
采样完成后,通过样本输出模块利用FPGA内建的边界扫描链将各个采样子电路存储的数据传输到FPGA外进行监控调试。样本输出模块按照先入先出次序将存储的数据输出,样本输出模块主要由移位寄存器实现。
当一个信号组中包括多个待观测信号时,这多个待观测信号的控制时钟的频率都相同,或者都在一定的区间范围内,将各个待观测信号划分为若干个信号组具有多种方式,本申请以如下不同实施例进行介绍:
1、独立按各个待观测信号的控制时钟分。确定控制时钟在同一预设时钟区间内的若干个待观测信号属于同一个信号组并对应同一个采样时钟。预设时钟区间的时钟频率越高、对应的采样时钟的频率越高。每个预设时钟区间的频率范围都是预先设定的、对应的采样时钟的频率也预先设定。
2、按待观测信号所属的功能模块分。该实施例中所说的功能模块根据层次化网表中的module划分,通常一个功能模块有一个主时钟,该功能模块内部所有信号都使用该主时钟作为控制时钟,因此同一个功能模块内的所有待观测信号的控制时钟通常是相同的。
在该实施例中,可以将一个功能模块对应一个信号组,也可以将多个功能模块对应一个信号组,则一个或多个功能模块内的所有待观测信号属于同一个信号组并对应同一个采样时钟,功能模块的时钟频率越高、对应的采样时钟的频率越高。
需要说明的是,当多个功能模块对应一个信号组时,这多个功能模块的主时钟相同或者虽然不同但在同一预设的区间范围内,与第一个实施例类似。因此该实施例可以看做第一个实施例的进一步延伸,也即通过该实施例所确定的一个信号组中的各个待观测信号的控制时钟在同一预设时钟区间内、且这多个待观测信号属于相应的同一个或多个功能模块。
3、按待观测信号所属的时钟域分。与第二个实施例类似,一个时钟域有一个主时钟,该时钟域内部所有信号都使用该主时钟作为控制时钟,因此同一个时钟域内的所有待观测信号的控制时钟通常是相同的。
在该实施例中,可以将一个时钟域对应一个信号组,也可以将多个时钟域对应一个信号组,则一个或多个时钟域内的所有待观测信号属于同一个信号组并对应同一个采样时钟,时钟域的时钟频率越高、对应的采样时钟的频率越高。
需要说明的是,当多个时钟域对应一个信号组时,这多个时钟域的主时钟相同或者虽然不同但在同一预设的区间范围内,与上述实施例类似。因此该实施例可以看作第一个实施例的进一步延伸,也即通过该实施例所确定的一个信号组中的各个待观测信号的控制时钟在同一预设时钟区间内、且这多个待观测信号属于相应的同一个或多个时钟域。
4、按待观测信号所在的数据通路分。同一个数据通路中的各个待观测信号采用同一个控制时钟,在该实施例中,可以将一个数据通路对应一个信号组,也可以将多个数据通路对应一个信号组,则一个或多个数据通路内的所有待观测信号属于同一个信号组并对应同一个采样时钟,数据通路的时钟频率越高、对应的采样时钟的频率越高。
当多个数据通路对应一个信号组时,这多个数据通路的主时钟相同或者虽然不同但在同一预设的区间范围内。因此该实施例可以看作第一个实施例的进一步延伸,也即通过该实施例所确定的一个信号组中的各个待观测信号的控制时钟在同一预设时钟区间内、且这多个待观测信号属于相应的同一个或多个数据通路。
无论各个信号组如何划分,在本申请中,如图1所示,每个采样子电路中分别包括一个采样模块和一个存储模块,采样模块按照对应的采样时钟以相应的采样频率进行采样并存储在对应的存储模块中。也即各个采样子电路具有各自的存储模块,可选的,各个采样子电路中的存储模块的存储性能均相同,或者,存在至少两个采样子电路中的存储模块存在至少一项存储性能不同,存储模块的存储性能包括写入速度、存储宽度和存储深度中的至少一种。存储模块可以采用BRAM和/或分布式存储实现。当各个采样子电路均采样完成后,样本输出模块从各个采样子电路中的存储模块中依次按数据写入的顺序逐个输出。其中,每个采样子电路达到预设的采样参数时采样完成,采样参数包括采样长度和/或采样次数,各个采样子电路使用的采样参数相同,或者,存在至少两个采样子电路使用的采样参数不同。
可选的,监控电路还包括至少一个触发模块,一种实现方式是,各个采样子电路分别对应不同的触发模块,另一种实现方式是,存在至少两个采样子电路对应同一个触发模块,如图2以每个采样子电路分别对应一个触发模块为例。无论采用哪种实现方式,各个触发模块的工作原理是类似的,都是用于获取触发信号并在检测到触发信号满足预设触发条件时向对应的采样子电路发送采样使能信号使得采样子电路开始采样,触发信号可以来自于用户电路也可以来自于FPGA外部。不同的触发模块的触发信号不同和/或预设触发条件不同。比如触发模块1使用的触发信号为“a1”、预设触发条件时“a1==b1”,触发模块2使用的触发信号为“a2”、预设触发条件时“a2==b2”,触发模块3使用的触发信号为“a1”、预设触发条件时“a1==b3”,则触发模块1和触发模块2所使用的触发信号和预设触发条件都不同,触发模块1和触发模块3使用的触发信号相同但使用的预设触发条件不同。
在本申请中,各个采样子电路所使用的各个采样时钟可以由用户电路分别独立产生、采样频率之间没有特定关系。或者,也可以由同一个基准时钟信号CLK0经过锁相环电路PLL产生,则各个采样时钟的频率呈倍数关系,这个基准时钟信号CLK0通常来自于用户电路,因此监控电路还包括锁相环电路PLL,锁相环电路PLL连接用户电路获取基准时钟信号CLK0,锁相环电路输出各个采样时钟CLK1、CLK2、CLK3……,且各个采样时钟的频率呈倍数关系,如图1所示。可选的,各个采样时钟的绕线均走时钟树,且各个采样时钟占用一个全局时钟树或一个区域时钟树,这样可以有效降低时钟偏斜。
在本申请的一个实施例中,除了按照常规的方法将全局电路在FPGA实现之外,还可以通过如下方法实现:
在该实施例提供的方法中,预先将FPGA内部的可编程逻辑资源划分为两类,第一类资源和第二类资源分别表示FPGA内部不同部分的可编程逻辑资源,用户电路和监控电路有各自专属的一类可编程逻辑资源,而且用户电路和监控电路分别由各自对应的一类资源来实现。因此第一类资源既是FPGA内部在未对用户电路进行调试时用于实现用户电路的可编程逻辑资源,也是FPGA内部在对用户电路进行调试时用于实现用户电路的可编程逻辑资源,而第二类资源是FPGA内部在对用户电路进行调试时用于实现监控电路的可编程逻辑资源。每一类资源包含的基本模块的资源类型和数量根据对应的电路预估的规模所确定,一般来说用户电路的规模大于监控电路,因此用户电路对应的第一类资源所包含的可编程逻辑资源的资源规模大于监控电路对应的第二类资源。且第一类资源和第二类资源中具有相同资源类型的可编程逻辑资源的硬件结构相同,比如第一类资源中的CLB和第二类资源中的CLB的硬件结构相同,也即本实施例并没有对FPGA内部的可编程逻辑资源的硬件结构进行修改,只是对可编程逻辑资源做了划分。
FPGA内部的可编程逻辑资源包括多个基本模块及环于每个基本模块分布的互连资源(INT),每个基本模块是一种资源类型的可编程逻辑资源,可编程逻辑资源的资源类型主要包括CLB(基本逻辑单元)、BRAM、IOB、DSP和PC等,每种资源类型包括若干个基本模块。比如图3中,FPGA内部的可编程逻辑资源包括15个基本模块属于三种不同的资源类型,其中有12个CLB、2个DSP和1个BRAM。每个基本逻辑单元CLB内部包括若干个逻辑部件,基本逻辑单元CLB内部包含的逻辑部件主要包括LUT(查找表)和REG(寄存器)。这些基本模块按一定的结构排布,比如以现有常规的Column-Based的FPGA架构为例,其中每个column都是相同资源类型的基本模块,如CLB column以CLB由上到下排列占满一个芯片column,BRAMcolumn以BRAM由上到下排列占满一个芯片column。
基于已经划分好的第一类资源和第二类资源,可以生成全局电路对应的配置码流,在对用户电路进行调试时,全局电路由用户电路和监控电路构成,配置码流包括基于第一类资源生成并与用户电路对应的第一部分以及基于第二类资源生成并与监控电路对应的第二部分。在未对用户电路进行调试时,全局电路仅由用户电路构成,此时配置码流基于FPGA内部的第一类资源生成并与用户电路对应,因此在对用户电路进行调试时用于实现用户电路的第一类资源,同时也是未对用户电路进行调试用于实现用户电路的可编程逻辑资源,由于在监控电路加入前后,都由第一类资源实现用户电路,因此用户电路的用户电路行为在监控电路加入前后基本保持一致。
FPGA内部哪些可编程逻辑资源属于第一类资源、哪些属于第二类资源是预先划分好的,可选的,本实施例提供如下几种不同的划分方式:
方式一、第一类资源和第二类资源共用同一个位置处的基本模块,这种方式主要针对资源类型为基本逻辑单元CLB的基本模块,也即FPGA内存在至少一个基本逻辑单元所包含的一部分逻辑部件属于第二类资源、其余另一部分逻辑部件属于第一类资源。在对一个基本逻辑单元内的逻辑部件进行划分时,又可以按照如下任一种情况进行划分:(1)在基本逻辑单元中随机选取一部分逻辑部件预留为第二类资源、剩余的逻辑部件作为第一类资源。(2)在基本逻辑单元中间隔式选取一部分逻辑部件预留为第二类资源、剩余的逻辑部件作为第一类资源。
由于CLB内部包括LUT和REG两类逻辑部件,因此在将一个基本逻辑单元所包含的一部分逻辑部件预留为第二类资源时,包括如下几种情况:
(a)仅将一部分LUT或者全部LUT预留为第二类资源、所有REG以及可能存在的未被选择的LUT作为第一类资源。
(b)仅将一部分REG或者全部REG预留为第二类资源、所有LUT以及可能存在的未被选择的REG作为第一类资源。
(c)同时选择一部分LUT以及一部分REG预留为第二类资源、剩余未被选择的LUT和REG作为第一类资源。这是最常用的一种方式,比如一个CLB内部包括8个LUT和16个REG,则可以划分2个LUT和4个REG属于第二类资源,剩余的6个LUT和12个REG属于第一类资源。
而在同时选取部分LUT和部分REG作为第二类资源时,LUT和REG可以均采用随机式选取预留,或者均采用间隔式选取预留,或者一个采用随机式选取预留、另一个采用间隔式选取预留。当LUT和REG均采用间隔式选取预留时,LUT和REG采用的间隔相同或不同,比如在间隔式选取LUT时,每隔1个LUT选取一个预留为第二类资源;在间隔式选取REG时,每隔2个LUT选取一个预留为第二类资源。
方式二、按所在位置对可编程逻辑资源所属类别进行划分,FPGA的预定区域内的所有可编程逻辑资源均属于第二类资源,而除预定区域之外的其余区域的可编程逻辑资源属于第一类资源。与第一种方式不同的是,在这种方式中,每一类资源分别独占一个位置处的基本单元,也即当将一个CLB划分给第二类资源时,该CLB内的所有LUT和REG都属于第二类资源。其中,预定区域有多种不同的含义,分别对应不同的划分方式,按如下分类:
第一类,一个预定区域仅包括一个基本模块:(1)预定区域是一个基本模块所包含的区域,则在这种情况中,预定区域内仅包括属于一种资源类型的一个基本模块。比如将一个CLB所在区域作为一个预定区域划分给第二类资源,或者将一个BRAM所在区域作为一个预定区域划分给第二类资源。
第二类,一个预定区域包括至少两个基本模块,又可以包括如下几种情况:
(2)预定区域是FPGA内每个行结构或列结构所包含的区域,在这种情况中,预定区域内包括属于同一资源类型的多个基本模块或者包括至少属于两种不同资源类型的多个基本模块。较为常用的是将FPGA内每个列结构作为一个预定区域,而在Column-Based的FPGA架构中,同一个列结构中的各个基本模块的资源类型相同,因此基于此,预定区域内包括多个属于同一资源类型的基本模块。
(3)预定区域是一个时钟域所包含的区域,在这种情况中,预定区域内包括属于同一资源类型的多个基本模块或者包括至少属于两种不同资源类型的多个基本模块。
(4)预定区域位于预定位置处且具有预定区域范围,在这种情况中,预定区域内包括属于同一资源类型的多个基本模块或者包括至少属于两种不同资源类型的多个基本模块。也即预定区域根据需要自定义划分,预定位置可以根据需要选取任意合适的位置,比如选取全片的左下角、全片的中央、全片的右上角、时钟域的最高行/最低行等等。预定区域范围也可以根据需要配置合适的大小,比如配置预定区域范围包含8*6个CLB的范围。
在实际应用时,可以仅将一个预定区域内的所有可编程逻辑资源预留给第二类资源。或者,将多个预定区域内的所有可编程逻辑资源预留给第二类资源,则FPGA内包括若干个位于不同位置处的预定区域,其中BRAM的位置通常靠近同一类资源中相应的CLB,或者靠近时钟域的边界。通常情况下,第一类资源和第二类资源中分别均包括多种资源类型的基本模块,而上述情况(1)中一个预定区域仅包含一种资源类型的一个基本模块,因此尤其是当单个预定区域的区域范围如上述情况(1)时,FPGA内通常包括多个预定区域,同样的,当单个预定区域的区域范围如上述情况(2)、(3)和(4)时,FPGA内通常也会包括多个预定区域。
当FPGA内包括多个预定区域时,这多个预定区域位于不同位置处,每个预定区域内包含一个或多个基本模块,每个预定区域内包含的基本模块属于一种或多种资源类型,各个预定区域包含相同资源类型的基本模块,或者存在至少两个预定区域包括不同资源类型的基本模块,比如一个预定区域内仅包括CLB、另一个预定区域内仅包括BRAM。
每个预定区域所包含的区域范围为上述(1)~(4)中任一种,各个预定区域的区域范围均相同,或者存在至少两个预定区域具有不同的区域范围,其中,包含的资源类型相同的两个预定区域具有不同的区域范围,比如一个预定区域以CLB为单位仅包含一个CLB,另一个预定区域以自定义的预定区域范围为单位包括8*6个CLB。或者,包含的资源类型不同的两个预定区域具有不同的区域范围,这是更为常用的做法,比如一个预定区域以自定义的预定区域范围为单位包括8*6个CLB,另一个预定区域以BRAM Column为单位包括1个BRAM。
FPGA内的多个预定区域随机分布在FPGA内或者间隔式分布在FPGA内,当多个预定区域分隔式分布时,可以是所有预定区域之间依次间隔分布,或者更为常用的,包含相同资源类型且具有相同区域范围的预定区域构成一组,每一组内的各个预定区域相互之间间隔分布,不同组采用的间隔相同或不同。比如10个以CLB为单位的预定区域构成一组,每两个预定区域之间的间隔为128个CLB;8个以CLB Column为单位的预定区域构成一组,每两个预定区域之间的间隔为64个CLB Column;5个以时钟域为单位的预定区域构成一组,每两个预定区域之间的间隔为12个时钟域;3个以BRAM Column为单位的预定区域构成一组,每两个预定区域之间的间隔为2个BRAM Column。由此可见,包含的资源类型不同和/或涵盖的区域范围不同的预定区域在间隔式分布式采用的间隔相同或不同。
本申请中的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中包括4个具有连接关系的FPGA裸片分别记为裸片1、裸片2、裸片3和裸片4,一种示例性的做法是第二类资源包括裸片1上的全部可编程逻辑资源,第一类资源包括裸片2、裸片3和裸片4共三个裸片上的全部可编程逻辑资源;另一种示例性的做法是第二类资源包括裸片1上的部分可编程逻辑资源,第一类资源包括裸片1上剩余其他的可编程逻辑资源以及裸片2、裸片3和裸片4共三个裸片上的全部可编程逻辑资源。在该实施例中,与第二类资源共用同一个FPGA裸片的第一类资源用于形成用户电路中的预定电路部分,预定电路部分是预先配置的用户电路中位于非关键路径上的电路部分,非关键路径是指时序余量达到预设阈值的路径,这样即便监控电路对用户电路产生一些影响,也基本不会导致用户电路的用户电路行为发生变化。
需要注意的是,将可编程逻辑资源划分为两类时同样需要满足装箱约束,尤其是当第一类资源和第二类资源共用同一个位置处的CLB时需要考虑满足CLB装箱约束,比如在将监控电路打散分别加入到CLB中占用属于第二类资源的逻辑部件时,加入每个CLB最多有2个时钟信号,而监控电路的REG需要连一路时钟信号,则只能将监控电路中的REG加入到至少有一路空余的时钟信号的CLB中。然后再正常进行布局布线等处理即可生成配置码流。
然后FPGA基于配置码流利用可编程逻辑资源实现用户电路和监控电路时,基于配置码流中与用户电路对应的第一部分利用第一类资源形成用户电路、并基于配置码流中与监控电路对应的第二部分利用第二类资源形成监控电路,从而使得用户电路和监控电路相互独立。
以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (10)
1.一种多采样频率的FPGA在线调试方法,其特征在于,所述方法包括:
在对用户电路进行调试时,将由所述用户电路和监控电路构成的全局电路对应的配置码流加载到FPGA上,所述FPGA基于所述配置码流利用可编程逻辑资源实现所述用户电路和所述监控电路,所述监控电路连接所述用户电路;
所述监控电路包括至少两个采样子电路和一个样本输出模块,每个采样子电路分别对应一个信号组,所述监控电路在所述用户电路运行过程中,分别通过各个采样子电路按照各个信号组对应的采样时钟以相应的采样频率对所述信号组中的各个待观测信号进行采样并存储,并通过所述样本输出模块利用所述FPGA内建的边界扫描链将各个采样子电路存储的数据传输到所述FPGA外进行监控调试;每个待观测信号对应的采样时钟与所述待观测信号的控制时钟相匹配且呈正相关且存在至少两个采样子电路使用的采样时钟不同;
所述监控电路还包括至少一个触发模块,各个所述采样子电路分别对应不同的触发模块或者存在至少两个采样子电路对应同一个触发模块,每个触发模块用于获取触发信号并在检测到所述触发信号满足预设触发条件时向对应的采样子电路发送采样使能信号使得所述采样子电路开始采样;其中,不同的触发模块的触发信号不同和/或预设触发条件不同。
2.根据权利要求1所述的方法,其特征在于,
控制时钟在同一预设时钟区间内的若干个待观测信号属于同一个信号组并对应同一个采样时钟,预设时钟区间的时钟频率越高、对应的采样时钟的频率越高。
3.根据权利要求1所述的方法,其特征在于,
一个或多个功能模块内的所有待观测信号属于同一个信号组并对应同一个采样时钟,功能模块的时钟频率越高、对应的采样时钟的频率越高。
4.根据权利要求1所述的方法,其特征在于,
一个或多个时钟域内的所有待观测信号属于同一个信号组并对应同一个采样时钟,时钟域的时钟频率越高、对应的采样时钟的频率越高。
5.根据权利要求1所述的方法,其特征在于,
一个或多个数据通路内的所有待观测信号属于同一个信号组并对应同一个采样时钟,数据通路的时钟频率越高、对应的采样时钟的频率越高。
6.根据权利要求1-5任一所述的方法,其特征在于,
各个采样子电路使用的采样参数相同,或,存在至少两个采样子电路使用的采样参数不同;其中,所述采样参数包括采样长度和/或采样次数。
7.根据权利要求1-5任一所述的方法,其特征在于,
各个采样时钟的频率呈倍数关系,则所述监控电路包括锁相环电路,所述锁相环电路连接所述用户电路获取基准时钟信号,所述锁相环电路输出各个所述采样时钟。
8.根据权利要求7所述的方法,其特征在于,
各个所述采样时钟的绕线均走时钟树,且各个采样时钟占用一个全局时钟树或一个区域时钟树。
9.根据权利要求1-5任一所述的方法,其特征在于,
每个采样子电路中分别包括一个采样模块和一个存储模块,各个采样子电路中的存储模块的存储性能均相同,或者,存在至少两个采样子电路中的存储模块存在至少一项存储性能不同,存储模块的存储性能包括写入速度、存储宽度和存储深度中的至少一种。
10.根据权利要求1所述的方法,其特征在于,
所述FPGA基于所述配置码流中与所述用户电路对应的第一部分利用第一类资源形成用户电路、并基于所述配置码流中与所述监控电路对应的第二部分利用第二类资源形成监控电路;
所述第一类资源和第二类资源分别表示所述FPGA内部不同部分的可编程逻辑资源,所述第一类资源是所述FPGA内部在未对所述用户电路进行调试时用于实现所述用户电路的可编程逻辑资源,且所述第一类资源和第二类资源中具有相同资源类型的可编程逻辑资源的硬件结构相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110547413.1A CN113419906B (zh) | 2021-05-19 | 2021-05-19 | 一种多采样频率的fpga在线调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110547413.1A CN113419906B (zh) | 2021-05-19 | 2021-05-19 | 一种多采样频率的fpga在线调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419906A CN113419906A (zh) | 2021-09-21 |
CN113419906B true CN113419906B (zh) | 2022-08-30 |
Family
ID=77712582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110547413.1A Active CN113419906B (zh) | 2021-05-19 | 2021-05-19 | 一种多采样频率的fpga在线调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419906B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541707A (zh) * | 2010-12-15 | 2012-07-04 | 中国科学院电子学研究所 | 复用jtag接口的fpga片内逻辑分析仪系统和方法 |
CN102830346A (zh) * | 2012-08-22 | 2012-12-19 | 华为技术有限公司 | 一种检测方法和装置 |
-
2021
- 2021-05-19 CN CN202110547413.1A patent/CN113419906B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541707A (zh) * | 2010-12-15 | 2012-07-04 | 中国科学院电子学研究所 | 复用jtag接口的fpga片内逻辑分析仪系统和方法 |
CN102830346A (zh) * | 2012-08-22 | 2012-12-19 | 华为技术有限公司 | 一种检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113419906A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Trimberger | Scheduling designs into a time-multiplexed FPGA | |
JP4424760B2 (ja) | 時間多重相互接続を用いたエミュレーション・システム | |
JP4225583B2 (ja) | ハードウェア・ロジック・エミュレーション・システムで使用するための分配ロジック・アナライザ | |
EP1667326B1 (en) | Output reporting techniques for hard intellectual property blocks | |
US8856702B1 (en) | Method and apparatus for performing multiple stage physical synthesis | |
US10061879B2 (en) | Circuit design instrumentation for state visualization | |
US8686753B1 (en) | Partial reconfiguration and in-system debugging | |
CA2452879A1 (en) | Inter-chip communication system | |
CN112257358B (zh) | 一种动态功耗精确分析方法及装置 | |
US8185850B1 (en) | Method of implementing a circuit design using control and data path information | |
US8954906B1 (en) | Method and apparatus for performing parallel synthesis on a field programmable gate array | |
US20090164967A1 (en) | High-level synthesis apparatus, high-level synthesis system and high-level synthesis method | |
CN113419906B (zh) | 一种多采样频率的fpga在线调试方法 | |
US10161999B1 (en) | Configurable system and method for debugging a circuit | |
CN117151003B (zh) | 一种基于时钟域划分的fpga布局方法及装置 | |
CN113407390B (zh) | 一种高准确度的fpga在线调试方法 | |
US8141018B1 (en) | Method and apparatus for using slack potential data to design a system on a field programmable gate array | |
CN113407388B (zh) | 采样频率动态可变的fpga在线调试方法 | |
CN113407387B (zh) | 一种避免漏采样的fpga在线调试方法 | |
CN113407389A (zh) | 一种实现连续采样的fpga在线调试方法 | |
US7673272B1 (en) | Method and apparatus for generating an area constraint for a module in a programmable logic device | |
US20160217239A1 (en) | Method and system for selecting stimulation signals for power estimation | |
KR20110085916A (ko) | 클록 지터 억제 방법 및 컴퓨터 판독가능한 기억 매체 | |
Paulsson et al. | Exploitation of the external jtag interface for internally controlled configuration readback and self-reconfiguration of spartan 3 fpgas | |
US20230213581A1 (en) | Techniques For Capturing Signals From Logic Circuits At A Logic Analyzer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |