CN108073771B - Fpga静态时序分析方法 - Google Patents
Fpga静态时序分析方法 Download PDFInfo
- Publication number
- CN108073771B CN108073771B CN201711416469.3A CN201711416469A CN108073771B CN 108073771 B CN108073771 B CN 108073771B CN 201711416469 A CN201711416469 A CN 201711416469A CN 108073771 B CN108073771 B CN 108073771B
- Authority
- CN
- China
- Prior art keywords
- node
- path
- delay
- original
- predecessor
- 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
- 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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及FPGA静态时序分析方法,具体为提取出整个电路存在的所有时序路径,考察信号在这些路径上通过时是否满足时序约束的要求,通过对最大路径延迟和最小路径延迟的分析找出违背时序约束的错误。本发明能够更快的发现使芯片时序失效和对芯片性能起决定作用的关键路径。
Description
技术领域
本发明主要用在FPGA的静态时序分析领域。能够在提供逻辑单元以及相应的连接关系和已知芯片的结构的前提下,对指定的网表电路进行时序分析。
背景技术
静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确的时序报告。
进行静态时序分析,主要目的就是为了提高系统工作主频以及增加系统的稳定性。对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
目前,国内时序分析领域缺少一种准确的分析各种延时路径的时序分析的方法。
发明内容
针对上述技术不足,本发明公开了一种使用新型时序分析算法,实现对FPGA的静态时序分析。通过改进的算法大幅提升FPGA的计算速度和时序分析结果。这种算法效率高、结果优。
本发明解决其技术问题所采用的技术方案是:FPGA静态时序分析方法,包括以下步骤:
某个节点经过拓扑排序出队时,计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,遍历这条路径上的所有结点,得到每个节点的最原始的前驱节点到该节点的延时映射表,进而得到每一个节点的最大延时。
用于计算违例路径,在回溯时根据最终输出的延时值逐层寻找每个节点的前驱节点,然后将前驱节点的总延时减去相应的延时,到最后延时值为0的那条即为违例路径。
电路网表的所有输入IO及时序器件为路径的起始端。
所述最原始的前驱节点所存储的延时为其本身的输出信号延时。
pad to pad路径的计算包括以下步骤:
遍历sink节点队列,按顺序出队每一个输出IO节点,遍历其映射表,找其最原始前驱节点,判断这个节点是否为输入IO节点;如果是,则输出该路径延时;如果其最原始前驱节点为一个时序器件,则放弃这样的路径。
setup to pad路径的计算包括以下步骤:
遍历sink节点队列,按顺序出队每一个输出IO节点,遍历其映射表,找其最原始前驱节点,判断这个节点是否为时序器件节点;如果是,则输出该路径延时;如果其最原始前驱节点为一个输入IO,则放弃这样的路径。
pad to setup路径的计算包括以下步骤:
遍历source点队列,按顺序出队每个时序器件节点,然后在有向无环图中找到其前驱节点队列,遍历该队列,判断每个前驱节点的最原始前驱是否为输入IO;如果是,则将这个延时值加上该时序器件本身的setup时间输出;如果不是,则放弃这样的路径。
clk to setup路径的计算包括以下步骤:
遍历source点队列,按顺序出队每个时序器件节点,然后在有向无环图中找到其前驱节点队列,遍历该队列,判断每个前驱节点的最原始前驱是否为时序器件;如果是,则将这个延时值加上最原始时序器件的clk to q时间,再加上该时序器件本身的setup时间输出;如果不是,则放弃这样的路径。
本发明具有以下有益效果及优点:
1.提高系统工作主频以及增加系统的稳定性。
2.通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
附图说明
图1是本发明的静态时序分析实现流程图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明。
如图1所示,本发明涉及FPGA静态时序分析的一种算法。该算法的目的是更快的发现使芯片时序失效和对芯片性能起决定作用的关键路径。它采用穷尽分析方法(现有方法),提取出整个电路存在的所有时序路径,考察信号在这些路径上通过时是否满足时序约束的要求,通过对最大路径延迟和最小路径延迟的分析找出违背时序约束的错误。
时序分析程序的设计重点在于有向无环图(下面简称为图)的建立及关键路径的计算。首先图的建立分为两个阶段,当每读入一个元件并创建节点后,将其加入图。当所有的节点都加入图后,再循环遍历一次节点序列来添加边,即节点与节点之间的连接关系。到此一张由节点与边组成的网便建立完成了,我们称之为图。
当一个节点经过拓扑排序出队时我们计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,对于最原始的前驱来说,其所存储的延时为其本身的输出信号延时。对于每一个节点的最原始节点我们只保持最大延时值。这样对于每一个节点来说,它都有一个其最原始节点到该节点的延时映射表。这样到每一个节点的最大延时我们就计算出来了。
我们规定一个电路网表的所有输入IO及时序器件为路径的起始端,这是由路径计算要求所决定的。
下面是四种关键路径的计算。
pad to pad路径的计算过程:遍历sink节点队列,按顺序出队每一个输出IO节点,遍历其映射表,找其最原始前驱节点,判断这个节点是否为输入IO节点,如果是,则输出该路径延时;如果不是,则放弃这样的路径。
setup to pad路径的计算过程:遍历sink节点队列,按顺序出队每一个输出IO节点,遍历其映射表,找其最原始前驱节点,判断这个节点是否为时序器件节点,如果是,则输出该路径延时;如果不是,则放弃这样的路径。
pad to setup路径的计算过程:由于每个时序器件都是最原始的前驱,所以所有的路径在遇到时序器件时都会断开,在计算pad to setup时则比前两种计算过程麻烦一些。首先遍历source点队列,按顺序出队每个时序器件节点,然后在图中找到其前驱节点队列,遍历该队列,判断每个前驱节点的最原始前驱是否为输入IO,如果是,则将这个延时值加上该时序器件本身的setup时间输出;如果不是,则放弃这样的路径。
clk to setup路径的计算过程:首先遍历source点队列,按顺序出队每个时序器件节点,然后在图中找到其前驱节点队列,遍历该队列,判断每个前驱节点的最原始前驱是否为时序器件,如果是,则将这个延时值加上最原始时序器件的clk to q时间按再加上该时序器件本身的setup时间输出;如果不是,则放弃这样的路径。
对于上面四中路径来说在计算违例路径时都需要回溯来找到这条路径,因为每个节点存储的都只是其最原始的前驱节点,并不是完整的路径。在回溯时根据最终输出的延时值逐层的找每个节点的前驱,然后减去相应的延时,到最后延时值为0的那条即为违例路径。
Claims (7)
1.FPGA静态时序分析方法,其特征在于,包括以下步骤:
某个节点经过拓扑排序出队时,计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,遍历这条路径上的所有节点,得到每个节点的最原始的前驱节点到该节点的延时映射表,进而得到每一个节点的最大延时;
电路网表的所有输入IO及时序器件为路径的起始端,所述路径包括pad to pad路径、setup to pad路径、pad to setup路径、clk to setup路径。
2.根据权利要求1所述的FPGA静态时序分析方法,其特征在于,用于计算违例路径,在回溯时根据最终输出的延时值逐层寻找每个节点的前驱节点,然后将前驱节点的总延时减去相应的延时,到最后延时值为0的那条即为违例路径。
3.根据权利要求1所述的FPGA静态时序分析方法,其特征在于:所述最原始的前驱节点所存储的延时为其本身的输出信号延时。
4.根据权利要求1所述的FPGA静态时序分析方法,其特征在于,所述某个节点经过拓扑排序出队时,计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,其中pad to pad路径的计算包括以下步骤:
遍历sink节点队列,按顺序出队每一个输出IO节点,遍历其映射表,找其最原始前驱节点,判断这个节点是否为输入IO节点;如果是,则输出该路径延时;如果其最原始前驱节点为一个时序器件,则放弃这样的路径。
5.根据权利要求1所述的FPGA静态时序分析方法,其特征在于,所述某个节点经过拓扑排序出队时,计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,其中setup to pad路径的计算包括以下步骤:
遍历sink节点队列,按顺序出队每一个输出IO节点,遍历其映射表,找其最原始前驱节点,判断这个节点是否为时序器件节点;如果是,则输出该路径延时;如果其最原始前驱节点为一个输入IO,则放弃这样的路径。
6.根据权利要求1所述的FPGA静态时序分析方法,其特征在于,所述某个节点经过拓扑排序出队时,计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,其中pad to setup路径的计算包括以下步骤:
遍历source点队列,按顺序出队每个时序器件节点,然后在有向无环图中找到其前驱节点队列,遍历该队列,判断每个前驱节点的最原始前驱是否为输入IO;如果是,则将这个延时值加上该时序器件本身的setup时间输出;如果不是,则放弃这样的路径。
7.根据权利要求1所述的FPGA静态时序分析方法,其特征在于,所述某个节点经过拓扑排序出队时,计算它到其最原始前驱的延时,并将这个延时值与其最原始的前驱节点保存在该节点的映射表中,其中clk to setup路径的计算包括以下步骤:
遍历source点队列,按顺序出队每个时序器件节点,然后在有向无环图中找到其前驱节点队列,遍历该队列,判断每个前驱节点的最原始前驱是否为时序器件;如果是,则将这个延时值加上最原始时序器件的clk to q时间,再加上该时序器件本身的setup时间输出;如果不是,则放弃这样的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711416469.3A CN108073771B (zh) | 2017-12-25 | 2017-12-25 | Fpga静态时序分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711416469.3A CN108073771B (zh) | 2017-12-25 | 2017-12-25 | Fpga静态时序分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073771A CN108073771A (zh) | 2018-05-25 |
CN108073771B true CN108073771B (zh) | 2022-01-04 |
Family
ID=62155709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711416469.3A Active CN108073771B (zh) | 2017-12-25 | 2017-12-25 | Fpga静态时序分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073771B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486613B (zh) * | 2021-06-29 | 2023-06-30 | 海光信息技术股份有限公司 | 数据链路的提取方法、装置、电子设备和存储介质 |
CN114742001B (zh) * | 2022-03-16 | 2023-08-29 | 南京邮电大学 | 一种基于多fpga的系统静态时序分析方法 |
CN115544929B (zh) * | 2022-11-30 | 2023-03-17 | 中科亿海微电子科技(苏州)有限公司 | 对fpga eda软件中路径时序延时的测试方法及装置 |
CN115600535B (zh) * | 2022-12-09 | 2023-03-10 | 中科亿海微电子科技(苏州)有限公司 | 一种对fpga动态可重构区进行时序分析的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038602A (zh) * | 2007-04-19 | 2007-09-19 | 复旦大学 | 一种工艺参数变化下成品率驱动的时钟偏差安排方法 |
US8091049B2 (en) * | 2008-07-02 | 2012-01-03 | Synopsys, Inc. | Integrated single spice deck sensitization for gate level tools |
CN105718698A (zh) * | 2016-02-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种时序网表管理方法及装置 |
CN106066914A (zh) * | 2016-06-02 | 2016-11-02 | 复旦大学 | 考虑串扰效应的静态时序分析方法 |
CN106682285A (zh) * | 2016-12-09 | 2017-05-17 | 深圳市紫光同创电子有限公司 | 一种静态时序分析方法和装置 |
-
2017
- 2017-12-25 CN CN201711416469.3A patent/CN108073771B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038602A (zh) * | 2007-04-19 | 2007-09-19 | 复旦大学 | 一种工艺参数变化下成品率驱动的时钟偏差安排方法 |
US8091049B2 (en) * | 2008-07-02 | 2012-01-03 | Synopsys, Inc. | Integrated single spice deck sensitization for gate level tools |
CN105718698A (zh) * | 2016-02-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种时序网表管理方法及装置 |
CN106066914A (zh) * | 2016-06-02 | 2016-11-02 | 复旦大学 | 考虑串扰效应的静态时序分析方法 |
CN106682285A (zh) * | 2016-12-09 | 2017-05-17 | 深圳市紫光同创电子有限公司 | 一种静态时序分析方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108073771A (zh) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073771B (zh) | Fpga静态时序分析方法 | |
CN105138774B (zh) | 一种基于集成电路层次化设计的时序后仿真方法 | |
US9098658B2 (en) | Display and automatic improvement of timing and area in a network-on-chip | |
US20110078644A1 (en) | Asychronous system analysis | |
Pang et al. | Task mapping and mesh topology exploration for an FPGA-based network on chip | |
US9842187B1 (en) | Representation of complex timing characteristics of startpoint-endpoint pairs in a circuit design | |
CN101504680B (zh) | 时钟偏差局域性优化分析方法 | |
US10169527B2 (en) | Accurate statistical timing for boundary gates of hierarchical timing models | |
CN109947173B (zh) | 最大时钟偏差的计算方法及计算系统 | |
CN109800468B (zh) | 一种基于寄存器重定时的多流水级时序电路装箱操作方法 | |
CN109388839B (zh) | 时钟系统性能分析方法及装置 | |
CN104951609B (zh) | 一种处理门级网表中的同步逻辑结构的方法 | |
Tu et al. | Timing driven routing tree construction | |
Radu et al. | Optimizing application mapping algorithms for NoCs through a unified framework | |
Fujiwara et al. | Clock skew estimate modeling for FPGA high-level synthesis and its application | |
CN110807244A (zh) | 一种电力电子开关的电磁暂态仿真方法及装置 | |
Shklover et al. | Simultaneous clock and data gate sizing algorithm with common global objective | |
CN112214955B (zh) | 一种提取超大规模集成电路芯片电源模型参数的方法 | |
WO2018113182A1 (zh) | 一种测试向量的生成方法及装置、存储介质 | |
Wang et al. | Summary of Tools in FPGA Static Timing Analysis | |
CN115470740A (zh) | 时序分析方法、装置、电子设备和存储介质 | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
US9348958B2 (en) | Method and apparatus for calculating yield | |
US7797665B1 (en) | Patterns for routing nets in a programmable logic device | |
Hanyu et al. | Accurate and high-speed asynchronous network-on-chip simulation using physical wire-delay information |
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 |