CN119026542A - Fpga芯片的层次化静态时序分析方法及系统 - Google Patents
Fpga芯片的层次化静态时序分析方法及系统 Download PDFInfo
- Publication number
- CN119026542A CN119026542A CN202411033713.8A CN202411033713A CN119026542A CN 119026542 A CN119026542 A CN 119026542A CN 202411033713 A CN202411033713 A CN 202411033713A CN 119026542 A CN119026542 A CN 119026542A
- Authority
- CN
- China
- Prior art keywords
- time sequence
- timing
- module
- analysis
- information
- 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.)
- Pending
Links
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/32—Circuit design at the digital level
- G06F30/337—Design optimisation
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芯片中的每个功能模块的不同工作模式生成包含时序模型信息和延时信息的Liberty文件;在文件中为每个功能模块的时序弧标记关键字;获取FPGA芯片的网表信息,并查找匹配的时序弧;根据时序弧的参考时钟位置选择时序图建模或输入输出端口延时建模方法;基于构建的时序模型进行静态时序分析;生成时序分析报告。本方法通过采用标准Liberty文件格式和灵活的建模策略,实现了FPGA时序分析与业界标准工具的一致性,提高了分析准确性和效率,简化了工程实践流程,增强了对复杂FPGA设计的适应性。
Description
技术领域
本申请涉及集成电路设计领域,特别涉及FPGA芯片的静态时序分析技术。
背景技术
静态时序分析是FPGA芯片设计中评估性能和保证量产良率的关键技术。主流FPGA芯片公司如Xilinx、Altera和Anlogic等都提供了与其芯片配套的时序分析引擎,用于对用户设计进行时序分析和签核。随着PGA芯片功能的日益复杂化和集成度的不断提高,如何准确高效地对这些复杂系统进行静态时序分析成为了一个亟待解决的问题。
传统的FPGA时序分析方法存在诸多不足,举例来说:
时序信息的一致性问题:传统方法中,时序模型文件和时序弧延时文件通常是独立提供和维护的,这容易导致两者之间的信息不匹配,从而影响时序分析的准确性。
人为错误风险:时序模型文件和时序弧延时文件往往由设计人员根据对设计的理解手动编写,这个过程容易引入大量未知错误,降低了时序分析的可靠性。
工作效率低下:随着FPGA芯片集成模块数量的增加和工作模式的复杂化,设计人员需要耗费大量时间来描述时序模型和时序弧延时,严重影响了工作效率。
验证难度增加:复杂的FPGA芯片设计给验证工作带来了更多挑战,验证人员需要投入大量时间学习设计并验证模型的准确性,这不仅耗时耗力,还可能影响验证的全面性和准确性。
分析效率不足:随着FPGA芯片复杂度的提高,传统的时序分析方法在处理大规模设计时效率较低,难以满足快速迭代开发的需求。
不同工作模式的适应性不足:现有方法在处理FPGA模块在不同工作模式下的时序信息差异时存在局限性,难以全面准确地反映芯片在各种实际工作情况下的性能。
设计过程中的动态适应性不足:传统方法难以有效支持FPGA芯片设计过程中的动态需求,无法在设计的不同阶段提供最适合的时序分析结果。
面对这些技术挑战,亟需一种新的FPGA芯片静态时序分析方法,能够提高分析准确性,增强效率,简化工程实践流程,提升分析的灵活性和适应性,同时支持设计过程的动态需求。此外,新方法还需要确保与业界标准工具的分析结果保持一致,以促进设计验证的一致性和可靠性。
发明内容
本申请的目的在于提供一种FPGA芯片的层次化静态时序分析方法及系统,以解决上述背景技术中提出的问题。
本申请公开了一种FPGA芯片的层次化静态时序分析方法,包括以下步骤:
步骤A:为FPGA芯片中的每个功能模块的不同工作模式生成包含时序模型信息和延时信息的文件;
步骤B:在所述文件中,为每个功能模块的时序弧标记关键字;
步骤C:获取FPGA芯片的网表信息,并根据所述网表信息查找与功能模块和工作模式匹配的时序弧;
步骤D:对于查找到的每个时序弧,根据其参考时钟位置选择建模方法进行时序建模;
步骤E:基于构建的时序模型,对FPGA芯片进行静态时序分析;
步骤F:生成时序分析报告,用于指导FPGA芯片设计的优化和验证。
在一个优选例中,步骤A中使用硬件时序签核工具,基于时序签核数据库生成Liberty文件。
在一个优选例中,步骤B中为每个功能模块的所有时序弧标记module关键字,为每种工作模式下的时序弧标记when关键字。
在一个优选例中,步骤C中所述网表信息用于确定每个功能模块的连接关系和当前工作模式。
在一个优选例中,步骤D中的建模方法包括:
a)当参考时钟位于当前分析的功能模块外部时,采用时序图建模方法;
b)当参考时钟位于当前分析的功能模块内部时,采用输入输出端口延时建模方法。
在一个优选例中,采用时序图建模方法时,将时序弧延时信息直接标记到时序图中。
在一个优选例中,采用输入输出端口延时建模方法时,将该功能模块的输入端口视为芯片顶层模块的输出端口,将该功能模块的输出端口视为芯片顶层模块的输入端口,并使用延时信息设置相应的输入输出延时。
在一个优选例中,步骤E中使用FPGA时序分析引擎进行静态时序分析,所述FPGA时序分析引擎利用步骤B中标记的关键字来识别和处理不同功能模块在不同工作模式下的时序信息。
本申请还公开了一种FPGA芯片的层次化静态时序分析系统,包括:
文件生成模块,用于为FPGA芯片中的每个功能模块的不同工作模式生成包含时序模型信息和延时信息的文件;
关键字标记模块,用于在所述文件中为每个功能模块的时序弧标记关键字;
时序弧匹配模块,用于获取FPGA芯片的网表信息,并根据所述网表信息查找与功能模块和工作模式匹配的时序弧;
时序建模模块,用于对于查找到的每个时序弧,根据其参考时钟位置选择建模方法进行时序建模;
静态时序分析模块,用于基于构建的时序模型,对FPGA芯片进行静态时序分析;
报告生成模块,用于生成时序分析报告,用于指导FPGA芯片设计的优化和验证。
本申请还公开了一种FPGA芯片的层次化静态时序分析系统,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。
本申请提出了一种FPGA芯片的层次化静态时序分析方法,通过采用标准格式的Liberty文件进行时序信息的传输和处理,实现了高效、精确的时序分析。具体技术效果如下:
1)FPGA时序分析与工业界主流ASIC时序分析引擎时序分析流程结合:通过使用工业界主流ASIC时序分析引擎生成的Liberty文件,本申请实现了FPGA时序分析引擎与工业界主流ASIC时序分析引擎时序分析结果的一致性。标准格式的Liberty文件能够同时描述时序模型信息和延时信息,保证了FPGA时序分析结果的准确性和可靠性。
2)关键字“module”和”when”的应用:本申请首次提出使用关键字“module”和”when”来区分不同模块及其工作模式下的时序信息。这种标记方法有效避免了时序模型和时序弧延时信息不匹配的问题,提高了时序信息管理的系统化和条理性。
3)基于Liberty文件的时序建模方法:提出了两种基于Liberty文件的时序建模方法:时序图建模和输入输出端口延时建模。时序图建模方法将时序信息和延时信息集成到时序图中,避免了重复查找时序弧延时信息的需要,显著减少了时序分析的运行时间。输入输出端口延时建模方法则适用于内部时钟生成电路复杂的情况,通过等效处理简化了时序分析过程。
4)模块化设计和黑盒处理:通过层次化时序分析方法,将FPGA芯片的顶层模块和功能模块分开处理,既保证了芯片整体时序性能的准确性,又减少了时序图的复杂度和分析时间。黑盒处理方法允许在不了解模块内部具体实现的情况下进行时序分析,促进了模块化设计和IP复用。
5)自动化的Liberty文件提取和时序建模:本申请采用全自动化的Liberty文件提取和FPGA时序引擎的时序建模,减少了设计人员手动编写时序模型和时序弧延时文件的错误,并节约了设计和验证的时间成本,大幅简化了时序模型的验证工作。
6)延时信息的统一集成:在构建模块时序图时,时序弧延时信息直接标记到时序图中,无需在延时计算过程中重复查找对应的延时,显著提高了时序分析的效率。
综上所述,本申请通过标准化的Liberty文件和关键字标记方法,实现了高效、准确和系统化的FPGA芯片层次化静态时序分析,显著提高了时序分析的精度和效率,具有重要的技术优势和应用价值。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的FPGA芯片的层次化静态时序分析方法的工作流程示意图。
图2是根据本申请第一实施方式的FPGA芯片的层次化静态时序分析方法中,每条时序弧中主要存储的信息示意图。
图3是根据本申请第一实施方式的FPGA芯片的层次化静态时序分析方法中,时序图建模方法的示意图,展示了参考时钟位于模块外部的情况。
图4是根据本申请第一实施方式的FPGA芯片的层次化静态时序分析方法中,输入输出端口延时建模方法的示意图,展示了参考时钟位于模块内部的情况。
图5是根据本申请第一实施方式的FPGA芯片的层次化静态时序分析方法的流程示意图。
图6是根据本申请第二实施方式的FPGA芯片的层次化静态时序分析系统的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
FPGA(Field Programmable Gate Array):现场可编程逻辑门阵列,是一种可以通过编程实现特定功能的集成电路,广泛应用于通信、计算、自动化等领域。
STA(Static Timing Analysis):静态时序分析,是一种通过对电路设计进行时序检查和验证的方法,确保电路在各种工作条件下均能满足预期的时序要求。
ATE(Anlogic Timing Engine):安路静态时序分析引擎,是Anlogic公司为其FPGA芯片提供的时序分析工具,用于对用户设计进行时序分析和签核。
Liberty文件:一种计算机辅助设计领域描述设计或者电路单元时序模型和延时信息的交互文件,用于描述电路的时序模型和延时信息。Liberty文件能够同时包含时序模型信息和延时信息,广泛应用于静态时序分析中。
时序弧:在时序分析中,表示信号从一个时序点(如输入端口或寄存器)到另一个时序点之间的延时路径。时序弧的信息包括目标端口、参考端口、时序弧种类和延时值等。
平行时序弧(parallel arc):表示某个单元特定的两个引脚之间在物理上存在的多个可能的时序路径。在特定工作模式下只有其中一个被激活。
时钟树(Clock Tree):在同步数字电路中,用于将时钟信号从源头分发到各个触发器的网络结构。时钟树的设计直接影响芯片的性能和功耗。
时序签核(Timing Sign-off):在芯片设计流程中,通过全面的静态时序分析确认设计满足所有时序要求的过程。
时序图建模:一种时序建模方法,通过构建包含所有时序信息和延时信息的时序图,直观地表示电路的时序特性。
输入输出端口延时建模:一种时序建模方法,适用于目标端口参考时钟位于模块内部的情况,通过将模块的输入输出端口延时等效处理为芯片顶层模块的输出输入延时来进行时序分析。
黑盒处理:在时序分析中,将某些复杂模块视为“黑盒”,只关注其输入输出端口的时序信息,而不具体分析其内部实现。这种方法有助于简化时序分析过程,提高分析效率。
模块关键字(module):用于标记Liberty文件中的时序信息,区分不同功能模块的时序弧。
工作模式(Operating Mode):FPGA芯片或其内部模块在不同条件下的运行状态。不同的工作模式可能会影响电路的时序特性。
工作模式关键字(when):用于标记Liberty文件中的时序信息,区分同一模块在不同工作模式下的时序弧。
下面概要说明本申请的技术构思和整体技术方案:
为了应对上述技术挑战,本申请的发明人经过深入研究分析,提出了一种创新的FPGA芯片静态时序分析方法。该方法不仅解决了传统方法中存在的问题,还引入了一些新的技术手段来进一步提高时序分析的准确性和效率。
芯片的静态时序分析方法主要分为两种:展平式(flatten)时序分析和层次化(hierarchical)时序分析。这两种分析方法的主要区别在于时序建模的方法不同。
展平式时序分析是指将整个FPGA芯片看作一个整体,在时序建模过程中将全部时序模型以时序图的形式整合到一张完整的时序图中。这种方法可以全面分析整个芯片的时序情况,但对于复杂的芯片设计,时序图可能变得非常庞大,导致分析过程耗时较长。
相比之下,层次化时序分析采用了不同的方法。它将芯片顶层看作一个整体,通过时序建模将顶层描述为一张时序图,同时将芯片中的一部分模块通过构建时序图集成到顶层时序图中,而将另一部分IP模块当作黑盒处理。作为黑盒处理的IP只关注端口处的时序信息,黑盒IP的时序弧并不会被映射到时序图中,而只会以输入输出延时的方法标记作端口延时。
在FPGA芯片设计时,黑盒IP内部的时序结果由芯片设计者通过ASIC时序签核工具保证收敛,而FPGA芯片作为黑盒IP的用户只需要对IP端口做时序分析即可。这种方法既能保证芯片正常工作,又可以有效减少时序图的体量,从而节约时序分析的运行时间。
层次化时序分析将IP整体当作黑盒,仅分析黑盒IP端口时序的方法具有显著优势。它不仅能确保芯片的正常工作,还能大幅减少需要分析的时序图规模,从而提高分析效率。这种方法特别适合复杂功能模块的时序分析,可以更快、更好地完成分析任务。
总的来说,层次化时序分析方法通过合理划分分析层次和范围,在保证分析准确性的同时,显著提高了分析效率,为复杂FPGA芯片设计提供了一种有效的静态时序分析解决方案。
FPGA芯片的层次化时序分析方法主要包含两个关键部分:首先是使用硬件时序签核工具提取Liberty时序文件,其次是FPGA时序分析引擎对这些Liberty时序文件进行识别和建模。这两个部分紧密结合,共同构成了完整的层次化时序分析流程。
其次,考虑到FPGA芯片设计是一个动态的过程,因此提出了在不同设计阶段提供Liberty文件的策略。例如,在模块设计的初期阶段,可以基于逻辑综合阶段性结果提取Liberty文件。这些文件主要用于FPGA芯片时序分析的初步测试,能够及早发现潜在的时序问题。而在模块设计完成时序签核后,则可以基于时序签核数据库提取更为精确的Liberty文件。这些文件将用于量产FPGA芯片的最终时序分析,确保芯片在实际应用中的时序性能符合要求。
最后,本申请的一个重要创新点是提出了根据模块及其不同工作模式分别提取独立Liberty文件的策略。这意味着每个模块在不同的工作模式下都会有对应的Liberty文件,用于描述该模式下的时序模型和时序弧延时信息。这种细粒度的分类方法使得时序分析能够更加精确地反映芯片在各种实际工作情况下的性能,大大提高了分析的准确性和可靠性。
通过这种多层次、多阶段的Liberty文件提取方法,本申请为FPGA芯片的层次化时序分析提供了全面而详细的时序信息基础。这不仅提高了时序分析的精度,也增强了分析结果的可信度,为FPGA芯片的性能优化和质量保证提供了有力支持。
在FPGA芯片的层次化时序分析方法中,Liberty文件的存储和时序建模是关键环节。本申请的实施例采用了一系列创新策略来有效管理和利用Liberty文件中的时序信息。
首先,针对不同模块的Liberty信息,时序分析引擎引入了"Module"关键字作为区分标识。这意味着每个模块的所有时序弧都共享一个独立的Module关键字。这种方法使得时序分析引擎能够快速识别和区分来自不同模块的时序信息,有效提高了数据管理和检索的效率。
其次,为了处理同一模块在不同工作模式下的Liberty信息,时序分析引擎巧妙地运用了”when”关键字和平行时序弧(parallel arc)的概念。具体而言,某一特定工作模式下的所有时序弧都共享同一个when关键字。这种设计允许时序分析引擎精确地识别和分析模块在不同工作状态下的时序特性,从而提供更加细致和准确的时序分析结果。
在时序建模方面,FPGA时序分析引擎基于Liberty信息主要采用两种建模方式:时序图建模和端口约束建模。选择哪种建模方式主要取决于模块的特性。如果模块内包含时钟树延时信息,就需要采用端口约束方式进行建模。这种方法能够更好地处理复杂的时钟树结构。而对于不包含时钟树延时信息的模块,则可以使用时序图建模,将时序信息和延时信息直接集成到时序图中,这种方法通常更加直观和高效。
时序分析引擎在进行时序建模时,还会根据时序弧的种类分别进行建模。主要包括四种类型:组合逻辑、时序逻辑、检查逻辑和复位逻辑。这种分类建模的方法使得时序分析能够更加精确地反映不同类型逻辑电路的时序特性,从而提供更加全面和准确的分析结果。
最后,本申请的实施例在时序图构建过程中采用了一项重要的优化策略:在构建时序图的同时,直接将时序弧延时信息标记到时序图中。这种做法避免了在后续延时计算过程中重复查找时序弧的需要,显著减少了数据访问和处理的开销。这一创新极大地提高了FPGA时序分析引擎的运行效率,有效缩短了时序分析的总体运行时间。
通过这些精心设计的存储和建模策略,本申请的实施例不仅提高了Liberty文件信息的管理效率,还显著增强了时序分析的准确性和速度。这为复杂FPGA芯片的时序分析提供了强有力的技术支持,有助于提升FPGA芯片的整体性能和可靠性。
图1详细展示了一种用于FPGA芯片的层次化时序分析工作流程。该流程充分体现了FPGA芯片的层次化结构和模块化设计理念,为复杂FPGA系统的时序分析提供了一种高效且灵活的方法。
在这个FPGA芯片设计中,整个芯片由三个主要部分组成:一个顶层模块(标记为top)和两个功能模块(分别标记为a和b)。这种结构设计反映了现代FPGA芯片的典型架构,即通过模块化设计来实现复杂功能,同时保持整体结构的清晰性和可管理性。
值得注意的是,这两个功能模块具有不同的工作模式,这反映了FPGA芯片在实际应用中的多功能性和灵活性。具体来说,模块a设计有两种不同的工作模式,而模块b则具备三种工作模式。这种多模式设计使得FPGA芯片能够适应不同的应用场景和工作需求,充分体现了FPGA的优势。
这种模块化和多模式的设计虽然增强了FPGA芯片的功能性,但同时也给时序分析带来了挑战。每种工作模式可能具有不同的时序特性,需要分别进行分析和验证。因此,图1所示的层次化时序分析工作流程就显得尤为重要,它提供了一种系统化的方法来处理这种复杂性,确保在各种工作模式下芯片都能保持正确的时序行为。
在FPGA芯片的层次化时序分析流程中,Liberty文件的提取是一个关键步骤。这个过程充分体现了模块化设计和团队协作的优势,同时也展示了如何处理复杂FPGA芯片中不同模块的多种工作模式。
首先,值得注意的是,模块a和b的时序信息是由不同的芯片设计工程师分别提供的。这种分工方式不仅提高了工作效率,也确保了每个模块都能得到专业的、针对性的处理。这反映了现代FPGA芯片设计中团队协作的重要性,每个工程师都能专注于自己的专业领域,从而提高整体设计质量。
对于a模块,在完成时序签核后,设计工程师使用硬件时序签核工具,基于时序签核的数据库,为其两种不同的工作模式分别生成了Liberty文件。这两个文件分别命名为a_1.lib和a_2.lib,对应a模块的两种工作模式。为了在后续分析中能够准确识别和处理这些文件,设计者采用了特定的关键字标记方法。具体来说,a模块的所有时序弧都标记了关键字“module:a”,这样可以轻松识别出所有属于a模块的时序信息。此外,a_1.lib中的时序弧标记了关键字“when:1”,而a_2.lib中的时序弧标记了关键字“when:2”。这种标记方式使得系统能够精确地区分不同工作模式下的时序特性。
类似地,b模块在完成时序签核后,也使用硬件时序签核工具基于时序签核的数据库进行Liberty文件的提取。由于b模块有三种工作模式,因此生成了三个Liberty文件:b_1.lib、b_2.lib和b_3.lib。同样地,b模块的所有时序弧都标记了关键字“module:b”,以便识别。每个Liberty文件中的时序弧又分别标记了对应的工作模式:b_1.lib标记“when:1”,b_2.lib标记“when:2”,b_3.lib标记“when:3”。
这种精细的文件生成和标记方法为后续的时序分析提供了强有力的支持。它不仅确保了每个模块在不同工作模式下的时序特性都能被准确捕获,还为时序分析工具提供了清晰的结构化数据,使得复杂FPGA芯片的时序分析变得更加可管理和高效。这种方法的灵活性和可扩展性也意味着它能够适应未来可能出现的更复杂的FPGA设计需求。
在本申请的FPGA芯片层次化时序分析方法中,Liberty文件的存储和时序建模是一个核心环节。这个过程采用了精心设计的数据结构和标记系统,以确保时序信息的完整性、准确性和可追溯性。
Liberty文件中的时序信息是以时序弧为基本单位进行存储的。如图2所示,每一条时序弧都包含了丰富的信息,这些信息共同描述了FPGA芯片中特定路径的时序特性。具体来说,每条时序弧包含以下关键信息:目标端口、参考端口、时序弧种类、时序弧延时、模块关键字module和工作模式关键字when。
其中,module关键字是本申请的一个重要创新点。它被用来区分不同的模块,使得时序分析系统能够快速识别和分类来自不同功能模块的时序信息。这种模块级别的区分对于大型FPGA设计的管理和分析至关重要。
目标端口和参考端口是描述时序路径的基本元素。目标端口指的是时序分析所关注的特定端口,而参考端口则是该目标端口的时序参考点。这两个信息共同定义了一个完整的时序路径。
when关键字是另一个重要的创新,它用于区分同一模块在不同工作模式下的时序信息。这种设计允许FPGA在不同的操作条件下保持最佳性能,同时也为设计者提供了更大的灵活性。
时序弧延时信息记录了在不同工艺角下的延时值。这种多角度的延时信息使得时序分析能够考虑到各种可能的制造和运行条件,从而提高了分析结果的可靠性。
时序弧类型的区分(组合逻辑、时序逻辑、检查逻辑和复位逻辑)反映了FPGA内部不同类型电路的特性。这种分类使得时序分析可以针对不同类型的逻辑采用最合适的分析策略。
在具体实现中,a模块和b模块的时序弧都采用了上述的标记方式。a模块的所有时序弧都标记了“module:a”,而其两种工作模式分别在a_1.lib和a_2.lib中用“when:1”和“when:2”标记。同样,b模块的时序弧标记了“module:b”,其三种工作模式分别在b_1.lib、b_2.lib和b_3.lib中用“when:1”、“when:2”和“when:3”标记。
这种精细的信息组织和标记方式为FPGA芯片的层次化时序分析提供了坚实的基础。它不仅使得时序信息的管理变得更加系统化和条理清晰,还为后续的时序分析和优化提供了丰富的上下文信息。这种方法的灵活性和可扩展性也意味着它能够适应未来可能出现的更复杂的FPGA设计需求。
在FPGA芯片的层次化时序分析方法中,为模块进行时序建模是一个关键步骤。这个过程主要分为两个重要阶段:查找时序弧和描述时序模型。这种两步法不仅使得建模过程更加系统化,也提高了时序分析的准确性和效率。
首先,查找时序弧是整个建模过程的基础。这一步骤的主要目的是为网表中的每个模块找到与其当前工作模式相对应的时序弧。这个过程可以进一步细分为两个子步骤:
1)模块识别:系统首先需要根据网表中的模块信息,在Liberty文件中查找对应的模块数据。这一步利用了前面提到的module关键字,可以快速定位到特定模块的时序信息。这种模块级别的匹配确保了时序分析能够准确地针对特定功能模块进行。
2)工作模式匹配:在确定了模块后,系统会根据模块当前的工作模式,选取相应的时序弧。这里利用了when关键字,可以精确地识别出在特定工作模式下有效的时序弧。这种细粒度的匹配使得时序分析能够考虑到模块在不同工作状态下可能存在的时序差异。
这种两步查找方法的优势在于它能够有效处理复杂FPGA设计中的多模块、多模式情况。通过首先定位模块,然后再细化到特定工作模式,系统可以在庞大的时序数据中快速而准确地找到所需的信息。
查找时序弧的过程实际上为后续的时序模型描述奠定了基础。通过这个过程,系统已经获取了特定模块在特定工作模式下的所有相关时序信息。这些信息包括了时序路径的定义(目标端口和参考端口)、时序特性(如延时值)以及逻辑类型等。
这种精确的时序弧查找方法不仅提高了时序分析的准确性,还大大提升了分析效率。它允许时序分析工具针对FPGA芯片的每个部分使用最相关、最准确的时序信息,从而得出更可靠的分析结果。同时,这种方法的模块化特性也使得它具有良好的可扩展性,能够轻松应对日益复杂的FPGA设计需求。
总的来说,这种查找时序弧的方法体现了本申请在处理复杂FPGA时序分析问题上的创新思路,为实现高效、准确的层次化时序分析提供了坚实的基础。
在FPGA芯片的层次化时序分析方法中,根据Liberty文件中的信息描述时序模型是一个关键步骤。本申请提出了两种不同的建模方法:时序图建模和输入输出端口延时建模。这两种方法的选择取决于Liberty文件中时序信息的特性,特别是目标端口的参考时钟位置。
首先说明时序图建模方法。这种方法适用于图3所示的情况,即Liberty文件中目标端口的参考时钟都位于模块的外部端口。这种结构使得可以构建一个完整的、自包含的时序图来描述模块的时序特性。
时序图建模的过程可以分为以下几个步骤:
1)时序弧识别:系统首先根据网表中的模块名称和当前的工作模式,在Liberty文件中查找每个时序分析目标端口(如图3中的in和out端口)对应的时序弧。这一步利用了前面讨论的module和when关键字,确保找到的时序弧与当前模块和工作模式相匹配。
2)时序弧分类:找到相关的时序弧后,系统会根据时序弧的种类进行分类。主要有四种类型:组合逻辑、时序逻辑、检查逻辑和复位逻辑。这种分类对于准确描述不同类型逻辑电路的时序特性至关重要。
3)时序图构建:系统将分类后的时序信息和延时信息标记到时序图中。
具体来说:
对于组合逻辑,时序图中会建立从输入到输出的直接路径,并标注相应的延时。
对于时序逻辑,时序图中会包含寄存器元素,并标注建立时间和保持时间。
检查逻辑通常用于描述信号的有效性检查,如建立时间和保持时间检查。
复位逻辑则描述了复位信号的时序特性。
4)延时信息标记:在构建时序图的同时,系统会将每个时序弧的延时信息直接标记到图中相应的路径上。这种做法避免了在后续分析中重复查找延时信息,从而提高了分析效率。
时序图建模方法的一个主要优势是它提供了模块时序行为的直观、完整表示。通过将所有相关的时序信息整合到一个统一的图形模型中,设计者可以更容易地理解和分析模块的时序特性。这种方法特别适合于那些时序关系相对简单、参考时钟位于外部的模块。
此外,这种建模方法还具有良好的可扩展性。随着FPGA设计的复杂性增加,只需在时序图中添加新的节点和路径,就可以描述更复杂的时序关系。这使得时序图建模方法能够适应各种复杂度的FPGA设计需求。
总的来说,时序图建模方法为FPGA芯片的层次化时序分析提供了一个强大而灵活的工具。它不仅能够准确捕捉模块的时序特性,还能以一种直观、易于理解的方式呈现这些信息,从而为后续的时序分析和优化工作奠定了坚实的基础。
下面描述一种针对特定情况的时序建模方法,即输入输出端口延时建模。这种方法适用于Liberty文件中目标端口的参考时钟位于模块内部的情况,如图4所示,这种方法的原理和步骤如下:
1)适用情况:当Liberty文件中描述的目标端口的参考时钟在模块内部时(如图4中的gen_clk),传统的时序图建模方法可能无法准确捕捉内部时钟树的延时。这种情况下,需要采用输入输出端口延时建模方法。
2)建模原理:这种方法的核心思想是将复杂的内部时序关系转化为简单的输入输出延时关系,从而将模块视为一个“黑盒”。
3)建模步骤:a)时序弧识别:根据网表中的模块名称和工作模式,在Liberty文件中查找每个时序分析目标端口(如in和out)的相关时序弧。b)输入端口处理:将模块的输入端口(如图4中的in)视为芯片顶层模块的输出端口。对于这些端口,将其检查逻辑等效为施加输出延时(set_output_delay)。这样做可以模拟数据从顶层模块传输到该模块输入端的时间要求。c)输出端口处理:将模块的输出端口(如图4中的out)视为芯片顶层模块的输入端口。对于这些端口,将其时序逻辑等效为施加输入延时。这模拟了数据从该模块输出到顶层模块的时间要求。d)内部时钟处理:对于内部生成的时钟(如gen_clk),将其作为一个虚拟端口在黑盒内部创建。这个虚拟端口用来标记从外部时钟端口(clk)到内部生成时钟(gen_clk)的延时。e)参考时钟设置:将内部生成的时钟(gen_clk)设置为目标端口(in、out)的参考时钟端口。这确保了内部时钟树的延时被包含在整体的时钟路径中。
这种方式具有以下有益效果:1)简化复杂性:将复杂的内部时序关系简化为输入输出延时,使得分析更加直观。2)准确性:通过将内部时钟树延时包含在时钟路径中,提高了时序分析的准确性。3)黑盒处理:允许在不了解模块内部具体实现的情况下进行时序分析,有利于模块化设计和IP复用。
这种方法特别适用于包含复杂内部时钟生成电路的模块,如图4所示的带有DFFA(可能是一个时钟分频器或相位锁定环)的设计。
通过这种输入输出端口延时建模方法,设计者能够有效处理内部时钟生成的复杂情况,同时保持时序分析的准确性和效率。这种方法与前面讨论的时序图建模方法相辅相成,共同构成了一个全面的FPGA芯片层次化时序分析解决方案。
下面进一步总结本申请的主要创新点:
本申请提出了一种创新的FPGA芯片层次化时序分析方法,该方法集成了多项技术创新,旨在提高FPGA芯片时序分析的准确性、效率和可靠性。以下是对本申请主要创新点的详细说明:
首先,本申请将FPGA芯片时序分析与业界标准的硬件时序签核工具时序分析流程相结合,并采用标准格式Liberty文件进行时序信息交互。Liberty文件是一种广泛使用的标准格式,能够同时描述时序模型信息和延时信息。通过使用Liberty文件,本申请的实施例确保了时序模型与延时信息的一致性,大大提高了时序分析的准确性。这种标准化的方法不仅简化了时序信息的管理,还提高了不同工具和流程之间的兼容性。
其次,本申请首次提出使用关键字module和when来解决FPGA模块在不同工作模式下时序信息不同的问题。module关键字用于标识特定的功能模块,而when关键字则用于区分同一模块在不同工作模式下的时序特性。这种创新的标记方法使得时序分析工具能够精确地识别和处理不同模块在各种工作模式下的时序信息,显著提高了分析的灵活性和准确性。
第三,本申请提出了两种根据Liberty文件构建时序模型的方法:时序图建模和输入输出端口延时建模。这两种方法相辅相成,能够适应不同的时序分析场景。时序图建模适用于参考时钟位于模块外部的情况,它提供了直观的时序关系表示。而输入输出端口延时建模则适用于参考时钟位于模块内部的情况,能够有效处理内部时钟树延时。这两种方法的结合使得本申请能够准确分析各种复杂的FPGA模块结构,包括那些包含内部时钟生成电路的模块,从而提高了时序分析的全面性和精度。
最后,针对FPGA时序分析的特点,本申请首次提出在构建模块时序图时将模块的时序弧延时直接标记到时序图中。这种创新方法显著提高了时序分析的效率。通过将延时信息直接嵌入时序图,在后续的延时计算过程中就无需再次查找对应的延时值,从而有效减少了运行时间,加快了整体的分析过程。
总的来说,这些创新点的结合使得本申请的FPGA芯片层次化时序分析方法具有显著的优势。它不仅提高了时序分析的准确性和效率,还简化了工程师的工作流程,减少了人为错误的可能性。通过与硬件时序签核工具时序分析流程的结合,本申请的实施例确保了FPGA时序分析引擎与业界标准工具的一致性,增强了分析结果的可信度。此外,本申请的实施例的灵活性使其能够适应各种复杂的FPGA设计,包括多模块、多工作模式的情况,为现代FPGA芯片的设计和验证提供了强有力的支持。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种FPGA芯片的层次化静态时序分析方法,其流程如图5所示,该方法包括以下步骤:
步骤100:使用硬件时序签核工具硬件时序签核工具,基于时序签核数据库,为FPGA芯片中的每个功能模块的不同工作模式分别生成Liberty文件,所述Liberty文件同时包含时序模型信息和延时信息。
步骤200:在所述Liberty文件中,为每个功能模块的所有时序弧标记module关键字,为每种工作模式下的时序弧标记when关键字。
步骤300:获取FPGA芯片的网表信息,所述网表信息用于确定每个功能模块的连接关系和当前工作模式,并根据所述网表信息中的功能模块名称和当前工作模式,在步骤100生成的对应Liberty文件中查找与该功能模块和当前工作模式匹配的时序弧。
步骤400:对于步骤300中查找到的每个时序弧,根据其参考时钟位置,选择以下两种建模方法之一进行时序建模:
a)当参考时钟位于当前分析的功能模块外部时,采用时序图建模方法,并在构建时序图的同时,将步骤100中Liberty文件包含的时序弧延时信息直接标记到时序图中;
b)当参考时钟位于当前分析的功能模块内部时,采用输入输出端口延时建模方法,将该功能模块的输入端口视为芯片顶层模块的输出端口,将该功能模块的输出端口视为芯片顶层模块的输入端口,并使用步骤100中Liberty文件包含的延时信息设置相应的输入输出延时。
步骤500:基于步骤400构建的时序模型,使用FPGA时序分析引擎对FPGA芯片进行静态时序分析,其中所述FPGA时序分析引擎利用步骤200中标记的module关键字和when关键字来识别和处理不同功能模块在不同工作模式下的时序信息。
步骤600:生成时序分析报告,用于指导FPGA芯片设计的优化和验证,确保芯片在不同工作模式下均能满足时序要求。
下面对上述步骤做进一步的详细说明。
步骤100涉及使用硬件时序签核工具,基于时序签核数据库,为FPGA芯片中的每个功能模块的不同工作模式分别生成Liberty文件。具体来说,硬件时序签核工具广泛应用于集成电路设计的时序分析和验证中。该软件能够从时序签核数据库中提取详细的时序模型信息和延时信息,从而生成符合标准的Liberty文件。
具体地说,市面上有多种硬件时序签核工具可供选择,例如Synopsys公司的PrimeTime、Cadence公司的Tempus Timing Signoff Solution、Mentor Graphics公司的Questa TimeQuest Timing Analyzer等。这些工具都能够满足生成Liberty文件的需求,设计者可以根据具体项目需求和团队熟悉度选择合适的工具。
在生成Liberty文件的过程中,首先需要将FPGA芯片中的各个功能模块划分出来,并确定每个功能模块的不同工作模式。例如,一个功能模块可能在不同的工作模式下具有不同的时序特性,这些特性需要分别进行描述和分析。为了实现这一目标,硬件时序签核工具会根据时序签核数据库中的信息,提取每个功能模块在不同工作模式下的时序模型和延时信息,并将这些信息整合到相应的Liberty文件中。
每个Liberty文件都包含了完整的时序模型信息和延时信息。时序模型信息描述了功能模块在不同工作模式下的时序关系,包括各个端口的输入输出延时、建立时间、保持时间等。而延时信息则详细记录了信号在传输过程中的具体延时时间,这些时间值通常是基于不同工艺角下的测量结果。通过将这些信息整合到Liberty文件中,可以确保在后续的时序分析过程中,各个功能模块的时序特性能够被准确捕获和描述。
总之,步骤100通过使用硬件时序签核工具生成包含时序模型和延时信息的Liberty文件,为FPGA芯片的层次化静态时序分析奠定了坚实的基础。这种方法不仅提高了时序分析的精度和效率,还确保了分析结果的一致性和可靠性,有助于优化FPGA芯片的设计和验证过程。
步骤200涉及在生成的Liberty文件中,为每个功能模块的所有时序弧标记module关键字,并为每种工作模式下的时序弧标记when关键字。该步骤的详细内容如下:
首先,Liberty文件是用于描述集成电路时序特性的一种标准文件格式,它包含了详细的时序模型信息和延时信息。在这些文件中,每个功能模块的时序信息都需要明确标记,以便在后续的时序分析过程中能够准确识别和处理。
module关键字的标记是为了区分不同的功能模块。在FPGA芯片中,每个功能模块可能负责不同的功能,并具有独特的时序特性。通过在Liberty文件中为每个功能模块的时序弧标记module关键字,可以明确指示这些时序弧属于哪个功能模块。这种标记方式不仅使时序信息管理变得系统化,还能够提高时序分析引擎在处理不同模块时的效率。例如,如果某个功能模块被标记为module:A,那么所有属于该模块的时序弧都会带有module:A的标记,时序分析引擎可以根据这个标记快速定位和处理这些时序弧。
when关键字的标记是为了区分同一功能模块在不同工作模式下的时序特性。FPGA芯片中的某些功能模块可能在不同的工作模式下表现出不同的时序行为。例如,一个模块可能在正常运行模式和省电模式下具有不同的时序特性。为了准确描述这些差异,在Liberty文件中为每种工作模式下的时序弧标记when关键字。这样,时序分析引擎可以根据工作模式的不同,分别处理相应的时序弧信息。比如,如果一个功能模块在正常模式下的时序弧被标记为when:normal,在省电模式下的时序弧被标记为when:power_saving,那么时序分析引擎在进行时序分析时就可以根据当前的工作模式选择正确的时序弧进行分析。
通过步骤200中的这些关键字标记,可以确保Liberty文件中的时序信息更加清晰和有条理。module关键字和when关键字的结合使用,不仅可以准确区分不同模块和不同工作模式下的时序特性,还可以显著提高时序分析过程的效率和准确性。这种方法为FPGA芯片的时序分析提供了更为精确的基础数据,有助于提高芯片设计和验证的整体质量。
步骤300涉及获取FPGA芯片的网表信息,并利用该信息确定每个功能模块的连接关系和当前工作模式,然后在步骤100生成的对应Liberty文件中查找与该功能模块和当前工作模式匹配的时序弧。具体内容如下:
网表信息(Netlist)是描述FPGA芯片内部电路连接关系的重要文件。网表包含了芯片中所有功能模块的详细连接信息,包括每个模块的输入输出端口、连接方式以及各模块之间的连接关系。在FPGA设计流程中,网表信息是进行时序分析的重要基础数据。
首先,通过获取FPGA芯片的网表信息,可以确定每个功能模块的连接关系。这一步骤是时序分析的基础,因为只有明确了各模块之间的连接关系,才能进一步分析信号在芯片内的传输路径和延时。网表信息详细描述了各个功能模块的端口连接情况,这些信息将用于识别和匹配Liberty文件中的时序弧。
其次,网表信息还用于确定每个功能模块的当前工作模式。FPGA芯片中的某些模块可能具有多种工作模式,不同的工作模式下模块的时序特性会有所不同。通过分析网表信息,可以确定当前芯片所处的工作模式,从而选择相应的时序弧进行分析。
在获取网表信息后,接下来的步骤是根据网表信息中的功能模块名称和当前工作模式,在步骤100生成的对应Liberty文件中查找匹配的时序弧。
具体操作如下:
1)确定功能模块名称:通过解析网表信息,识别出每个功能模块的名称。每个功能模块在Liberty文件中都有对应的时序模型和延时信息,这些信息之前已通过module关键字进行了标记。
2)确定当前工作模式:同样通过解析网表信息,识别出每个功能模块的当前工作模式。不同工作模式下的时序信息在Liberty文件中通过when关键字进行了标记。
3)查找匹配的时序弧:根据功能模块名称和当前工作模式,在Liberty文件中查找对应的时序弧。具体来说,先找到带有相应module关键字的时序弧,然后在这些时序弧中进一步筛选出带有当前工作模式when关键字的时序弧。这些匹配的时序弧包含了当前功能模块在特定工作模式下的时序特性,是进行静态时序分析的基础数据。
通过以上步骤,可以准确提取出与每个功能模块和当前工作模式匹配的时序弧,为后续的时序建模和分析提供了必要的数据支持。步骤300的详细操作确保了时序分析过程的准确性和可靠性,使得FPGA芯片在不同工作模式下的时序特性能够被精确描述和分析,从而提高了设计验证的质量和效率。
步骤400涉及对步骤300中查找到的每个时序弧进行时序建模。根据其参考时钟的位置选择以下两种建模方法之一进行时序建模,以确保时序分析的准确性和效率。
当参考时钟位于当前分析的功能模块外部时,采用时序图建模方法。这种方法适用于模块的参考时钟信号来自模块外部的情况。在构建时序图时,首先根据网表信息和Liberty文件中查找到的时序弧,确定模块内各信号路径的时序关系。将每个信号路径的起点和终点(即输入端口和输出端口)在时序图中表示出来,形成完整的时序路径。在构建时序图的同时,将Liberty文件中包含的时序弧延时信息直接标记到时序图中。这包括各个信号路径的建立时间、保持时间以及信号传播的延时。通过直接在时序图中标记延时信息,可以避免在后续分析过程中重复查找延时值,从而提高分析效率。时序图建模方法提供了模块时序行为的直观表示,使设计人员能够清晰地看到各信号路径的时序关系和延时分布。这种方法特别适用于那些时序关系相对简单且参考时钟位于模块外部的情况。
当参考时钟位于当前分析的功能模块内部时,采用输入输出端口延时建模方法。这种方法适用于模块内部生成参考时钟信号的情况。首先,将功能模块的输入端口视为芯片顶层模块的输出端口,这意味着在时序分析中,将输入端口的检查逻辑等效为施加输出延时(set_output_delay)。这种处理方式可以模拟数据从顶层模块传输到该功能模块输入端口的时间要求。然后,将功能模块的输出端口视为芯片顶层模块的输入端口,在时序分析中,将输出端口的时序逻辑等效为施加输入延时。这种处理方式模拟了数据从功能模块输出端口传输到顶层模块的时间要求。对于内部生成的参考时钟(例如gen_clk),在模块内部创建一个虚拟端口,用于标记从外部时钟端口(例如clk)到内部生成时钟的延时,确保内部时钟树的延时被包含在整体的时钟路径中,以便准确计算信号传输的总延时。
输入输出端口延时建模方法通过将复杂的内部时序关系转化为简单的输入输出延时,使得时序分析更加直观和高效。这种方法特别适用于具有复杂内部时钟生成电路的模块。
通过上述两种建模方法,步骤400确保了对每个时序弧的准确建模,不论其参考时钟位于模块内外。时序图建模提供了直观的时序关系图,而输入输出端口延时建模则简化了内部时钟生成的复杂情况。两种方法相辅相成,共同构成了一个全面的FPGA芯片静态时序分析解决方案,从而提高了时序分析的准确性和效率。
步骤500涉及基于步骤400构建的时序模型,使用FPGA时序分析引擎对FPGA芯片进行静态时序分析。FPGA时序分析引擎在分析过程中利用步骤200中标记的module关键字和when关键字来识别和处理不同功能模块在不同工作模式下的时序信息,确保分析的准确性和全面性。
首先,基于步骤400构建的时序模型,FPGA时序分析引擎开始对FPGA芯片进行静态时序分析。步骤400提供了两种建模方法,即时序图建模和输入输出端口延时建模,这些模型详细描述了各功能模块在不同工作模式下的时序特性和信号传输路径。通过这些模型,时序分析引擎可以全面了解FPGA芯片内部各信号的传输延时和时序关系。
在分析过程中,FPGA时序分析引擎会首先利用module关键字来识别不同的功能模块。每个Liberty文件中的时序弧都带有module关键字,这些关键字标记了各时序弧所属的功能模块。例如,一个标记为module:A的时序弧属于功能模块A。通过识别这些关键字,时序分析引擎可以准确定位和处理各个功能模块的时序信息,确保分析过程的系统性和条理性。
同时,FPGA时序分析引擎还利用when关键字来识别和处理不同工作模式下的时序信息。每个功能模块在不同工作模式下可能具有不同的时序特性,而这些特性在Liberty文件中通过when关键字进行了标记。例如,一个功能模块在正常运行模式下的时序弧可能标记为when:normal,而在省电模式下的时序弧标记为when:power_saving。通过识别这些关键字,时序分析引擎能够区分和处理不同工作模式下的时序信息,确保在各种工作模式下的时序分析结果都准确无误。
在具体的静态时序分析过程中,FPGA时序分析引擎会逐一分析各个时序弧的延时信息和时序关系。这包括计算信号从输入端口到输出端口的传输延时,检查信号是否满足建立时间和保持时间要求,以及验证各信号路径在不同工艺角下的时序性能。通过对这些时序特性的详细分析,FPGA时序分析引擎能够生成全面的时序分析报告,指出可能存在的时序违例和性能瓶颈,为设计优化提供依据。
总之,步骤500通过利用步骤200中标记的module关键字和when关键字,确保了FPGA时序分析引擎能够准确识别和处理不同功能模块在不同工作模式下的时序信息。基于步骤400构建的详细时序模型,FPGA时序分析引擎能够全面、高效地进行静态时序分析,生成准确可靠的时序分析报告,为FPGA芯片的设计和验证提供重要支持。
步骤600涉及生成时序分析报告,用于指导FPGA芯片设计的优化和验证,确保芯片在不同工作模式下均能满足时序要求。具体内容如下:
在完成了前面的静态时序分析后,FPGA时序分析引擎会根据分析结果生成详细的时序分析报告。该报告是设计人员优化和验证FPGA芯片设计的重要工具。
首先,时序分析报告将详细列出每个功能模块的时序特性,包括信号的传输延时、建立时间和保持时间等关键时序参数。这些参数是基于步骤400中构建的时序模型和步骤500中的静态时序分析结果得出的。通过这些详细的时序数据,设计人员可以全面了解各功能模块在不同工作模式下的时序表现。
其次,报告会指出在时序分析过程中发现的任何时序违例和性能瓶颈。例如,某些信号路径可能存在传输延时过长、建立时间或保持时间不满足要求等问题。这些违例和瓶颈信息会在报告中详细列出,并附带相应的时序路径和具体问题描述。通过这些信息,设计人员可以有针对性地进行设计优化,解决时序问题,提升芯片性能。
此外,时序分析报告还会提供每个功能模块在不同工作模式下的时序验证结果。由于FPGA芯片可能在多种工作模式下运行,确保每种模式下的时序性能都满足要求至关重要。报告会分别列出各工作模式下的时序分析结果,确保在不同模式下芯片的时序性能都能达到设计标准。这些验证结果包括每种模式下的关键时序参数、时序违例以及性能瓶颈等信息。
报告还会提供优化建议,以帮助设计人员进一步改进芯片设计。基于时序分析结果,报告可能建议调整某些信号路径的布线、优化功能模块的时序逻辑或修改设计参数等。这些建议旨在解决时序问题,提高芯片的整体性能和可靠性。
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
在说明本例子之前,需要了解静态时序分析的基本概念和方法。这将有助于更好地理解本申请所提出的创新技术方案。芯片的静态时序分析方法分为展平式(flatten)时序分析和层次化(hierarchical)时序分析。两种分析方法主要区别是时序建模的方法不同。展平式时序分析是指将整个FPGA芯片看作一个整体,在时序建模过程中将全部时序模型以时序图的形式整合到一张完整的时序图中。层次化时序分析是指将芯片顶层看作一个整体,通过时序建模将顶层描述为一张时序图,将芯片中的一部分模块通过构建时序图集成到顶层时序图中,将一部分IP模块当作黑盒处理。作为黑盒处理的IP只关注端口处的时序信息,黑盒IP的时序弧并不会被映射到时序图中,只会以输入输出延时的方法标记作端口延时。在FPGA芯片设计时,黑盒IP内部的时序结果由设计者通过硬件时序签核工具保证收敛,而FPGA芯片作为黑盒IP的用户只需要对IP端口做时序分析即可。层次化时序分析将IP整体当作黑盒,仅分析黑盒IP端口时序的方法即能保证芯片正常工作,又可以有效减少时序图的体量,有效节约时序分析的运行时间。层次化时序分析方法可以更快、更好地完成复杂功能模块的时序分析。
FPGA芯片的层次化时序分析方法主要分为两部分:硬件时序签核工具提取Liberty时序文件及FPGA时序分析引擎对Liberty时序文件的识别和建模。
Liberty文件的提取:
Liberty文件采用硬件时序签核工具的层次化时序分析liberty提取命令提供,既可以使用硬件时序签核工具提供的ETM(Extract Timing Model)流程也可以使用ILM(Interface Logic Model)流程;
Liberty文件可以在不同设计阶段提供,例如模块设计初期可以在前端数据库基础上提取Liberty文件用于FPGA芯片的时序分析的测试,而模块设计完成时序签核后可以在时序签核数据库基础上提取Liberty文件,用于量产FPGA芯片的时序分析;
方法提出依据模块及模块不同工作模式分别提取独立的Liberty文件用于描述不同模块在不同工作模式下的时序模型及时序弧延时信息;
Liberty文件的存储和时序建模:
针对不同模块的Liberty信息,时序分析引擎采用关键字Module进行区分,即每个模块的全部时序弧共享独立的Module关键字;
针对同一模块不同工作模式的Liberty信息,时序分析引擎采用关键字when和平行时序弧(parallel arc)解决。即某一独立工作模式下对应的全部时序弧共享when关键字;
FPGA时序分析引擎基于Liberty信息建模主要有两类建模方式:时序图建模和端口约束建模。如果模块内包含时钟树延时信息则需要采用端口约束方式建模,否则可以使用时序图建模将时序信息和延时进行集成于时序图中;
时序分析引擎进行时序建模时按照时序弧的种类(arc type)分别进行建模:组合逻辑、时序逻辑、检查逻辑、复位逻辑;
时序图构建时会同时将时序弧延时信息标记到时序图中,这样避免了延时计算时重复查找时序弧,有效减低FPGA时序分析引擎的时序分析运行时间;
图1详细介绍了一种FPGA芯片层次化时序分析工作流程。FPGA芯片由顶层(top)和两个功能模块(a、b)组成。其中模块a有两种工作模式,模块b有三种工作模式。
Liberty文件的提取:
模块a、b的时序信息分别由不同的芯片设计工程师提供。
a模块完成时序签核后,使用硬件时序签核工具基于时序签核的数据库分别对不同工作模式(1、2)生成Liberty文件a_1.lib、a_2.lib。其中,a模块的全部时序弧标记关键字module(module:a),a_1.lib中的时序弧标记关键字when(when:1),a_2.lib中的时序弧标记关键字when(when:2)。
b模块完成时序签核后,使用硬件时序签核工具基于时序签核的数据库分别对不同工作模式(1、2、3)抽取Liberty文件b_1.lib、b_2.lib、b_3.lib。其中,b模块的全部时序弧标记关键字module(module:b),b_1.lib中的时序弧标记关键字when(when:1),b_2.lib中的时序弧标记关键字when(when:2),b_3.lib中的时序弧标记关键字when(when:3)。
Liberty文件的存储和时序建模:
Liberty中的时序信息以时序弧为单位存储,如图2所示。每条时序弧中主要存储如下信息:目标端口、参考端口、时序弧种类、时序弧延时、模块关键字module和工作模式关键字when。
其中,module关键字是本申请独创用于区分模块;
目标端口指时序分析的端口,参考端口指目标端口的时序参考端口;
when关键字用于区分不同工作模式下的时序信息;
时序弧延时中记录了不同工艺角下的延时值;
时序弧类型用于区分组合逻辑、时序逻辑、检查逻辑和复位逻辑;
a模块的全部时序弧标记关键字module(module:a),其中a_1.lib中的时序弧标记关键字when(when:1),a_2.lib中的时序弧标记关键字when(when:2)。b模块的时序弧标记关键字module(module:b),b_1.lib中的时序弧标记关键字when(when:1),b_2.lib中的时序弧标记关键字when(when:2),b_3.lib中的时序弧标记关键字when(when:3)。
为模块时序建模过程主要分为两步,查找时序弧和描述时序模型。查找时序弧的目的是为网表中的模块根据工作模式找到对应的时序弧,首先根据网表中的模块查找模块对应的Liberty数据,然后根据模块当前的工作模式选取对应的时序弧。
下面描述两种根据Liberty信息描述时序模型的方法:时序图建模和输入输出端口延时建模。
Liberty中目标端口的参考时钟都是模块外部端口(如图3),可以使用时序图建模的方法进行时序建模。根据网表中的模块名称和模块工作模式查找得到每个时序分析目标端口(in、out)的时序弧,并根据时序弧的种类(组合逻辑、时序逻辑、检查逻辑、复位逻辑)分别将时序信息和延时信息标记到时序图中。
Liberty中目标端口的参考时钟在模型内部(如图4),在时序分析时需要计算内部时钟树延时,此时可以采用输入输出端口延时的方法进行时序建模。根据网表中的模块名称和模块工作模式查找得到每个时序分析目标端口(in、out)的时序弧,将输入端口(in)看作芯片顶层模块(top)的输出端口,并将端口的检查逻辑等效为施加输出延时(set_output_delay),将输出端口(out)看作芯片顶层模块(top)的输入端口,并将端口的时序逻辑等效为施加输入延时。此方案将模块当作黑盒处理,gen_clk将会作为虚拟端口在黑盒内部创建,该虚拟端口用于标记端口clk到gen_clk的延时,而端口gen_clk是目标端口(in、out)的参考时钟端口,内部时钟树延时将被包含在时钟路径中。
上述实施例和例子提出的FPGA芯片层次化静态时序分析方法具有以下显著的技术效果:
1)提高时序分析的准确性:通过采用标准格式Liberty文件进行时序信息交互,上述实施例和例子确保了时序模型与延时信息的一致性。将FPGA芯片时序分析与硬件时序签核工具时序分析流程相结合,进一步保证了分析结果的准确性和可靠性。这种高度准确的时序分析有助于提高FPGA芯片的性能和可靠性,减少因时序问题导致的芯片故障。
2)增强时序分析的灵活性:创新性地使用module和when关键字解决了FPGA模块在不同工作模式下时序信息不同的问题。这使得时序分析工具能够精确识别和处理各种复杂场景下的时序信息,大大增强了分析的灵活性。这种灵活性使得上述实施例和例子能够适应现代FPGA设计中日益复杂的多模块、多模式结构。
3)提升时序分析的全面性:通过引入时序图建模和输入输出端口延时建模两种方法,本申请能够全面覆盖各种FPGA模块结构,包括那些具有内部时钟生成电路的复杂模块。这种全面性确保了时序分析不会遗漏任何关键路径,从而提高了FPGA芯片设计的整体质量。
4)显著提高分析效率:在构建模块时序图时直接将时序弧延时标记到时序图中,这一创新极大地提高了时序分析的效率。通过减少重复的延时查找操作,上述实施例和例子显著缩短了时序分析的运行时间,使得工程师能够更快地进行设计迭代和优化。
5)简化工作流程,减少人为错误:上述实施例和例子通过自动化处理和标准化流程,大大简化了工程师的工作流程。这不仅提高了工作效率,还显著减少了人为错误的可能性,提高了设计过程的可靠性。
6)增强设计可验证性:通过生成详细的时序分析报告,上述实施例和例子为FPGA芯片设计的优化和验证提供了可靠依据。这有助于工程师快速识别和解决潜在的时序问题,提高设计的可验证性和可靠性。
7)促进模块化设计和IP复用:上述实施例和例子支持对独立模块进行时序分析,这种模块化的分析方法有利于促进FPGA设计中的模块化开发和IP复用,从而加速整体的芯片设计过程。
8)适应未来设计需求:随着FPGA芯片复杂度的不断提高,上述实施例和例子的灵活性和可扩展性使其能够适应未来可能出现的更复杂的FPGA设计需求,为FPGA技术的长期发展提供了有力支持。
综上所述,本申请的FPGA芯片层次化静态时序分析方法不仅提高了时序分析的准确性、效率和全面性,还简化了设计流程,减少了错误,增强了设计的可验证性和可靠性。这些技术效果共同作用,将显著提升FPGA芯片的设计质量和性能,为FPGA技术的进一步发展奠定了坚实的基础。
本申请的第二实施方式涉及一种FPGA芯片的层次化静态时序分析系统,其结构如图6所示,该FPGA芯片的层次化静态时序分析系统包括:
文件生成模块,用于为FPGA芯片中的每个功能模块的不同工作模式生成包含时序模型信息和延时信息的文件。
关键字标记模块,用于在所述文件中为每个功能模块的时序弧标记关键字。
时序弧匹配模块,用于获取FPGA芯片的网表信息,并根据所述网表信息查找与功能模块和工作模式匹配的时序弧。
时序建模模块,用于对于查找到的每个时序弧,根据其参考时钟位置选择建模方法进行时序建模。
静态时序分析模块,用于基于构建的时序模型,对FPGA芯片进行静态时序分析。
报告生成模块,用于生成时序分析报告,用于指导FPGA芯片设计的优化和验证。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述FPGA芯片的层次化静态时序分析系统的实施方式中所示的各模块的实现功能可参照前述FPGA芯片的层次化静态时序分析方法的相关描述而理解。上述FPGA芯片的层次化静态时序分析系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述FPGA芯片的层次化静态时序分析系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,ReadOnly Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。
此外,本申请实施方式还提供一种FPGA芯片的层次化静态时序分析系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(Central Processing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称“DSP”)、专用集成电路(Application SpecificIntegrated Circuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-onlymemory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本申请各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,在阅读了本申请的上述公开内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所要求保护的范围。
Claims (10)
1.一种FPGA芯片的层次化静态时序分析方法,其特征在于,包括以下步骤:
步骤A:为FPGA芯片中的每个功能模块的不同工作模式生成包含时序模型信息和延时信息的文件;
步骤B:在所述文件中,为每个功能模块的时序弧标记关键字;
步骤C:获取FPGA芯片的网表信息,并根据所述网表信息查找与功能模块和工作模式匹配的时序弧;
步骤D:对于查找到的每个时序弧,根据其参考时钟位置选择建模方法进行时序建模;
步骤E:基于构建的时序模型,对FPGA芯片进行静态时序分析;
步骤F:生成时序分析报告,用于指导FPGA芯片设计的优化和验证。
2.根据权利要求1所述的方法,其特征在于,步骤A中使用硬件时序签核工具,基于时序签核数据库生成Liberty文件。
3.根据权利要求1所述的方法,其特征在于,步骤B中为每个功能模块的所有时序弧标记module关键字,为每种工作模式下的时序弧标记when关键字。
4.根据权利要求1所述的方法,其特征在于,步骤C中所述网表信息用于确定每个功能模块的连接关系和当前工作模式。
5.根据权利要求1所述的方法,其特征在于,步骤D中的建模方法包括:
a)当参考时钟位于当前分析的功能模块外部时,采用时序图建模方法;
b)当参考时钟位于当前分析的功能模块内部时,采用输入输出端口延时建模方法。
6.根据权利要求5所述的方法,其特征在于,采用时序图建模方法时,将时序弧延时信息直接标记到时序图中。
7.根据权利要求5所述的方法,其特征在于,采用输入输出端口延时建模方法时,将该功能模块的输入端口视为芯片顶层模块的输出端口,将该功能模块的输出端口视为芯片顶层模块的输入端口,并使用延时信息设置相应的输入输出延时。
8.根据权利要求1所述的方法,其特征在于,步骤E中使用FPGA时序分析引擎进行静态时序分析,所述FPGA时序分析引擎利用步骤B中标记的关键字来识别和处理不同功能模块在不同工作模式下的时序信息。
9.一种FPGA芯片的层次化静态时序分析系统,其特征在于,包括:
文件生成模块,用于为FPGA芯片中的每个功能模块的不同工作模式生成包含时序模型信息和延时信息的文件;
关键字标记模块,用于在所述文件中为每个功能模块的时序弧标记关键字;
时序弧匹配模块,用于获取FPGA芯片的网表信息,并根据所述网表信息查找与功能模块和工作模式匹配的时序弧;
时序建模模块,用于对于查找到的每个时序弧,根据其参考时钟位置选择建模方法进行时序建模;
静态时序分析模块,用于基于构建的时序模型,对FPGA芯片进行静态时序分析;
报告生成模块,用于生成时序分析报告,用于指导FPGA芯片设计的优化和验证。
10.一种FPGA芯片的层次化静态时序分析系统,其特征在于,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如权利要求1至8中任意一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411033713.8A CN119026542A (zh) | 2024-07-30 | 2024-07-30 | Fpga芯片的层次化静态时序分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411033713.8A CN119026542A (zh) | 2024-07-30 | 2024-07-30 | Fpga芯片的层次化静态时序分析方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119026542A true CN119026542A (zh) | 2024-11-26 |
Family
ID=93531554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411033713.8A Pending CN119026542A (zh) | 2024-07-30 | 2024-07-30 | Fpga芯片的层次化静态时序分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119026542A (zh) |
-
2024
- 2024-07-30 CN CN202411033713.8A patent/CN119026542A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7958470B1 (en) | Method and system for false path analysis | |
CN103678110B (zh) | 提供修改相关信息的方法和装置 | |
EP2310967B1 (en) | Method and device for evaluation of similarity of circuit design data and for evualuation of changes to the data | |
CN102687114B (zh) | 具有行为特征的硬件设计的并发仿真 | |
US7610568B2 (en) | Methods and apparatus for making placement sensitive logic modifications | |
US10586003B1 (en) | Circuit design using high level synthesis and linked hardware description language libraries | |
US20060225022A1 (en) | Method, apparatus and program for determining the relationship of correspondence between register transfer level description and behavioral description | |
US9589096B1 (en) | Method and apparatus for integrating spice-based timing using sign-off path-based analysis | |
CN112270148A (zh) | 一种门级网表生成方法及相关装置 | |
JP2010531001A (ja) | 自動回路設計及びシミュレーションに使用するための技術 | |
US9524366B1 (en) | Annotations to identify objects in design generated by high level synthesis (HLS) | |
CN113569524B (zh) | 芯片设计中基于综合网表提取时钟树的方法及应用 | |
CN104699613A (zh) | 一种航天器测试需求自动生成系统及其方法 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
US20030221173A1 (en) | Method and apparatus for detecting connectivity conditions in a netlist database | |
US9817930B1 (en) | Method, system, and computer program product for verifying an electronic circuit design with a graph-based proof flow | |
JP4142176B2 (ja) | インタフェース仕様定義を記録した記憶媒体、及び接続検証方法、及び信号パタン生成方法 | |
TW201218008A (en) | Intelligent architecture creator | |
US20070079266A1 (en) | Method and computer program for analysis of an integrated circuit design to identify and resolve a problematic structure characterized by multiple rule violations using a design closure knowledge base and a physical design database | |
CN116431582B (zh) | 一种自动化扩展硬件设计电路资源的方法 | |
CN117408199A (zh) | 一种基于hsm的层次化时序模型提取方法 | |
CN119026542A (zh) | Fpga芯片的层次化静态时序分析方法及系统 | |
CN110210046A (zh) | 应用程序及专用指令集处理器一体化敏捷设计方法 | |
CN100527138C (zh) | 集成电路元件的模拟实例产生方法与装置 | |
CN112861455B (zh) | Fpga建模验证系统及方法 |
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 |