CN115600535A - 一种对fpga动态可重构区进行时序分析的方法及装置 - Google Patents
一种对fpga动态可重构区进行时序分析的方法及装置 Download PDFInfo
- Publication number
- CN115600535A CN115600535A CN202211575757.4A CN202211575757A CN115600535A CN 115600535 A CN115600535 A CN 115600535A CN 202211575757 A CN202211575757 A CN 202211575757A CN 115600535 A CN115600535 A CN 115600535A
- Authority
- CN
- China
- Prior art keywords
- delay
- area
- module
- virtual
- output port
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种对FPGA动态可重构区进行时序分析的方法及装置,根据信号走向将从静态向动态区连接的模块端口记作input,从动态向静态区连接的模块端口记作output,将input之前的路径节点即位于静态区的部分看作一个虚拟输入端口,将output后到终点位于静态区中所有路径节点看作一个虚拟输出端口,如此,在对整个FPGA做全路径分析时,记算了源点到虚拟输入端口的延时,虚拟输出端口到终点的延时并保存在时序报告中,在对动态可重构区做时序分析时,只需要计算动态区的时序路径部分延时即可,由于不需要对已经计算过的部分时序路径延时进行计算,从而可以节省大量时间,进而可以快速得到时序分析报告。
Description
技术领域
本发明属于FPGA领域,尤其是涉及一种对FPGA动态可重构区进行时序分析的方法及装置。
背景技术
软件的部分重新配置(PR)特性允许可动态地重新配置FPGA的一部分,而设备的其余部分继续运行。
在FPGA的逻辑层次结构中划分设计分区,每个设计分区都是独立合成的,然后合并为一个完整的netlist,功能可变区被称为动态区,其它区域被称为静态区。动态区可以实现不同的功能,也可以对功能进行升级。
在动态升级过程中,需要对升级后的动态区进行时序分析,怎样快速对动态区进行时序分析就显得尤为重要。
发明内容
本发明所要解决的技术问题是为了快速对动态可重构的动态区进行时序分析,提出了一种对FPGA动态可重构区进行时序分析的方法及装置。
为解决上述技术问题,本发明所采用的技术方案是:
一种对FPGA动态可重构区进行时序分析的方法,包括以下步骤:
步骤1:根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存为连接区;
步骤2:根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink;
步骤3:根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf;
步骤4:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
进一步地,步骤3中虚拟输入端口i_buf到input端口的延时为:在对整个FPGA做全路径分析时,计算所有源点source开始到input端口的延时,将最大延时记作虚拟输入端口i_buf到input端口的延时input_delay,并记录最大延时所对应的源点source对应的时钟。
进一步地,步骤3中output端口到虚拟输出端口o_buf的延时为:在对整个FPGA做全路径分析时,计算从output端口到所有终点sink的延时,将最大延时记作output端口到虚拟输出端口o_buf的延时output_delay,记录最大延时所在的终点sink对应的时钟。
5.根据权利要求2或3所述的方法,其特征在于,步骤6中对动态区进行时序分析时,将虚拟输入端口i_buf放到source列表中,将虚拟输出端口o_buf放到sink列表中,遍历source列表中的所有source点,计算一条条路径中从源点source发起的到终点sink的延时,当source点为虚拟输入端口时,则路径总延时为在动态区计算出的延时加上延时input_delay,当sink点为虚拟输出端口o_buf时,则路径总延时为在动态区计算出的延时加上延时output_delay。
本发明还提供了一种对FPGA动态可重构区进行时序分析装置,包括以下模块:
连接区构建模块:用于根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存为连接区;
连接区端口查找模块:用于根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink;
虚拟输入输出模块:用于根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf;
时序分析模块:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
采用上述技术方案,本发明具有如下有益效果:
本发明提供的一种对FPGA动态可重构区进行时序分析的方法及装置,通过将连接区中的模块进行整理,按照信号走向将从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,将input端口之前的路径节点看作一个虚拟模块中的一个虚拟输入端口,将output端口之后的所有路径节点看作一个虚拟输出模块中的一个虚拟输出端口,如此,在对整个FPGA做完全功能时序分析记录时,则记录source点到虚拟输入模块的虚拟输入端口的延时input_delay,虚拟输出模块的输出端口到sink点的延时output_delay并保存在时序报告中,在对动态区做时序分析时,由于将i_buf放到source列表中,将虚拟输出端口o_buf放到sink列表中,直接遍历source列表中的所有source点,计算一条条路径中从源点source发起的到终点sink的延时,加上已经预先保存在时序报告中的input_delay和output_delay,即可快速得到时序分析报告。
附图说明
图1为本发明系统流程图;
图2为静态区和动态区中input和output端口示意图;
图3为虚拟模块的虚拟端口示意图;
图4为input端口延时示意图;
图5为output端口延时示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
动态可重构是在FPGA设计时,将其中的一个或多个模块设计成可升级或可重构。这样在使用过程中,不断电的情况下会下也会对指定模块进行升级或重构。
图1至图5示出了本发明一种对FPGA动态可重构区进行时序分析的方法的具体实施例,如图1所示,包括以下步骤:
步骤1:根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存到连接区。本实施例中,通过找到用于对动静态区进行连接的模块cell,便于将其与静态区的其他模块区分开来,由于在装箱时对于这些连接的模块cell进行过标记,因此很容易找到这些连接的模块cell。
步骤2:根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink。
本实施例中,在连接区的模块cell中,根据信号走向可以知道哪些端口是从动态区向静态区连接的,哪些端口是从静态区向动态区连接的。如图2所示,信号从静态区通过连接模块上的input端口进入,通过连接模块的输出引脚outpin进入动态区,同样,信号从连接模块的输入引脚inpin进入连接模块,从连接模块的输出output端口输出进入静态区。
步骤3:根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf。
本实施例中,将信号路径中input所在模块cell点到源点source的所有路径节点看作一个虚拟输入端口,将output所在模块cell点到终点sink的所有路径节点看作一个虚拟输出端口,如图3所示,静态区与动态区连接为虚拟输入端口i_buf,创建Out端口与input端口连接即可,动态区与静态连接为虚拟输出端口o_buf,为虚拟输出端口o_buf创建input端口即可。
由于FPGA芯片在做全路径分析时,信号路径中input所在模块cell点到源点source的所有路径节点的时序延时已经进行过计算,同理output端口将信号路径中output所在模块cell点到终点sink的时序延时已经进行过计算,在动态区路径分析时,这一段路径的时序延时将不再做计算,充分利用了全路径分析时的结果,可以极大地缩短动态区路径分析时的路径计算时间。而且由于静态区和连接区这部分的电路不会发生变化,则FPGA全路径分析时这部分的结果可以重复利用。
步骤4:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
本实施例中,虚拟输入端口i_buf到input端口的延时为:在对整个FPGA做全路径分析时,如图4所示,计算所有源点source开始到input端口的延时,将最大延时记作虚拟输入端口i_buf到input端口的延时input_delay,并记录最大延时所对应的源点source对应的时钟。虚拟输出端口output到虚拟输出端口o_buf的延时为:在对整个FPGA做全路径分析时,如图5所示,计算从output端口到所有终点sink的延时,将最大延时记作output端口到虚拟输出端口o_buf的延时,记录最大延时所在的终点sink对应的时钟。之所以将最大延时记作input_delay或output_delay,是考虑路径最长或最坏的情况,那么其它的情况一定会满足。
本实施例中,动态区时序分析时,将i_buf放到source列表中,将o_buf放到sink列表中,遍历到source列表中的所有source点,计算一条条路径中从源点source发起的到终点sink的延时。当路径中涉及到虚拟端口时,则需从对整个FPGA做时序分析时的时序报告中提取i_buf到input端口的延时,以及output到o_buf的延时进行求和即可,不需对已经计算过的延时进行计算,节省了大量的时间。
假设在1300万门的FPGA芯片使用率90%的电路中,分为15个模块,其中有1个模块可以动态重构升级。整个FPGA芯片一共有300万条时序路径,其中和可升级模块连接的时序路径有400条。可升级模块内部有20万条路径。进行所有模块的全路径分析需要8分钟和400M的内存。使用本实施例中的方法在做可动态重构升级模块的时序分析时,只需要分析和升级模块有关的路径即可。另外对于和可升级模块连接的400条时序路径,在对整个FPGA做全路径分析时,曾计算出400条时序路径中到所有信号源点到input端口的时序延时,找出最大延时,作为虚拟输入端口到input端口的延时input_delay,以及曾计算出output端口到所有终点sink的时序延时,找出最大延时,作为output端口到虚拟输出端口的延时。原因是最坏的情况都满足,其它的情况一定会满足。采用本发明后,时序分析需要50秒,内存使用25M。结果和所有模块全路径分析一致。因此,使用本实施例中的方法可以节省大量的时间与内存资源。
本发明还提供了一种对FPGA动态可重构区进行时序分析装置,包括以下模块:
连接区构建模块:用于根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存为连接区;
连接区端口查找模块:用于根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink;
虚拟输入输出模块:用于根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf;
时序分析模块:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (5)
1.一种对FPGA动态可重构区进行时序分析的方法,其特征在于,包括以下步骤:
步骤1:根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存为连接区;
步骤2:根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink;
步骤3:根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf;
步骤4:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
2.根据权利要求1所述的方法,其特征在于,步骤3中虚拟输入端口i_buf到input端口的延时为:在对整个FPGA做全路径分析时,计算所有源点source开始到input端口的延时,将最大延时记作虚拟输入端口i_buf到input端口的延时input_delay,并记录最大延时所对应的源点source对应的时钟。
3.根据权利要求1所述的方法,其特征在于,步骤3中output端口到虚拟输出端口o_buf的延时为:在对整个FPGA做全路径分析时,计算从output端口到所有终点sink的延时,将最大延时记作output端口到虚拟输出端口o_buf的延时output_delay,记录最大延时所在的终点sink对应的时钟。
4.根据权利要求2或3所述的方法,其特征在于,步骤6中对动态区进行时序分析时,将虚拟输入端口i_buf放到source列表中,将虚拟输出端口o_buf放到sink列表中,遍历source列表中的所有source点,计算一条条路径中从源点source发起的到终点sink的延时,当source点为虚拟输入端口时,则路径总延时为在动态区计算出的延时加上延时input_delay,当sink点为虚拟输出端口o_buf时,则路径总延时为在动态区计算出的延时加上延时output_delay。
5.一种对FPGA动态可重构区进行时序分析装置,其特征在于,包括以下模块:
连接区构建模块:用于根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存为连接区;
连接区端口查找模块:用于根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink;
虚拟输入输出模块:用于根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf;
时序分析模块:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211575757.4A CN115600535B (zh) | 2022-12-09 | 2022-12-09 | 一种对fpga动态可重构区进行时序分析的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211575757.4A CN115600535B (zh) | 2022-12-09 | 2022-12-09 | 一种对fpga动态可重构区进行时序分析的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115600535A true CN115600535A (zh) | 2023-01-13 |
CN115600535B CN115600535B (zh) | 2023-03-10 |
Family
ID=84852100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211575757.4A Active CN115600535B (zh) | 2022-12-09 | 2022-12-09 | 一种对fpga动态可重构区进行时序分析的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115600535B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116029238A (zh) * | 2023-03-27 | 2023-04-28 | 中科亿海微电子科技(苏州)有限公司 | 一种对加法器进行时序分析的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073771A (zh) * | 2017-12-25 | 2018-05-25 | 中国电子科技集团公司第四十七研究所 | Fpga静态时序分析算法 |
CN114742001A (zh) * | 2022-03-16 | 2022-07-12 | 南京邮电大学 | 一种基于多fpga的系统静态时序分析方法 |
-
2022
- 2022-12-09 CN CN202211575757.4A patent/CN115600535B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073771A (zh) * | 2017-12-25 | 2018-05-25 | 中国电子科技集团公司第四十七研究所 | Fpga静态时序分析算法 |
CN114742001A (zh) * | 2022-03-16 | 2022-07-12 | 南京邮电大学 | 一种基于多fpga的系统静态时序分析方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116029238A (zh) * | 2023-03-27 | 2023-04-28 | 中科亿海微电子科技(苏州)有限公司 | 一种对加法器进行时序分析的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115600535B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Trimberger et al. | A time-multiplexed FPGA | |
US8214774B2 (en) | Method for implementing functional changes into a design layout of an integrated device, in particular a system-on-chip, by means of mask programmable filling cells | |
US7260794B2 (en) | Logic multiprocessor for FPGA implementation | |
JP4424760B2 (ja) | 時間多重相互接続を用いたエミュレーション・システム | |
JP4225583B2 (ja) | ハードウェア・ロジック・エミュレーション・システムで使用するための分配ロジック・アナライザ | |
US11287870B2 (en) | Methods and apparatus for selectively extracting and loading register states | |
US5847578A (en) | Programmable multiplexing input/output port | |
CN115600535B (zh) | 一种对fpga动态可重构区进行时序分析的方法及装置 | |
JPH09231788A (ja) | シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム | |
US11232247B1 (en) | Adaptable dynamic region for hardware acceleration | |
Lee et al. | TLegUp: A TMR code generation tool for SRAM-based FPGA applications using HLS | |
Jara-Berrocal et al. | VAPRES: A virtual architecture for partially reconfigurable embedded systems | |
US7822909B2 (en) | Cross-bar switching in an emulation environment | |
Xiao et al. | Fast linking of separately-compiled FPGA blocks without a NoC | |
Koch et al. | Efficient reconfigurable on-chip buses for FPGAs | |
Santambrogio et al. | Operating system support for online partial dynamic reconfiguration management | |
US11029964B1 (en) | Booting a system-on-chip | |
Koh et al. | COMMA: a communications methodology for dynamic module-based reconfiguration of FPGAs | |
CN105653748A (zh) | 一种时钟树资源的分配方法和时钟树架构 | |
US11386009B2 (en) | Programmable device configuration memory system | |
CN111737940A (zh) | 端口控制逻辑模块、片上系统芯片及终端设备 | |
US8861283B1 (en) | Systems and methods for reducing leakage current in memory arrays | |
Konstantinou et al. | Low-power dual-edge-triggered synchronous latency-insensitive systems | |
CN117034827B (zh) | 一种用于eFPGA的多路选择器、互连开关及外围接口电路 | |
Kuo et al. | ACS: An Addressless Configuration Support for efficient partial reconfigurations |
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 |