CN114742001A - 一种基于多fpga的系统静态时序分析方法 - Google Patents
一种基于多fpga的系统静态时序分析方法 Download PDFInfo
- Publication number
- CN114742001A CN114742001A CN202210257478.7A CN202210257478A CN114742001A CN 114742001 A CN114742001 A CN 114742001A CN 202210257478 A CN202210257478 A CN 202210257478A CN 114742001 A CN114742001 A CN 114742001A
- Authority
- CN
- China
- Prior art keywords
- time
- node
- path
- paths
- nodes
- 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/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- 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]
- G06F30/343—Logical level
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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的系统静态时序分析方法包括,读入网表文件,根据节点的属性对所述网表文件进行分类,并生成电路的连接关系图;从时钟输入端沿着时钟路径开始搜索分频器;根据起始点类型对整体电路进行遍历搜索路径,对已搜到的路径类型进行判断并计算其时延;生成建立时间违例路径、保持时间违例路径以及端口间组合逻辑路径的时序报告。能够对FPGA内部时序路径建立时间和保持时间是否满足时序要求进行分析,能够对分割后两块FPGA之间通过互连线的方式引入延时信息后的时序路径是否满足建立时间和保持时间要求进行分析,能够满足对超大规模集成电路的多FPGA芯片进行静态时序分析的要求。
Description
技术领域
本发明涉及微电路分析技术领域,尤其涉及一种基于多FPGA的系统静态时序分析方法。
背景技术
静态时序分析简称STA(Static Timing Analysis),它是一种穷尽的分析方法,依照同步电路设计的要求以及电路网表的拓扑结构,计算并检查电路中每个触发器的建立时间和保持时间以及其它基于路径的时延要求是否满足。静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会依据特定的时序模型进行分析,给出正确的时序报告。
随着芯片尺寸的减小、集成度密集化的增强、电路设计复杂度的增加、电路性能要求的提高等,对芯片内的时序分析提出了更高的要求。在典型的超大规模数字集成电路仿真验证中多FPGA芯片配合工作,要得到系统时序性能,需要从系统的角度建立时序分析模型。不仅需要分析FPGA内部时序路径建立时间和保持时间是否满足时序要求,还需要分析分割后两块FPGA之间通过互连线的方式引入延时信息后的时序路径是否满足建立时间和保持时间要求,现有的对超大规模集成电路的多FPGA芯片进行静态时序分析方法难以满足要求。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有存在的问题,提出了本发明。
因此,本发明解决的技术问题是:在典型的超大规模数字集成电路仿真验证中多FPGA芯片配合工作,要得到系统时序性能,需要从系统的角度建立时序分析模型。不仅需要分析FPGA内部时序路径建立时间和保持时间是否满足时序要求,还需要分析分割后两块FPGA之间通过互连线的方式引入延时信息后的时序路径是否满足建立时间和保持时间要求,对超大规模集成电路的多FPGA芯片进行静态时序分析的过程复杂且费时费力。
为解决上述技术问题,本发明提供如下技术方案:一种基于多FPGA的系统静态时序分析方法包括,读入网表文件,根据节点的属性对所述网表文件进行分类,并生成电路的连接关系图;从时钟输入端沿着时钟路径开始搜索分频器;根据起始点类型对整体电路进行遍历搜索路径,对已搜到的路径类型进行判断并计算其时延;建立时间违例路径、保持时间违例路径以及端口间组合逻辑路径的时序报告。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:所述节点的分类的依据包括输入文件中提供的节点的属性、命名规则和连接关系。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:所述输入文件包括节点定义文件、节点分组文件、连接定义文件、时钟定义文件、时分复用定义文件,输入网表文件信时对节点定义文件、节点分组文件、连接定义文件、时钟定义文件、时分复用定义文件进行读取,存储在程序中。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:对所述分频器进行标记后进行时钟路径搜索。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:根据节点名称将节点分为gx和gpx(其中x=0,1,2…);根据节点定义文件中结点是否有clk属性以及是否为输入输出端将gpx(其中x=0,1,2…)结点分为输入时钟和gpin或者gpout;根据节点定义文件中结点是否有ff属性将gx(其中x=0,1,2…)分为组合逻辑结点和具有ff属性结点,其中具有ff属性结点根据其无clk属性和是否只作为源点将其分为组合逻辑或者vcc和gnd,具有ff属性的结点且有clk属性的结点为寄存器结点;组合逻辑结点前后所连的结点若均有clk属性且两者的clk值不同,则该组合逻辑结点为分频器。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:所述时钟路径类型包括从输入端到触发器、从触发器到触发器、从触发器到输出端和从输入端到输出端。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:在计算时钟路径时延时的步骤:先判断所述时钟路径的起始节点,所述起始节点包括数据输入端和寄存器;然后进行遍历搜索路径;每搜到一条路径就对其路径类型进行判断及计算。
作为本发明所述的基于多FPGA的系统静态时序分析方法的一种优选方案,其中:所述的时序报告包括建立时间违例时延累加和、保持时间违例时延累加和、top20的建立时间违例路径、top20的保持时间违例路径、top20端口间组合逻辑关键路径。
本发明的有益效果:能够对FPGA内部时序路径建立时间和保持时间是否满足时序要求进行分析,能够对分割后两块FPGA之间通过互连线的方式引入延时信息后的时序路径是否满足建立时间和保持时间要求进行分析,能够满足对超大规模集成电路的多FPGA芯片进行静态时序分析的要求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的基本流程示意图;
图2为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的流程示意图;
图3为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的节点分类流程示意图;
图4为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的电路节点连接关系示意图;
图5为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的setup违例时序报告(部分截图),其中setup slack为建立时间违例时延和、hold slack为保持时间违例时延和、Combinal Port Delay为端口间组合逻辑时延和;
图6为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的hold违例时序报告(部分截图);
图7为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的端口间组合逻辑时延的时序报告(部分截图);
图8为本发明一个实施例提供的一种基于多FPGA的系统静态时序分析方法的输入文件。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
参照图2~8,为本发明的一个实施例,提供了一种,包括:
S1:根据节点的属性对网表文件进行分类,并生成电路的连接关系图;
读入网表文件,根据节点的属性对其进行分类,具体分类方法如下:
1)根据结点名称分成两类结点gx和gpx(其中x=0,1,2…);
2)根据design.are文件中结点是否有clk属性以及是否为输入输出端将gpx(其中x=0,1,2…)结点分为输入时钟和gpin或者gpout;
3)根据design.are文件中结点是否有ff属性将gx(其中x=0,1,2…)分为组合逻辑结点和具有ff属性结点,其中具有ff属性结点根据其无clk属性和是否只作为源点将其分为组合逻辑或者vcc和gnd。具有ff属性的结点且有clk属性的结点是寄存器结点;
4)组合逻辑结点前后所连的结点若均有clk属性且两者的clk值不同,则该组合逻辑结点为分频器。
节点的分类的依据包括输入文件中提供的节点的属性、命名规则和连接关系,对节点进行分类的目的是确保后续查找路径的准确性。
节点的分类的依据包括输入文件中提供的节点的属性、命名规则和连接关系。输入文件包括节点定义文件、节点分组文件、连接定义文件、时钟定义文件、时分复用定义文件,输入网表文件信时对节点定义文件、节点分组文件、连接定义文件、时钟定义文件、时分复用定义文件进行读取,存储在程序中。
根据节点的属性对其进行分类;通过对节点定义文件(design.are)、节点分组文件(design.node)、连接定义文件(design.net)、时钟定义文件(design.clock)、时分复用定义文件(design.tdm)输入网表信息这五个文件进行读取,存储在程序中;根据时钟的变化标记分频器;通过对四种静态时序分析路径(In->Register、Register->Register、Register->Out、In->Out这四类)分别进行判断和分析,然后通过DFS搜寻路径;最后输出完整的时序报告。
节点的分类是根据design.are文件和design.net文件来判断,具体分为四类:寄存器节点、时钟输入节点、普通输入节点、普通输出节点、组合逻辑单元节点。
通过对节点定义文件(design.are)、节点分组文件(design.node)、连接定义文件(design.net)、时钟定义文件(design.clock)、时分复用定义文件(design.tdm)这五个文件进行读取,并按照上述的分类要求将输入文件存储在程序中。
互连线分为直连线和TDM传输两种类型,直连线即为直接通过Cable传递单一信号,延时时间固定;TDM传输为多个信号时分复用同一根Cable在FPGA的间传递信号,延时时间可变。
S2:从时钟输入端沿着时钟路径开始搜索分频器。
根据节点名称将节点分为gx和gpx(其中x=0,1,2…);根据节点定义文件中结点是否有clk属性以及是否为输入输出端将gpx(其中x=0,1,2…)结点分为输入时钟和gpin或者gpout;根据节点定义文件中结点是否有ff属性将gx(其中x=0,1,2…)分为组合逻辑结点和具有ff属性结点,其中具有ff属性结点根据其无clk属性和是否只作为源点将其分为组合逻辑或者vcc和gnd,具有ff属性的结点且有clk属性的结点为寄存器结点;组合逻辑结点前后所连的结点若均有clk属性且两者的clk值不同,则该组合逻辑结点为分频器。
根据时钟的变化标记分频器。在寻找时钟路径时,需要深度搜索来标记分频器,由于分频器只能位于时钟路径上,只需要判断时钟节点连接的组合逻辑的下一个节点是不是寄存器,如果是的话还需满足此寄存器的时钟和分频器前面的时钟不一致。
对分频器进行标记后进行搜索时钟路径,标记分频器具体方法为:单独写深度搜索来标记,由于分频器只能位于时钟路径上,只需要判断时钟节点连接的组合逻辑的下一个节点是不是寄存器,如果是的话还需满足此寄存器的时钟和分频器前面的时钟不一致。可以采用深度优先搜索算法(Depth-First-Search,缩写为DFS)或广度优先搜索算法(Breadth-First-Search,缩写为BFS)进行搜索。
时钟路径类型包括:从输入端到触发器、从触发器到触发器、从触发器到输出端和从输入端到输出端,在静态时序分析和计算过程中,把从输入端到触发器和从触发器到输出端路径的输入端和输出端当作虚拟寄存器处理。
在计算时钟路径时延时:先判断时钟路径的起始节点,起始节点包括数据输入端和寄存器;然后进行DFS遍历搜索路径;每搜到一条路径就对其路径类型进行判断及计算,直到所有的路径都搜索完为止。
在计算数据路径上时延的时候,必须考虑时钟源和寄存器之前存在cable或者TDM的情况,否则会导致延时偏差很大。因此,需要在搜索的时候对时钟路上的延时多一次判断。
S3:根据起始点类型对整体电路进行遍历搜索路径,对已搜到的路径类型进行判断并计算其时延;
时钟路径类型包括从输入端到触发器、从触发器到触发器、从触发器到输出端和从输入端到输出端。
计算时钟路径时延时的步骤:先判断时钟路径的起始节点,起始节点包括数据输入端和寄存器;然后进行遍历搜索路径;每搜到一条路径就对其路径类型进行判断及计算。
按照STA中的四种时序路径分类为:In->RegisterD、CLK->RegisterD、CLK->Out、In->Out,但是这样在算法实现上就需要不停地往前追溯来区分CK端和D端,实现起来过于复杂。针对这一问题的解决办法是就把D触发器看成一个整体的节点,不对触发器节点进行CK端和D端的分类,把路径分类为In->Register、Register->Register、Register->Out、In->Out这四类,并把第一种和第三种路径的In和Out当作虚拟寄存器处理。在计算每条路径的时延时,首先判断起始节点,这里的起始节点分为两类:数据输入端和寄存器。判断完起始节点后,就开始进行DFS遍历搜索路径,每搜到一条路径就对其路径类型进行判断及计算,如图1所示,直到所有的路径都搜索完为止。
通过对四种静态时序分析路径分别进行判断和分析,然后通过DFS搜寻路径。根据四种时序路径,分别写出寄存器到寄存器建立时间检查函数、输入端到寄存器建立时间检查函数、寄存器到输出端建立时间检查函数,使用深度优先算法去遍历时钟节点到寄存器存在的路径以及路径上存在的cable或者TDM延时,分频器也视为时钟节点。求此路径是为了计算In->Register、Register->Register、Register->Out这三种路径的建立时间和保持时间。
寄存器到寄存器setup slack的计算方法为:
data arrival time:Tarrive=Tlaunch+Tco+Tdp
data expected time:Trequire=Tcapture+Tcycle–Tsu
Setup Slack=Trequire–Tarrive
hold slack的计算方法为:
data arrival time:Tarrive=Tlaunch+Tco+Tdp
data expected time:Trequire=Tcapture+Thd
hold slack=Tarrive–Trequire
其中,Tcycle为clk的周期(design.clk文件已给出);
Tsu=1ns
Tco=1ns
Tdp(组合逻辑时延,一个组合逻辑单元的延时为0.1ns)
Thd=1ns
Tlaunch为发射路径延时;
Tcapture为捕获路径延时。
输入端到寄存器setup slack的计算方法为:
data arrival time:Tarrive=Tvirtual_launch+Tco+Tdp
data expected time:Trequire=Tcapture+Tcycle–Tsu
Setup Slack=Trequire–Tarrive
hold slack的计算方法为:
data arrival time:Tarrive=Tvirtual_launch+Tco+Tdp
data expected time:Trequire=Tcapture+Thd
hold slack=Tarrive–Trequire
其中,Tcycle为clk的周期(design.clk文件已给出);
Tsu=1ns
Tco=1ns
Tdp(组合逻辑时延,一个组合逻辑单元的延时为0.1ns)
Thd=1ns
Tvirtual_launch为虚拟发射路径延时;
Tcapture为捕获路径延时。
寄存器到输出端setup slack的计算方法为:
data arrival time:Tarrive=Tlaunch+Tco+Tdp
data expected time:Trequire=Tvirtual_capture+Tcycle–Tsu
Setup Slack=Trequire–Tarrive
hold slack的计算方法为:
data arrival time:Tarrive=Tlaunch+Tco+Tdp
data expected time:Trequire=Tvirtual_capture+Thd
hold slack=Tarrive–Trequire
其中,Tcycle为clk的周期(design.clk文件已给出);
Tsu=1ns
Tco=1ns
Tdp(组合逻辑时延,一个组合逻辑单元的延时为0.1ns)
Thd=1ns
Tlaunch为发射路径延时;
Tvirtual_capture为虚拟捕获路径延时;
纯组合逻辑路径的延时计算方法为输入端和输出端所有组合逻辑单元的时延累加和。
若T1,T2,…,TN为输入端和输出端之间的N个相连的组合逻辑单元,则从输入端到输出端的总延时Ttotal=T1+T2+…+TN。
对于所给测试例中的特殊情况,以及对于特殊情况的解决方法:
对于所给的测试例里面存在的环路问题。环路是用标记弧或者顶点来确定的,如果标记点的话,不会重复搜索;如果标记弧的话,环路只保存一次,不会无限循环。
对于所给的测试例里面存在多条路径和多条连线的问题。两点之间多条连线和两点之间多条路径是不一样的,两点之间多条路径会直接搜出来,两点之间的多条连线连线间是等价的,只存了一条线。
优先考虑具有人能够识别的计算优先级,考虑将表达式转换成后缀表达式,将表达式计算优先级展现在表达式的左右顺序上,转换成计算机能够识别的后缀表达式。全部计算流程如下:
后缀表达式的计算方法:
取到后缀表达式的字符串时,从左到右依次遍历。遍历元素处理情况跟如下:
a.遍历元素如果为操作数,则进入维护的栈中,等待取用。
b.遍历元素如果为操作符,则从维护的栈中弹出两个数,分先后依次为右左操作数,完成相关运算,将计算结果再次入栈。
遍历后缀表达式结束后,所维护的栈中还剩下一个元素,即是所计算的结果。如果栈中元素不是一个,则输出异常信息。
转换成后缀表达式的计算过程:
读取题设文件中缀表达式字符串,依次遍历,遍历元素处理过程如下:
维护一个栈,现将栈底标记符(可以取非表达式的任意字符)压入栈底
a.遍历元素为操作数时,直接输出。
b.遍历元素为输入变量时,(如题设提供为r,进行标记,便于后续的参数输入),同样进行输出。
c.遍历元素为右括号”)”,则直接进行连续出栈输出,直到输出到左括号“(”出栈为止,但是左括号不输出。
d.若遍历元素为操作符或者左括号”(”,则将该元素的栈外优先级与栈顶元素的栈内优先级进行大小比较,若前者小于等于后者,则连续进行出栈输出,直到当前扫描元素的栈外优先级大于栈顶元素的栈内优先级时,停止出栈。此时,再将该扫描元素进栈。
e.遍历结束时,依次输出栈中其他元素(栈底标记符除外)。
完成后缀表达式的转换后,即可保存。
留至步骤a,进行后缀表达式的计算。
表1、栈内与栈外优先级表。
S4:建立时间违例路径、保持时间违例路径以及端口间组合逻辑路径的时序报告。
时序报告包括建立时间违例时延累加和、保持时间违例时延累加和、top20的建立时间违例路径、top20的保持时间违例路径、top20端口间组合逻辑关键路径。在时序报告中按照顺序建立出了setup违例时延累加和、hold违例时延累加和、top20的建立时间违例路径、top20的保持时间违例路径、top20端口间组合逻辑关键路径,如果没有违例路径的情况下,则不建立违例路径。能够检查每条路径的建立时间和保持时间,不仅检查单FPGA电路内部的时序路径,还有多FPGA之间通过插入cable或者TDM方式引入延时信息后的时序路径是否满足建立时间和保持时间要求。在时序报告中按照违例延时的顺序,建立出了setup违例时延累加和、hold违例时延累加和、top20的建立时间违例路径、top20的保持时间违例路径、top20端口间组合逻辑关键路径,能够对FPGA内部时序路径建立时间和保持时间是否满足时序要求进行分析,能够对分割后两块FPGA之间通过互连线的方式引入延时信息后的时序路径是否满足建立时间和保持时间要求进行分析,能够满足对超大规模集成电路的多FPGA芯片进行静态时序分析的要求。
实施例2
参照图2~8,为本发明另一个实施例,该实施例不同于第一个实施例的是,提供了一种基于多FPGA的系统静态时序分析方法的验证测试,为对本方法中采用的技术效果加以验证说明,本实施例采用传统技术方案与本发明方法进行对比测试,以科学论证的手段对比试验结果,以验证本方法所具有的真实效果。
优选的,本实施例为了更便于非本技术领域人员对本发明的理解,分别从以下四个方面进行单独解释说明,五个输入文件说明如下:
本实施例中的五个输入文件:design.are、design.net、design.node、design.clk、design.tdm皆由软件生成,下面依次对这五个文件进行说明:
design.are:每个节点名称以字母g和一个不重复的数字组成,每行表示一个节点名称和时延属性及相关信息。
design.net:每个连线信息由2个或更多节点组成,一个为驱动节点(s),其他为负载节点(l),每行表示一个连线的部分信息。
design.node:分割结果文件,由分割算法根据当前的分割策略和模式运算得出的最优结果。每一行包含一个分组信息里面包含的节点列表。
design.clk:每行表示一个clock的名称、频率及相关信息。
design.tdm:每行表示一个TDM的名称、时延计算公式。
其中setup slack和hold slack计算公式
setup slack的计算方法为:
data arrival time:Tarrive=Tco+Tdp
data expected time:Trequire=Tcycle–Tsu
Setup Slack=Trequire–Tarrive
hold slack的计算方法为:
data arrival time:Tarrive=Tco+Tdp
data expected time;Trequire=Thd
hold slack=Tarrive–Trequire
其中,Tcycle为clk的周期(design.clk文件已给出);
Tsu=1ns
Tco=1ns
Tdp(组合逻辑时延,一个组合逻辑单元的延时为0.1ns)
Thd=1ns
表2、测试项及其描述表。
测试项 | FPGA个数 | 节点数 | 连线数 | 板间连接方式 |
testdata_1 | 1 | 20 | × | × |
testdata_2 | 1 | 10000 | × | × |
testdata_3 | 2 | 20 | 40 | Cable直连 |
testdata_4 | 2 | 1000 | 1000 | TDM可变延时 |
表3、测试结果统计表。
测试项 | Setup违例时延和 | hold违例时延和 | 运行时间 | 运行内存 |
testdata_1 | 0 | 0 | 0.00589s | 14.8MB |
testdata_2 | 0 | 0 | 0.04128s | 13.1MB |
testdata_3 | 0 | 0 | 0.00644s | 14.8MB |
testdata_4 | 0 | 40ns | 0.04203s | 17.8MB |
由于搜索算法采用的是DFS算法,而DFS算法是一个递归算法,需要借助一个递归工作栈,故它的空间复杂度为O(V)。遍历图的过程实质上是对每个顶点查找其邻接点的过程,其耗费的时间取决于所采用结构。本程序中采用邻接表存储图,查找所有顶点的邻接点所需时间为O(E),访问顶点的邻接点所花时间为O(V),此时,总的时间复杂度为O(V+E)。其中,V是结点个数,E是结点之间连线个数。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。方法可以使用标准编程技术包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在可编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
如在本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种基于多FPGA的系统静态时序分析方法,其特征在于,包括:
读入网表文件,根据节点的属性对所述网表文件进行分类,并生成电路的连接关系图;
从时钟输入端沿着时钟路径开始搜索分频器;
根据起始点类型对整体电路进行遍历搜索路径,对已搜到的路径类型进行判断并计算其时延;
建立时间违例路径、保持时间违例路径以及端口间组合逻辑路径的时序报告。
2.如权利要求1所述的基于多FPGA的系统静态时序分析方法,其特征在于:所述节点的分类的依据包括输入文件中提供的节点的属性、命名规则和连接关系。
3.如权利要求2所述的基于多FPGA的系统静态时序分析方法,其特征在于:所述输入文件包括节点定义文件、节点分组文件、连接定义文件、时钟定义文件、时分复用定义文件,时序分析时对节点定义文件、节点分组文件、连接定义文件、时钟定义文件、时分复用定义文件进行读取,存储在程序中。
4.如权利要求3所述的基于多FPGA的系统静态时序分析方法,其特征在于:对所述分频器进行标记后进行搜索时钟路径。
5.如权利要求4所述的基于多FPGA的系统静态时序分析方法,其特征在于:根据节点名称将节点分为gx和gpx(其中x=0,1,2…);
根据节点定义文件中结点是否有clk属性以及是否为输入输出端将gpx(其中x=0,1,2…)结点分为输入时钟和gpin或者gpout;
根据节点定义文件中结点是否有ff属性将gx(其中x=0,1,2…)分为组合逻辑结点和具有ff属性结点,其中具有ff属性结点根据其无clk属性和是否只作为源点将其分为组合逻辑或者vcc和gnd,具有ff属性的结点且有clk属性的结点为寄存器结点;
组合逻辑结点前后所连的结点若均有clk属性且两者的clk值不同,则该组合逻辑结点为分频器。
6.如权利要求1所述的基于多FPGA的系统静态时序分析方法,其特征在于:所述路径类型包括从输入端到触发器、从触发器到触发器、从触发器到输出端和从输入端到输出端。
7.如权利要求6所述的基于多FPGA的系统静态时序分析方法,其特征在于:在计算时钟路径时延时的步骤:
先判断所述时钟路径的起始节点,所述起始节点包括数据输入端和寄存器;
然后进行遍历搜索路径;
每搜到一条路径就对其路径类型进行判断及计算。
8.如权利要求7所述的基于多FPGA的系统静态时序分析方法,其特征在于:所述的时序报告包括建立时间违例时延累加和、保持时间违例时延累加和、top20的建立时间违例路径、top20的保持时间违例路径、top20端口间组合逻辑关键路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257478.7A CN114742001B (zh) | 2022-03-16 | 2022-03-16 | 一种基于多fpga的系统静态时序分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257478.7A CN114742001B (zh) | 2022-03-16 | 2022-03-16 | 一种基于多fpga的系统静态时序分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114742001A true CN114742001A (zh) | 2022-07-12 |
CN114742001B CN114742001B (zh) | 2023-08-29 |
Family
ID=82276813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210257478.7A Active CN114742001B (zh) | 2022-03-16 | 2022-03-16 | 一种基于多fpga的系统静态时序分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114742001B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544929A (zh) * | 2022-11-30 | 2022-12-30 | 中科亿海微电子科技(苏州)有限公司 | 对fpga eda软件中路径时序延时的测试方法及装置 |
CN115600535A (zh) * | 2022-12-09 | 2023-01-13 | 中科亿海微电子科技(苏州)有限公司(Cn) | 一种对fpga动态可重构区进行时序分析的方法及装置 |
CN115964975A (zh) * | 2022-12-30 | 2023-04-14 | 芯耀辉科技有限公司 | 静态时序分析方法及其系统、计算机可读取介质 |
CN116090383A (zh) * | 2022-12-27 | 2023-05-09 | 广东高云半导体科技股份有限公司 | 实现静态时序分析的方法、装置、计算机存储介质及终端 |
CN116108783A (zh) * | 2023-04-04 | 2023-05-12 | 上海思尔芯技术股份有限公司 | 分块逻辑时序分析建模及处理方法、系统、设备及介质 |
CN116502578A (zh) * | 2023-06-29 | 2023-07-28 | 深圳国微晶锐技术有限公司 | 网表化简时序模型的构建方法及静态时序分析方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261218B1 (en) * | 2008-08-01 | 2012-09-04 | Altera Corporation | Systems and methods for determining beneficial clock-path connection delays |
US20160161551A1 (en) * | 2013-07-26 | 2016-06-09 | Mentor Graphics Corporation | Automated method for analyzing a board having a plurality of fpga components |
CN105808795A (zh) * | 2014-12-29 | 2016-07-27 | 京微雅格(北京)科技有限公司 | 基于时序约束的fpga芯片全局布局优化方法 |
CN106096171A (zh) * | 2016-06-22 | 2016-11-09 | 深圳市紫光同创电子有限公司 | 基于静态分析的异步电路时序检查方法 |
CN107862154A (zh) * | 2017-11-29 | 2018-03-30 | 成都锐成芯微科技股份有限公司 | 一种时序调整方法 |
WO2018076735A1 (zh) * | 2016-10-31 | 2018-05-03 | 深圳市中兴微电子技术有限公司 | 一种修复保持时间违例的方法和装置、计算机存储介质 |
CN108073771A (zh) * | 2017-12-25 | 2018-05-25 | 中国电子科技集团公司第四十七研究所 | Fpga静态时序分析算法 |
CN108173617A (zh) * | 2017-11-21 | 2018-06-15 | 北京兰云科技有限公司 | 一种全网时钟拓扑及时钟路径获取方法 |
CN109583103A (zh) * | 2018-12-04 | 2019-04-05 | 珠海市微半导体有限公司 | 一种基于时间余量的时序修复方法 |
US20200026818A1 (en) * | 2018-07-23 | 2020-01-23 | Sandisk Technologies Llc | Less-pessimistic static timing analysis for synchronous circuits |
CN111950214A (zh) * | 2020-08-14 | 2020-11-17 | Oppo广东移动通信有限公司 | 一种时序分析方法、装置、设备以及计算机存储介质 |
CN112666451A (zh) * | 2021-03-15 | 2021-04-16 | 南京邮电大学 | 一种集成电路扫描测试向量生成方法 |
CN113177380A (zh) * | 2021-04-29 | 2021-07-27 | 飞腾信息技术有限公司 | 一种基于dummy的时序优化方法 |
CN113971383A (zh) * | 2020-07-24 | 2022-01-25 | 美商新思科技有限公司 | 分布式静态时序分析 |
-
2022
- 2022-03-16 CN CN202210257478.7A patent/CN114742001B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261218B1 (en) * | 2008-08-01 | 2012-09-04 | Altera Corporation | Systems and methods for determining beneficial clock-path connection delays |
US20160161551A1 (en) * | 2013-07-26 | 2016-06-09 | Mentor Graphics Corporation | Automated method for analyzing a board having a plurality of fpga components |
CN105808795A (zh) * | 2014-12-29 | 2016-07-27 | 京微雅格(北京)科技有限公司 | 基于时序约束的fpga芯片全局布局优化方法 |
CN106096171A (zh) * | 2016-06-22 | 2016-11-09 | 深圳市紫光同创电子有限公司 | 基于静态分析的异步电路时序检查方法 |
WO2018076735A1 (zh) * | 2016-10-31 | 2018-05-03 | 深圳市中兴微电子技术有限公司 | 一种修复保持时间违例的方法和装置、计算机存储介质 |
CN108173617A (zh) * | 2017-11-21 | 2018-06-15 | 北京兰云科技有限公司 | 一种全网时钟拓扑及时钟路径获取方法 |
CN107862154A (zh) * | 2017-11-29 | 2018-03-30 | 成都锐成芯微科技股份有限公司 | 一种时序调整方法 |
CN108073771A (zh) * | 2017-12-25 | 2018-05-25 | 中国电子科技集团公司第四十七研究所 | Fpga静态时序分析算法 |
US20200026818A1 (en) * | 2018-07-23 | 2020-01-23 | Sandisk Technologies Llc | Less-pessimistic static timing analysis for synchronous circuits |
CN109583103A (zh) * | 2018-12-04 | 2019-04-05 | 珠海市微半导体有限公司 | 一种基于时间余量的时序修复方法 |
CN113971383A (zh) * | 2020-07-24 | 2022-01-25 | 美商新思科技有限公司 | 分布式静态时序分析 |
CN111950214A (zh) * | 2020-08-14 | 2020-11-17 | Oppo广东移动通信有限公司 | 一种时序分析方法、装置、设备以及计算机存储介质 |
CN112666451A (zh) * | 2021-03-15 | 2021-04-16 | 南京邮电大学 | 一种集成电路扫描测试向量生成方法 |
CN113177380A (zh) * | 2021-04-29 | 2021-07-27 | 飞腾信息技术有限公司 | 一种基于dummy的时序优化方法 |
Non-Patent Citations (5)
Title |
---|
周海斌: "静态时序分析在高速FPGA设计中的应用", 《电子工程师》 * |
周海斌: "静态时序分析在高速FPGA设计中的应用", 《电子工程师》, no. 11, 15 November 2005 (2005-11-15), pages 41 - 44 * |
喻伟;陈恩耀;马海燕;祝周荣;宋雷军;王永孟;: "一种基于时延配置表的FPGA静态时序分析算法", 太赫兹科学与电子信息学报, no. 04, pages 735 - 741 * |
王冬: "FPGA静态时序约束方法分析", 《空间电子技术》 * |
王冬: "FPGA静态时序约束方法分析", 《空间电子技术》, no. 05, 25 October 2017 (2017-10-25), pages 103 - 106 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544929A (zh) * | 2022-11-30 | 2022-12-30 | 中科亿海微电子科技(苏州)有限公司 | 对fpga eda软件中路径时序延时的测试方法及装置 |
CN115600535A (zh) * | 2022-12-09 | 2023-01-13 | 中科亿海微电子科技(苏州)有限公司(Cn) | 一种对fpga动态可重构区进行时序分析的方法及装置 |
CN116090383A (zh) * | 2022-12-27 | 2023-05-09 | 广东高云半导体科技股份有限公司 | 实现静态时序分析的方法、装置、计算机存储介质及终端 |
CN115964975A (zh) * | 2022-12-30 | 2023-04-14 | 芯耀辉科技有限公司 | 静态时序分析方法及其系统、计算机可读取介质 |
CN115964975B (zh) * | 2022-12-30 | 2023-09-05 | 芯耀辉科技有限公司 | 静态时序分析方法及其系统、计算机可读取介质 |
CN116108783A (zh) * | 2023-04-04 | 2023-05-12 | 上海思尔芯技术股份有限公司 | 分块逻辑时序分析建模及处理方法、系统、设备及介质 |
CN116502578A (zh) * | 2023-06-29 | 2023-07-28 | 深圳国微晶锐技术有限公司 | 网表化简时序模型的构建方法及静态时序分析方法 |
CN116502578B (zh) * | 2023-06-29 | 2024-04-16 | 深圳国微晶锐技术有限公司 | 网表化简时序模型的构建方法及静态时序分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114742001B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114742001B (zh) | 一种基于多fpga的系统静态时序分析方法 | |
US5572436A (en) | Method and system for creating and validating low level description of electronic design | |
US20050091025A1 (en) | Methods and systems for improved integrated circuit functional simulation | |
US5870308A (en) | Method and system for creating and validating low-level description of electronic design | |
US7162706B2 (en) | Method for analyzing and validating clock integration properties in circuit systems | |
US6148436A (en) | System and method for automatic generation of gate-level descriptions from table-based descriptions for electronic design automation | |
US8875082B1 (en) | System and method for detecting and prescribing physical corrections for timing violations in pruned timing data for electronic circuit design defined by physical implementation data | |
US7302417B2 (en) | Method and apparatus for improving efficiency of constraint solving | |
US10372856B2 (en) | Optimizing constraint solving by rewriting at least one bit-slice constraint | |
US7917884B2 (en) | Enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver | |
JP2001142937A (ja) | 回路のスケジューリング正当性チェック方法及びスケジュール検証方法 | |
US11138357B1 (en) | Formal verification with EDA application and hardware prototyping platform | |
US7712059B1 (en) | Coverage metric and coverage computation for verification based on design partitions | |
US8037448B2 (en) | Language and templates for use in the design of semiconductor products | |
US7188327B2 (en) | Method and system for logic-level circuit modeling | |
JP3851357B2 (ja) | トランジスタ回路のタイミング特性抽出方法、タイミング特性ライブラリを記憶した記憶媒体、lsiの設計方法、及びゲート抽出方法 | |
US7047139B2 (en) | Sharing information between instances of a propositional satisfiability (SAT) problem | |
US6990438B1 (en) | Method and apparatus for observability-based code coverage | |
US6618841B1 (en) | Non-assignable signal support during formal verification of circuit designs | |
US10540468B1 (en) | Verification complexity reduction via range-preserving input-to-constant conversion | |
US6560571B1 (en) | Method and apparatus for prioritizing the order in which checks are performed on a node in an integrated circuit | |
US8504953B2 (en) | Schematic generation visualization aid for netlists comprising analog circuits | |
Huang et al. | A robust ECO engine by resource-constraint-aware technology mapping and incremental routing optimization | |
Vidal-Obiols et al. | RTL-aware dataflow-driven macro placement | |
US11531803B1 (en) | IPBA-driven full-depth EPBA of operational timing for circuit design |
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 |