一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种对FPGA动态可重构区进行时序分析的方法及装置与流程

2023-01-15 09:51:54 来源:中国专利 TAG:
一种对fpga动态可重构区进行时序分析的方法及装置
技术领域
1.本发明属于fpga领域,尤其是涉及一种对fpga动态可重构区进行时序分析的方法及装置。


背景技术:

2.软件的部分重新配置(pr)特性允许可动态地重新配置fpga的一部分,而设备的其余部分继续运行。
3.在fpga的逻辑层次结构中划分设计分区,每个设计分区都是独立合成的,然后合并为一个完整的netlist,功能可变区被称为动态区,其它区域被称为静态区。动态区可以实现不同的功能,也可以对功能进行升级。
4.在动态升级过程中,需要对升级后的动态区进行时序分析,怎样快速对动态区进行时序分析就显得尤为重要。


技术实现要素:

5.本发明所要解决的技术问题是为了快速对动态可重构的动态区进行时序分析,提出了一种对fpga动态可重构区进行时序分析的方法及装置。
6.为解决上述技术问题,本发明所采用的技术方案是:一种对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的延时。
7.进一步地,步骤3中虚拟输入端口i_buf到input端口的延时为:在对整个fpga做全路径分析时,计算所有源点source开始到input端口的延时,将最大延时记作虚拟输入端口i_buf到input端口的延时input_delay,并记录最大延时所对应的源点source对应的时钟。
8.进一步地,步骤3中output端口到虚拟输出端口o_buf的延时为:在对整个fpga做全路径分析时,计算从output端口到所有终点sink的延时,将最大延时记作output端口到
虚拟输出端口o_buf的延时output_delay,记录最大延时所在的终点sink对应的时钟。
9.5.根据权利要求2或3所述的方法,其特征在于,步骤6中对动态区进行时序分析时,将虚拟输入端口i_buf放到source列表中,将虚拟输出端口o_buf放到sink列表中,遍历source列表中的所有source点,计算一条条路径中从源点source发起的到终点sink的延时,当source点为虚拟输入端口时,则路径总延时为在动态区计算出的延时加上延时input_delay,当sink点为虚拟输出端口o_buf时,则路径总延时为在动态区计算出的延时加上延时output_delay。
10.本发明还提供了一种对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的延时。
11.采用上述技术方案,本发明具有如下有益效果:本发明提供的一种对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,即可快速得到时序分析报告。
附图说明
12.图1为本发明系统流程图;图2为静态区和动态区中input和output端口示意图;图3为虚拟模块的虚拟端口示意图;图4为input端口延时示意图;
图5为output端口延时示意图。
具体实施方式
13.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
14.动态可重构是在fpga设计时,将其中的一个或多个模块设计成可升级或可重构。这样在使用过程中,不断电的情况下会下也会对指定模块进行升级或重构。
15.图1至图5示出了本发明一种对fpga动态可重构区进行时序分析的方法的具体实施例,如图1所示,包括以下步骤:步骤1:根据动态可重构区的结构,找出在装箱时标记的对动态区与静态区进行连接的模块cell,将这些模块cell保存到连接区。本实施例中,通过找到用于对动静态区进行连接的模块cell,便于将其与静态区的其他模块区分开来,由于在装箱时对于这些连接的模块cell进行过标记,因此很容易找到这些连接的模块cell。
16.步骤2:根据信号走向将连接区中从静态区向动态区连接的模块cell的端口记作input端口,从动态区向静态区连接的模块cell的端口记作output端口,并根据信号路径找出input端口所在的信号路径中的所有源点source,以及output端口所在的信号路径中的所有终点sink。
17.本实施例中,在连接区的模块cell中,根据信号走向可以知道哪些端口是从动态区向静态区连接的,哪些端口是从静态区向动态区连接的。如图2所示,信号从静态区通过连接模块上的input端口进入,通过连接模块的输出引脚outpin进入动态区,同样,信号从连接模块的输入引脚inpin进入连接模块,从连接模块的输出output端口输出进入静态区。
18.步骤3:根据连接区中的input端口将信号路径中input所在模块cell点到源点source的所有路径节点,看作一个虚拟输入模块中的一个虚拟输入端口i_buf,根据连接区中的output端口将信号路径中output所在模块cell点到终点sink的所有路径节点,看作一个虚拟输出模块中的一个虚拟输出端口o_buf。
19.本实施例中,将信号路径中input所在模块cell点到源点source的所有路径节点看作一个虚拟输入端口,将output所在模块cell点到终点sink的所有路径节点看作一个虚拟输出端口,如图3所示,静态区与动态区连接为虚拟输入端口i_buf,创建out端口与input端口连接即可,动态区与静态连接为虚拟输出端口o_buf,为虚拟输出端口o_buf创建input端口即可。
20.由于fpga芯片在做全路径分析时,信号路径中input所在模块cell点到源点source的所有路径节点的时序延时已经进行过计算,同理output端口将信号路径中output所在模块cell点到终点sink的时序延时已经进行过计算,在动态区路径分析时,这一段路径的时序延时将不再做计算,充分利用了全路径分析时的结果,可以极大地缩短动态区路径分析时的路径计算时间。而且由于静态区和连接区这部分的电路不会发生变化,则fpga全路径分析时这部分的结果可以重复利用。
21.步骤4:对动态可重构区进行时序分析时,只需计算动态区中input端口后驱的路径节点的延时加上虚拟输入端口i_buf到input端口的延时,以及计算output端口前驱的路
径节点到output端口的延时加上output端口到虚拟输出端口o_buf的延时。
22.本实施例中,虚拟输入端口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,是考虑路径最长或最坏的情况,那么其它的情况一定会满足。
23.本实施例中,动态区时序分析时,将i_buf放到source列表中,将o_buf放到sink列表中,遍历到source列表中的所有source点,计算一条条路径中从源点source发起的到终点sink的延时。当路径中涉及到虚拟端口时,则需从对整个fpga做时序分析时的时序报告中提取i_buf到input端口的延时,以及output到o_buf的延时进行求和即可,不需对已经计算过的延时进行计算,节省了大量的时间。
24.假设在1300万门的fpga芯片使用率90%的电路中,分为15个模块,其中有1个模块可以动态重构升级。整个fpga芯片一共有300万条时序路径,其中和可升级模块连接的时序路径有400条。可升级模块内部有20万条路径。进行所有模块的全路径分析需要8分钟和400m的内存。使用本实施例中的方法在做可动态重构升级模块的时序分析时,只需要分析和升级模块有关的路径即可。另外对于和可升级模块连接的400条时序路径,在对整个fpga做全路径分析时,曾计算出400条时序路径中到所有信号源点到input端口的时序延时,找出最大延时,作为虚拟输入端口到input端口的延时input_delay,以及曾计算出output端口到所有终点sink的时序延时,找出最大延时,作为output端口到虚拟输出端口的延时。原因是最坏的情况都满足,其它的情况一定会满足。采用本发明后,时序分析需要50秒,内存使用25m。结果和所有模块全路径分析一致。因此,使用本实施例中的方法可以节省大量的时间与内存资源。
25.本发明还提供了一种对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的延时。
26.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献