CN113486613B - 数据链路的提取方法、装置、电子设备和存储介质 - Google Patents
数据链路的提取方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113486613B CN113486613B CN202110724291.9A CN202110724291A CN113486613B CN 113486613 B CN113486613 B CN 113486613B CN 202110724291 A CN202110724291 A CN 202110724291A CN 113486613 B CN113486613 B CN 113486613B
- Authority
- CN
- China
- Prior art keywords
- data link
- data
- devices
- timing
- link
- 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/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- 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
一种数据链路的提取方法、装置、电子设备和存储介质。该数据链路的提取方法包括:从多个器件和多个端口中选择待分析的至少一组数据链路端点;对多个器件和至少一组数据链路端点进行时序处理,以使得数字电路中除至少一组数据链路端点外的其他器件均不具有时序器件特性;基于经过时序处理后的多个器件和至少一组数据链路端点,确定每组数据链路端点对应的所有数据链路。该数据链路的提取方法通过将数字电路中除至少一组数据链路端点外的其他器件设置为不具有时序器件特性的组合逻辑器件,获得数字电路中的所有数据链路,以用于电路优化、电路时序评估等其他处理。
Description
技术领域
本公开的实施例涉及一种数据链路的提取方法、数据链路的提取装置、电子设备和非瞬时性计算机可读存储介质。
背景技术
对于数字电路,尤其是大规模集成电路在设计完成后,需要对其时序进行验证。静态时序分析(Static Timing Analysis,STA),或称静态时序验证,是电子工程中,对数字电路的时序进行计算、预计的工作流程,该流程不需要通过输入激励的方式进行仿真。
时序路径(Timing Path)是指设计中数据信号传播过程中所经过的逻辑路径,每一条时序路径都存在与之对应的一个起点(Start Point)和一个终点(End Point)。静态时序分析是基于时序路径进行时序分析,以判断是否存在违反设计规则的错误。
发明内容
本公开至少一实施例提供一种数据链路的提取方法,应用于对包括多个器件和多个端口的数字电路的设计数据进行处理,所述方法包括:从所述多个器件和所述多个端口中选择待分析的至少一组数据链路端点,每组数据链路端点包括数据链路起点和数据链路终点;对所述多个器件和所述至少一组数据链路端点进行时序处理,以使得所述数字电路中除所述至少一组数据链路端点外的其他器件均不具有时序器件特性;基于经过所述时序处理后的所述多个器件和所述至少一组数据链路端点,确定所述每组数据链路端点对应的所有数据链路。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,从所述多个器件和所述多个端口中选择待分析的至少一组数据链路端点,包括:对所述数字电路执行初始优化,确定所述数字电路中不满足时序约束条件的至少一条时序路径;基于所述至少一条时序路径,从所述多个器件和所述多个端口中选择待分析的至少一个数据链路起点和至少一个数据链路终点,以得到所述至少一组数据链路端点。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,所述多个器件包括多个时序逻辑器件,对所述多个器件和所述至少一组数据链路端点进行时序处理,包括:为每组数据链路端点包括的所述数据链路起点和所述数据链路终点设置时序约束;基于所述多个时序逻辑器件,确定多个待处理器件,所述多个待处理器件包括所述多个时序逻辑器件中除所述至少一组数据链路端点以外的所有时序逻辑器件;对所述多个待处理器件进行去时序处理,以将所述多个待处理器件转换为多个组合逻辑器件。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,为每组数据链路端点包括的所述数据链路起点和所述数据链路终点设置时序约束,包括:为所述数据链路起点设置时钟约束和输入延时约束;为所述数据链路终点设置时钟约束和输出延时约束。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,在对所述多个器件和所述至少一组数据链路端点进行时序处理后,所述方法还包括:对所述多个待处理器件进行时序环路检测及断开处理,以去除所述数字电路中存在的时序环路。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,对所述多个待处理器件进行时序环路检测及断开处理,包括:对每个待处理器件,判断是否存在从所述每个待处理器件的数据输出端至数据输入端的时序环路;响应于存在所述时序环路,判断所述每个待处理器件是否存在对应的反馈控制器件,响应于所述每个待处理器件存在对应的反馈控制器件,断开所述反馈控制器件中的用于构成所述时序环路的输入管脚和输出管脚之间的连接关系,响应于所述每个待处理器件不存在对应的反馈控制器件,断开所述每个待处理器件中的数据输入端和数据输出端之间连接关系。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,判断所述每个待处理器件是否存在对应的反馈控制器件,包括:确定第一器件,所述第一器件为在所述时序环路中沿数据传输方向与所述每个待处理器件的数据输出端具有电路连接关系的第一个非时序逻辑器件;基于所述第一器件,确定至少一个驱动器件,所述至少一个驱动器件的输出管脚与所述第一器件的输入管脚相连;响应于所述至少一个驱动器件包括不位于所述时序环路上的驱动器件,将所述第一器件作为所述每个待处理器件对应的反馈控制器件,响应于所述至少一个驱动器件均位于所述时序环路中,所述每个待处理器件不存在对应的反馈控制器件。
例如,本公开至少一实施例提供一种数据链路的提取方法还包括:获取所述多条数据链路分别对应的多个链路信息;基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,每个链路信息包括每条数据链路中的组合逻辑器件总数和每条数据链路中的时序逻辑器件总数,基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路,包括:针对每条数据链路,基于所述组合逻辑器件总数和所述时序逻辑器件总数,计算得到所述每条数据链路对应的逻辑器件比值;将所述多条数据链路中对应于最大逻辑器件比值的至少一条数据链路,或者,将所述多条数据链路中对应的逻辑器件比值大于预设阈值的至少一条数据链路,作为所述至少一条关键数据链路。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,每条数据链路包括从所述数据链路起点开始,至所述数据链路终点结束,沿数据传输方向依次相连的至少一条时序路径,每个链路信息包括每条数据链路中的时序逻辑器件总数,以及所述至少一条时序路径分别对应的时序裕量值,基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路,包括:针对每条数据链路,基于所述每个链路信息,获取每条数据链路对应的时序裕量信息,所述时序裕量信息包括平均时序裕量值或时序裕量和值;将所述多条数据链路中对应于最小时序裕量信息的至少一条数据链路,或者,将所述多条数据链路中对应的时序裕量信息小于预设阈值的至少一条数据链路,作为所述至少一条关键数据链路。
例如,本公开至少一实施例提供一种数据链路的提取方法还包括:对所述多条数据链路进行版图位置约束处理。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,对所述多条数据链路进行版图位置约束处理,包括:从所述多条数据链路中选择待分析的至少一条数据链路;基于所述至少一条数据链路,确定多个关键器件,所述多个关键器件包括所述至少一条数据链路中的时序逻辑器件以及关键组合逻辑器件;确定所述多个关键器件分别对应的版图位置约束。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,确定所述多个关键器件分别对应的版图位置约束,包括:获取所述多个关键器件分别对应的多个版图坐标值;基于每个版图坐标值,生成每个关键器件对应的版图位置约束。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,基于每个版图坐标值,生成每个关键器件对应的版图位置约束,包括:基于每个版图坐标值,确定第一区域,所述第一区域为包括基于所述每个版图坐标值确定的位置的区域,所述第一区域具有预设形状和预设尺寸;将所述第一区域作为所述每个关键器件对应的版图位置约束。
例如,在本公开至少一实施例提供一种数据链路的提取方法中,每个端口为输入端口或输出端口,所述数据链路起点包括输入端口、模拟器件的数据输出端口或逻辑器件的数据输出端口;所述数据链路终点包括输出端口、模拟器件的数据输入端口或逻辑器件的数据输入端口。
本公开至少一实施例提供一种数据链路的提取装置,应用于对包括多个器件和多个端口的数字电路的设计数据进行处理,所述装置包括:链路端点获取单元,配置为从所述多个器件和所述多个端口中选择待分析的至少一组数据链路端点,每组数据链路端点包括数据链路起点和数据链路终点;时序处理单元,配置为对所述多个器件和所述至少一组数据链路端点进行时序处理,以使得所述数字电路中除所述至少一组数据链路端点外的其他器件均不具有时序器件特性;链路提取单元,配置为基于经过所述时序处理后的所述多个器件和所述至少一组数据链路端点,确定所述每组数据链路端点对应的所有数据链路。
例如,本公开至少一实施例提供一种数据链路的提取装置还包括:获取单元,配置为获取所述多条数据链路分别对应的多个链路信息;关键数据链路提取单元,配置为基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路。
例如,本公开至少一实施例提供一种数据链路的提取装置还包括:位置约束处理单元,配置为对所述多条数据链路进行版图位置约束处理。
本公开至少一实施例提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,所述计算机可执行指令被所述处理器运行时实现根据本公开任一实施例所述的数据链路的提取方法。
本公开至少一实施例提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开任一实施例所述的数据链路的提取方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种数据链路的提取方法的示意性流程图;
图2为本公开至少一实施例提供的一种数字电路示意图;
图3A为本公开至少一实施例提供的一种经过去时序处理后的数字电路的示意图;
图3B为本公开至少一实施例提供的另一种经过去时序处理后的数字电路的示意图;
图3C为本公开至少至少一实施例提供的一种时序环路检测及断开处理的示意性流程图;
图3D为本公开至少一实施例提供的另一种数字电路示意图;
图4A为本公开至少一实施例提供的一种数据链路的提取方法的示意性流程图;
图4B为本公开至少一实施例提供的一种数据链路示意图;
图5A为本公开至少一实施例提供的数据链路的提取方法中的版图位置约束处理的示意性流程图;
图5B为本公开至少一实施例提供的再一种数字电路的示意图;
图6为本公开至少一实施例提供的一种数据链路的提取装置的示意性框图;
图7为本公开至少一实施例提供的一种电子设备的示意性框图;
图8为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
随着CPU(Central Processing Unit,中央处理器)、GPU(Graphics ProcessingUnit,图形处理器)等高性能处理器的数字电路的工作频率越来越高,数字电路的时序收敛变得越来越困难。为了对电路进行更有效的优化,在高性能数字电路的优化过程中通常会引入版图信息,例如版图信息包括电路中的输入输出端口(port)及RAM(Random AccessMemory,随机存取存储器)、ROM(Read-Only Memory,只读存储器)、寄存器等器件(cell)的物理位置约束,例如,在优化过程中预先将端口和器件根据版图信息调整至数字电路中的预设位置,然后对数字电路进行优化。
然而,随着电路设计的日趋复杂,基于物理位置约束直接进行优化往往难以得到较好的优化效果,或者电路优化中的各个环节之间的结果差异较大,例如电路设计的综合结果与布局布线的结果差异较大。通常,还需要对一些时序较差的关键路径添加额外的权重,或者规定更加详细的位置信息等再进行多次尝试,以实现电路优化的各个环节的一致性。并且,电路设计越复杂,需要进行尝试的次数就越多,耗时也随之增长。
本公开至少一实施例提供一种数据链路的提取方法、数据链路的提取装置、电子设备和非瞬时性计算机可读存储介质。该数据链路的提取方法包括:从多个器件和多个端口中选择待分析的至少一组数据链路端点,每组数据链路端点包括数据链路起点和数据链路终点;对多个器件和至少一组数据链路端点进行时序处理,以使得数字电路中除至少一组数据链路端点外的其他器件均不具有时序器件特性;基于经过时序处理后的多个器件和至少一组数据链路端点,确定每组数据链路端点对应的所有数据链路。
本公开至少一实施例提供的数据链路的提取方法通过将数字电路中除至少一组数据链路端点外的其他器件设置为不具有时序器件特性的组合逻辑器件,获得数字电路中的所有数据链路,以用于电路优化、电路时序评估等其他处理。
需要说明的是,本公开中的数字电路可以指代一个大型电路设计中的部分设计或部分模块,也即是,本公开中的数字电路既可以是一个完整数字电路的本身,也可以是完整电路中的部分电路,本公开对此不作限制。
此外,在本公开的实施例中,逻辑器件包括组合逻辑器件和时序逻辑器件。这里,时序逻辑器件指代数字电路设计中的触发器、寄存器、锁存器等器件,时序逻辑器件对输入信号具有存储和记忆功能,当接收到时钟信号的有效沿或有效电平时,能够触发时序逻辑器件对输入信号的存储及输出信号的状态改变。组合逻辑器件指代数字电路设计中的与门、或门等实现逻辑运算的器件,例如数据选择器、数值比较器等,组合逻辑器件对输入信号不具备存储和记忆功能,在任一时刻,组合逻辑器件的输出信号的状态取决于当前时刻的输入信号的状态。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图1为本公开至少一实施例提供的一种数据链路的提取方法的示意性流程图。
例如,本公开提供的数据链路的提取方法应用于对包括多个器件和多个端口的数字电路的设计数据进行处理,所述数字电路可以是处于设计中的,也即是,对前端设计完成后的数字电路的设计数据进行处理。
例如,在本公开中的数据链路为以数据链路起点为起始,至数据链路终点结束,经过相继连接的一条或多条时序路径所组成的链路,例如,每条时序路径包括对应的器件及线路连接关系。每条数据链路除数据链路起点和数据链路终点外,也可以包括时序逻辑器件。
例如,如图1所示,本公开实施例提供的数据链路的提取方法包括步骤S110至S130。
在步骤S110,从多个器件和多个端口中选择待分析的至少一组数据链路端点,每组数据链路端点包括数据链路起点和数据链路终点。
在步骤S120,对多个器件和至少一组数据链路端点进行时序处理,以使得数字电路中除至少一组数据链路端点外的其他器件均不具有时序器件特性。
在步骤S130,基于经过时序处理后的多个器件和至少一组数据链路端点,确定每组数据链路端点对应的所有数据链路。
例如,这里的器件可以为逻辑器件或模拟器件,例如,逻辑器件可以包括组合逻辑器件和时序逻辑器件。例如,这里的端口可以为输入端口(input port)或输出端口(outputport)。
图2为本公开一实施例提供的数字电路示意图。如图2所示,数字电路包括多个端口和多个器件,多个端口包括端口101a和端口201a,多个器件包括时序逻辑器件1、组合逻辑器件2以及模拟器件3,此外,多个器件还包括由虚线框8所包围的其他逻辑器件,例如组合逻辑器件801、时序逻辑器件811、组合逻辑器件802、时序逻辑器件812等,各个逻辑器件根据前端的逻辑设计相互连接,以实现设计的电路功能。
对于步骤S110,例如,在一些示例中,可以根据逻辑设计,选择承担主要数据传输功能的通信链路,从通信链路中选择数据链路起点和数据链路终点,例如,可以从通信链路中选择对电路时序会产生较大影响的器件作为数据链路起点和/或数据链路终点。
例如,在另一些示例中,也可以将所有的输入端口和输出端口作为数据链路起点和数据链路终点。
例如,在另一些示例中,步骤S110可以包括:对数字电路执行初始优化,确定数字电路中不满足时序约束条件的至少一条时序路径;基于至少一条时序路径,从多个器件和多个端口中选择待分析的至少一个数据链路起点和至少一个数据链路终点,以得到至少一组数据链路端点。
例如,可以通过工具对数字电路执行初始优化,例如工具可以为电子设计自动化(例如EDA)工具等,基于初始优化的结果从中选择时序较差或时序不满足约束条件的至少一条时序路径,基于这些时序路径所构成的链路,选择待分析的至少一个数据链路起点和至少一个数据链路终点,以得到至少一组数据链路端点。
例如,数据链路起点可以包括输入端口、模拟器件的数据输出端口或逻辑器件的数据输出端口。例如,数据链路终点可以包括输出端口、模拟器件的数据输入端口或逻辑器件的数据输入端口。
例如,对于图2所示的数字电路的示意图,数据链路起点可以为以下部分或全部内容:输入端口101a、模拟器件3的数据输出端口101b,时序逻辑器件1的数据输出端口101c以及组合逻辑器件2的数据输出端口101d。
例如,对于图2所示的数字电路的示意图,数据链路终点可以为以下部分或全部内容:输出端口201a、模拟器件3的数据输入端口201b,时序逻辑器件1的数据输入端口201c以及组合逻辑器件2的数据输入端口201d。
例如,可以根据需要,从待分析的至少一个数据链路起点和至少一个数据链路终点中选择对应的数据链路起点和数据链路终点,以组成至少一组数据链路端点。例如,也可以按照排列组合的方式将待分析的至少一个数据链路起点和至少一个数据链路终点组合为至少一组数据链路端点。
例如,在确定至少一组数据链路端点后,为每组数据链路端点包括的数据链路起点和数据链路终点设置时序约束,以使得这些数据链路起点和数据链路终点成为可以进行静态时序分析的时序路径的起点(start point)和终点(end point)。之后,对数字电路中除数据链路起点和数据链路终点外的其他时序逻辑器件进行去时序处理,以使得该数字电路中仅数据链路起点和数据链路终点可以具有时序器件特性,其他器件均转换为组合逻辑器件。由于数字电路中仅数据链路起点和数据链路终点具有时序器件特性,而时序路径也为从时序逻辑器件开始至时序逻辑器件结束的路径,从而可以利用时序路径的确定方法获取所有的数据链路,快速从复杂的电路设计中提取数据链路的相关信息。
例如,在一些示例中,多个器件包括多个时序逻辑器件,步骤S120可以包括:为每组数据链路端点包括的数据链路起点和数据链路终点设置时序约束;基于多个时序逻辑器件,确定多个待处理器件,其中,多个待处理器件包括多个时序逻辑器件中除至少一组数据链路端点以外的所有时序逻辑器件;对多个待处理器件进行去时序处理,以将多个待处理器件转换为多个组合逻辑器件。
例如,为每组数据链路端点包括的数据链路起点和数据链路终点设置时序约束,可以包括:为数据链路起点设置时钟约束和输入延时约束;为数据链路终点设置时钟约束和输出延时约束。
例如,可以通过约束文件为数据链路起点和数据链路终点设置时序约束,例如,设置时钟约束可以包括设置时钟信号周期(period)、设置时钟信号延时(transition)、设置时钟信号抖动(uncertainty)等。需要说明的是,时序约束包括但不限于如上所述的时钟约束、输入延时约束和输出延时约束,可以根据设计需要添加其他相应的时序约束。
例如,将多个时序逻辑器件中除至少一组数据链路端点以外的所有时序逻辑器件作为待处理器件,例如,若至少一组数据链路端点中均不存在时序逻辑器件,则待处理器件为全部时序逻辑器件,若至少一组数据链路端点中存在时序逻辑器件,则待处理器件为部分时序逻辑器件。
例如,可以通过修改时序逻辑器件所对应的单元库中相关的时序弧(timing arc)使得时序逻辑器件体现为组合逻辑器件的行为,例如,可以在单元库中改写该时序逻辑器件的描述,例如可以将其变为一个延时n纳秒的组合逻辑器件,去除时钟信号与数据输入端、数据输出端之间的控制关系。
图3A为本公开一实施例提供的经过去时序处理后的数字电路的示意图。如图3A所示,对于数字电路中除作为数据链路起点的时序逻辑器件811a和作为数据链路终点的时序逻辑器件812a外的其他时序逻辑器件,例如时序逻辑器件811a及时序逻辑器件812a,其时钟信号与数据输入端、数据输出端之间的控制关系被去除(如图中“×”所示),从而使得时序逻辑器件811a及812a不再具有时序器件特性,在任一时刻,其输出信号的状态取决于当前时刻的输入信号的状态。
例如,一些时序逻辑器件对应的单元库中具有对应的模式(mode),在启用该模式时,时序逻辑器件会从“正常功能模式”(normal function)转换成组合逻辑器件的行为,例如转换成一个缓冲器等,从而可以通过启用时序逻辑器件对应的模式,使得时序逻辑器件体现为组合逻辑器件的行为。
例如,可以直接将时序逻辑器件替换为特定的组合逻辑器件,例如替换为反相器、延时器、缓冲器等功能单一且单向通信的组合逻辑器件,从而使得时序逻辑器件体现特定组合逻辑器件的行为。
图3B为本公开一实施例提供的经过去时序处理后的数字电路的示意图。如图3B所示,对于数字电路中除作为数据链路起点的时序逻辑器件811a和作为数据链路终点的时序逻辑器件812a外的其他时序逻辑器件,例如时序逻辑器件811a及时序逻辑器件812a,均被转换为缓冲器,从而使得时序逻辑器件体现为特定组合逻辑器件的行为。
例如,数字电路中经常存在时序逻辑器件的数据输出端与数据输入端之间具有电信号传输关系的情况,也即这些时序逻辑器件会构成反馈系统。在没有经过上述去时序处理时,时序逻辑器件由于输出信号会受到时钟信号的控制而不会产生时序连通,但当经过上述去时序处理后,时序逻辑器件的输出信号直接由输入状态决定,因此这些构成反馈系统的时序逻辑器件会形成时序环路,这种时序环路会干扰步骤S130中对于数据链路的提取过程,可能导致数据链路提取失败,因而需要对多个待处理器件进行时序环路检测及断开处理,以去除数字电路中存在的时序环路。
例如,在一些示例中,步骤S130还可以包括:对多个待处理器件进行时序环路检测及断开处理,以去除数字电路中存在的时序环路。
例如,对多个待处理器件进行时序环路检测及断开处理,以去除数字电路中存在的时序环路,可以包括:对每个待处理器件,判断是否存在从每个待处理器件的数据输出端至数据输入端的时序环路;响应于存在时序环路,判断每个待处理器件是否存在对应的反馈控制器件,响应于每个待处理器件存在对应的反馈控制器件,断开反馈控制器件中的用于构成时序环路的输入管脚和输出管脚之间的连接关系,响应于每个待处理器件不存在对应的反馈控制器件,断开每个待处理器件中的数据输入端和数据输出端之间连接关系。
例如,判断每个待处理器件是否存在对应的反馈控制器件,包括:确定第一器件,其中,第一器件为在时序环路中沿数据传输方向与每个待处理器件的数据输出端具有电路连接关系的第一个非时序逻辑器件;基于第一器件,确定至少一个驱动器件,其中,至少一个驱动器件的输出管脚与第一器件的输入管脚相连;响应于至少一个驱动器件包括不位于时序环路上的驱动器件,将第一器件作为每个待处理器件对应的反馈控制器件,响应于至少一个驱动器件均位于时序环路中,每个待处理器件不存在对应的反馈控制器件。
图3C为本公开至少一实施例提供的时序环路检测及断开处理的示意性流程图,图3D为本公开一实施例提供的数字电路示意图。
下面结合图3C及图3D,具体说明时序环路检测及断开处理的处理流程。
如图3D所示,数字电路包括多个端口和多个器件,多个端口包括输入端口101a和输出端口201b,多个器件包括组合逻辑器件801、时序逻辑器件811a、时序逻辑器件812a、时序逻辑器件813a和组合逻辑器件802。
例如,将输入端口101a作为数据链路起点,将输出端口201b作为数据链路终点,待处理器件包括时序逻辑器件811a、时序逻辑器件812a和时序逻辑器件813a。
例如,时序逻辑器件811a、时序逻辑器件812a和时序逻辑器件813a在经过上述去时序处理后,已经去除了时钟信号与时序逻辑器件的数据输入端、数据输出端之间的控制关系。
例如,对于时序逻辑器件811a,将时序逻辑器件811a作为图3C中的待处理器件r,按照图3C所示的流程执行后续判断。
首先,如图3C所示,判断是否存在从时序逻辑器件811a的数据输出端至数据输入端的时序环路。如图3D所示,时序逻辑器件811a和组合逻辑器件801构成了时序环路(1)(如图3D中黑色实心粗线条所示),时序逻辑器件811a、时序逻辑器件812a和组合逻辑器件801构成了时序环路(2)(如图3D中黑色虚线所示)。
接着,分别针对时序环路(1)和时序环路(2)结合图3C进行后续判断。
例如,如图3C所示,对于时序环路(1)判断时序逻辑器件811a是否存在对应的反馈控制器件c。如图3D所示,组合逻辑器件801为时序环路(1)对应的第一器件k1,第一器件k1对应的驱动器件q1为输入端口101a、时序逻辑器件812a以及时序逻辑器件811a,由于输入端口101a、时序逻辑器件812a均不位于时序环路(1)上,则第一器件k1可以作为时序逻辑器件811a对应的反馈控制器件c,也即时序逻辑器件811a存在对应的反馈控制器件c,且该反馈控制器件c为组合逻辑器件801。
之后,如图3C所示,断开反馈控制器件c中的用于构成时序环路(1)的输入管脚和输出管脚之间的连接关系。例如,如图3D所示,反馈控制器件c中的用于构成时序环路(1)的输入管脚和输出管脚之间的连接关系为连线831,因而断开连线831。
同样的,对于时序环路(2)判断时序逻辑器件811a是否存在对应的反馈控制器件c。如图3D所示,组合逻辑器件801为时序环路(2)对应的第一器件k2,第一器件k2对应的驱动器件q2为输入端口101a、时序逻辑器件812a以及时序逻辑器件811a,由于输入端口101a不位于时序环路(2)上,则此时第一器件k2可以作为时序逻辑器件811a对应的反馈控制器件c,也即此时时序逻辑器件811a存在对应的反馈控制器件c,且该反馈控制器件c为组合逻辑器件801。
同样的,如图3C所示,断开反馈控制器件c中的用于构成时序环路(2)的输入管脚和输出管脚之间的连接关系。例如,如图3D所示,反馈控制器件c中的用于构成时序环路(2)的输入管脚和输出管脚之间的连接关系为连线832,因而断开连线832。
例如,对于时序逻辑器件813a,将时序逻辑器件813a作为图3C中的待处理器件r,按照图3C所示的流程执行后续判断。
首先,如图3C所示,判断是否存在从时序逻辑器件813a的数据输出端至数据输入端的时序环路。如图3D所示,时序逻辑器件813a和组合逻辑器件802构成了时序环路(3)(如图3D中黑色点划线所示)。
接着,如图3C所示,判断时序逻辑器件813a是否存在对应的反馈控制器件c。如图3D所示,对于时序环路(3),组合逻辑器件802为时序环路(3)对应的第一器件k3,第一器件k3对应的驱动器件q3为时序逻辑器件813a,由于时序逻辑器件813a位于时序环路(3)上,则时序逻辑器件813a不存在对应的反馈控制器件c。
最后,如图3C所示,断开时序逻辑器件813a中的数据输入端和数据输出端之间连接关系。例如,如图3D所示,时序逻辑器件813a中的数据输入端和数据输出端之间连接关系为连线833,因而断开连线833。
例如,在步骤S130中,如前所述,经过步骤S120后,使得数字电路中仅数据链路起点和数据链路终点具有时序器件特性,数字电路中除数据链路起点和数据链路终点以外的器件均体现组合逻辑器件的行为,从而可以采用时序路径的确定方法获取所有的数据链路,快速从复杂的电路设计中提取数据链路的相关信息。
例如,可以通过工具获取时序路径,例如工具可以为电子设计自动化(例如EDA)工具等。工具在对数字电路进行分析以确定时序路径时,是以时序器件作为起点,经过一个或多个组合逻辑器件后,以时序器件作为终点来获取时序路径,因而通过去除数字电路中的除数据链路起点和数据链路终点外的时序逻辑器件的时序器件特性,可以利用工具自动获取所有数据链路。
例如,在提取所有数据链路后,可以根据每条数据链路对应的链路信息,从中选择出时序相对较差的数据链路作为关键数据链路,以用于电路优化等场景。
例如,如图4A所示,本公开至少一实施例提供的数据链路的提取方法还可以包括步骤S210-S220。
在步骤S210,获取多条数据链路分别对应的多个链路信息。
在步骤S220,基于多个链路信息,从多条数据链路中确定至少一条关键数据链路。
需要说明的是,步骤S210和步骤S220中的数据链路,包括从数据链路起点开始,至数据链路终点结束,沿数据传输方向依次相连的至少一条时序路径,每条时序路径上的时序逻辑器件仍为数字电路进行步骤S120处理前的状态,也即时序逻辑器件仍然具有时序器件特性。
例如,对于第m条数据链路,获取的第m条数据链路对应的链路信息包括但不限于:第m条数据链路中的组合逻辑器件总数、第m条数据链路上的时序逻辑器件总数、第m条数据链路中的至少一条时序路径分别对应的时序裕量值、第m条数据链路中的至少一条时序路径分别对应的数据传输延时等,这里,m为正整数且小于等于多条数据链路的总条数。
例如,每个链路信息包括每条数据链路中的组合逻辑器件总数和每条数据链路中的时序逻辑器件总数,步骤S220可以包括:针对每条数据链路,基于组合逻辑器件总数和时序逻辑器件总数,计算得到每条数据链路对应的逻辑器件比值;将多条数据链路中对应于最大逻辑器件比值的至少一条数据链路,或者,将多条数据链路中对应的逻辑器件比值大于预设阈值的至少一条数据链路,作为至少一条关键数据链路。
例如,每条数据链路对应的逻辑器件比值的计算公式如公式(1)所示:
v(x)=(L_CT(x)±k)/(L_RT(x)±j),x=1,2…n 公式(1)
其中,x表示数据链路的编号,n表示多条数据链路的总条数,v(x)表示第x条数据链路对应的逻辑器件比值,L_CT(x)表示第x条数据链路中的组合逻辑器件总数,L_RT(x)表示第x条数据链路中的时序逻辑器件总数,k和j为预设调节值,用于提供计算余量。
例如,根据公式(1)计算得到v(1)至v(n),选择n个逻辑器件比值中的最大逻辑器件比值对应的至少一条数据链路作为至少一条关键数据链路,例如,最大逻辑器件比值为v(2)和v(3),则将第二条数据链路和第三条数据链路作为关键数据链路。
例如,可以将逻辑器件比值大于预设阈值的至少一条数据链路作为至少一条关键数据链路,例如,预设阈值为N,n个逻辑器件比值中的v(1)和v(n)大于N,则将第一条数据链路和第n条数据链路作为关键数据链路。
例如,每个链路信息包括每条数据链路中的时序逻辑器件总数,以及至少一条时序路径分别对应的时序裕量值,基于多个链路信息,从多条数据链路中确定至少一条关键数据链路,可以包括:针对每条数据链路,基于每个链路信息,获取每条数据链路对应的时序裕量信息,其中,时序裕量信息包括平均时序裕量值或时序裕量和值;将多条数据链路中对应于最小时序裕量信息的至少一条数据链路,或者,将多条数据链路中对应的时序裕量信息小于预设阈值的至少一条数据链路,作为至少一条关键数据链路。
例如,每条数据链路对应的平均时序裕量值的计算公式如公式(2)所示:
S_ave(x)=(L_Pn_t(x)±p)/(L_RT(x)±q),x=1,2…n 公式(2)其中,x表示数据链路的编号,n表示多条数据链路的总条数,S_ave(x)表示第x条数据链路对应的平均时序裕量值,L_Pn_t(x)表示第x条数据链路对应的时序裕量值,L_RT(x)表示第x条数据链路中的时序逻辑器件总数,p和q为预设调节值,用于提供计算余量。
例如,根据公式(2)计算得到S_ave(1)至S_ave(n),选择n个平均时序裕量值中的最小平均时序裕量值对应的至少一条数据链路作为至少一条关键数据链路,例如,最小平均时序裕量值为S_ave(2)和S_ave(3),则将第二条数据链路和第三条数据链路作为关键数据链路。
例如,可以将平均时序裕量值大于预设阈值的至少一条数据链路作为至少一条关键数据链路,例如,预设阈值为M,n个平均时序裕量值中的S_ave(1)和S_ave(n)大于M,则将第一条数据链路和第n条数据链路作为关键数据链路。
例如,每条数据链路对应的时序裕量和值的计算公式如公式(3)所示:
其中,x表示数据链路的编号,n表示多条数据链路的总条数,Ssum(x)表示第x条数据链路对应的时序裕量和值,L_Pn_t(x)表示第x条数据链路对应的时序裕量值,D为预设调节值,用于提供计算余量。
如前所述,根据公式(3)计算得到Ssum(1)至Ssum(n),选择n个时序裕量和值中的最大时序裕量和值对应的至少一条数据链路作为至少一条关键数据链路,或者,选择时序裕量和值大于预设阈值的至少一条数据链路作为至少一条关键数据链路。
图4B为本公开一实施例提供的数据链路示意图。如图4B所示,数据链路起点为端口101a,数据链路终点为端口201a,以端口101a为数据链路起点和以端口201a为数据链路终点,经过步骤S110至步骤S130可以提取得到三条数据链路,分别为以端口101a为起始,经过组合逻辑器件801、时序逻辑器件811、组合逻辑器件803、时序逻辑器件813和组合逻辑器件805,至端口201a结束的数据链路(1);以端口101a为起始,经过组合逻辑器件801、时序逻辑器件811、组合逻辑器件803、组合逻辑器件804和组合逻辑器件805,至端口201a结束的数据链路(2);以端口101a为起始,经过组合逻辑器件802、时序逻辑器件812、组合逻辑器件804和组合逻辑器件805,至端口201a结束的数据链路(3)。
例如,可以以逻辑器件比值来确定关键数据链路。如图4B所示,对于数据链路(1),L_CT(1)=3,L_RT(1)=2,若公式(1)中的预设调节值k和预设调节值j均为0,从而根据公式(1)可以得到v(1)=1.5;对于数据链路(2),L_CT(2)=4,L_RT(2)=1,从而根据公式(1)可以得到v(2)=4;对于数据链路(3),L_CT(3)=3,L_RT(3)=1,从而根据公式(1)可以得到v(3)=3,例如,三条数据链路中的最大逻辑器件比值为4,可以将数据链路(2)作为关键数据链路。
例如,可以以平均时序裕量值来确定关键数据链路。如图4B所示,对于数据链路(1),其包括从端口101a至时序逻辑器件811的时序路径(1)、从时序逻辑器件811至时序逻辑器件813的时序路径(2)以及从时序逻辑器件813至端口201a的时序路径(3),例如,时序路径(1)对应的时序裕量值L1_R1_t=-5,时序路径(2)对应的时序裕量值L1_R2_t=-5,时序路径(3)对应的时序裕量值L1_R2_t=-3,数据链路(1)对应的时序裕量值L_Pn_t(1)=L1_R1_t+L1_R2_t+L1_R2_t=-13,若公式(1)中的预设调节值p为0,预设调节值q为1,根据公式(2)可以得到S_ave(1)=-13/(2+1)=-4.33。
例如,对于数据链路(2)和数据链路(3)采用如上相同的方式进行计算,得到S_ave(2)=-6.5,S_ave(3)=-5,例如,三条数据链路中的最小平均时序裕量值为-6.5,可以将数据链路(2)作为关键数据链路。
例如,还可以基于每个链路信息,获取每条数据链路对应的电路延时信息,其中,电路延时信息包括平均电路延时值或电路延时和值;之后,将多条数据链路中对应于最大电路延时信息的至少一条数据链路,或者,将多条数据链路中对应的电路延时信息大于预设阈值的至少一条数据链路,作为至少一条关键数据链路。
例如,也可以将电路延时值和时序裕量值结合起来作为判断关键数据链路的标准,或者,也可以采用其他方式从多条数据链路中确定时序相对较差的关键数据链路,本公开对此不作限制。
例如,所获取的关键数据链路可以用于电路优化。例如,在一些实施例中,可以采用group path等方式对电路添加时序优化约束,控制时序优化的目标范围,例如,可以优先对所有数据链路中的关键数据链路进行优化,之后再对其他数据链路进行优化,若关键数据链路没有优化解决方案,则报告时序违反,不再优化其他数据链路,提高电路优化各个阶段结果的一致性,降低优化过程中的迭代次数,降低研发的时间成本。
例如,所获取的关键数据链路可以用于前端设计的评估。例如,在一些实施例中,对关键数据链路通过静态时序分析等方式进行时序分析,以便前端设计人员判断所设计的电路逻辑能否得到收敛的时序,及时对电路设计进行调整,提高开发效率,降低研发的时间成本。
例如,在提取所有数据链路后,可以提取数据链路中的关键器件的位置信息,以生成数据链路中的关键器件对应的版图位置约束,例如,可以基于版图位置约束进行电路优化,从而有助于在电路优化过程中降低迭代次数,加速时序收敛,例如,电路优化过程可以为通过电路优化工具,利用工具内嵌的优化模块,不断迭代电路布局,获取最优的布局结果,例如,电路优化工具可以为电子设计自动化(EDA)工具等。
例如,本公开至少一实施例提供的数据链路的提取方法还可以包括:对多条数据链路进行版图位置约束处理。
例如,图5A为本公开至少一实施例提供的数据链路的提取方法中的版图位置约束处理的示意性流程图。
例如,如图5A所示,本公开至少一实施例提供的数据链路的提取方法中的版图位置约束处理包括步骤S310至S330。
在步骤S310,从多条数据链路中选择待分析的至少一条数据链路。
在步骤S320,基于至少一条数据链路,确定多个关键器件。
例如,多个关键器件包括至少一条数据链路中的时序逻辑器件以及关键组合逻辑器件。
在步骤S330,确定多个关键器件分别对应的版图位置约束。
例如,在步骤S310,可以执行步骤S210-步骤S220,以确定至少一条关键数据链路,将至少一条关键数据链路作为待分析的至少一条数据链路,关键数据链路的选择方法如前所示,这里不再赘述。
例如,也可以将多条数据链路全部作为待分析的数据链路,或者,也可以采用其他方式确定待分析的数据链路,本公开对此不作限制。
例如,时序逻辑器件均可以作为关键器件,并执行步骤330以确定对应的版图位置约束。例如,关键组合逻辑器件可以为在电路拓扑结构上对电路会产生影响的组合逻辑器件,例如选择器等具有多个输入、多个输出的组合逻辑器件,其在电路中起到数据汇聚作用,可以将其作为关键组合逻辑器件并确定对应的位置约束。
例如,步骤S330可以包括:获取多个关键器件分别对应的多个版图坐标值;基于每个版图坐标值,生成每个关键器件对应的版图位置约束。
例如,待分析的至少一条数据链路为数字电路中的关键数据链路,获取多个关键器件分别对应的多个版图坐标值,可以包括:通过添加约束等方式来降低或者关闭工具对非关键数据链路的优化力度,提高关键数据链路的优化力度,以从优化的结果中提取关键器件对应的版图坐标值。
例如,对于电路结构较为简单的数字电路,例如,时钟仅有1个,端口、器件都较少的数字电路,可以根据经验直接对关键器件进行摆放,从而得到关键器件对应的版图坐标值。
例如,可以依据预先得到的拓扑模型和约束条件得到关键器件对应的版图坐标值,例如,约束条件可以为器件间连线最短、器件间平均距离最近等。
例如,基于每个版图坐标值,生成每个关键器件对应的版图位置约束,可以包括:基于每个版图坐标值,确定第一区域,其中,第一区域为包括基于每个版图坐标值确定的位置的区域,第一区域具有预设形状和预设尺寸;将第一区域作为每个关键器件对应的版图位置约束。
例如,第一区域可以为以版图坐标值作为区域中心,并基于预设形状和预设尺寸所得到的区域,例如,第一区域可以为将版图坐标值作为第一区域的某一个顶点,并基于预设形状和预设尺寸所得到的区域。
例如,第一区域的尺寸可以根据设计要求设定,例如,第一区域的形状可以为矩形、正方形、圆形、菱形等规则形状,例如,第一区域的形状也可以为不规则形状。
例如,图5B为本公开一实施例提供的数字电路的示意图。如图5B所示,该数字电路包括一条待分析的数据链路,该数据链路以端口101a作为数据链路起点,经过组合逻辑器件801、时序逻辑器件811a、组合逻辑器件803、组合逻辑器件804和组合逻辑器件805,最后以端口201a作为数据链路终点。
例如,图5B所示的数字电路的关键器件为时序逻辑器件811a,通过步骤S330所述的方法得到时序逻辑器件811a对应的版图坐标值,例如,如图5B所示,时序逻辑器件811a对应的版图坐标值为时序逻辑器件811a左下角顶点在版图上的位置坐标。之后,基于版图坐标值,确定如图5B中阴影部分所示的第一区域,该第一区域包括版图坐标值所确定的位置,第一区域为矩形。
例如,在一些实施例中,可以首先在步骤S310中对经过步骤S130得到的所有数据链路执行步骤S210-S220,从而得到至少一条关键数据链路作为版图位置约束处理的处理对象;之后,执行步骤S320-S330,生成至少一条关键数据链路上的关键器件的版图位置约束,并将这些版图位置约束作为输入信息添加至电路优化工具执行电路优化,提高电路优化各个阶段结果的一致性,降低优化过程中的迭代次数,降低研发的时间成本。
与上述的数据链路的提取方法相对应,本公开至少一实施例还提供一种数据链路的提取装置,图6为本公开至少一实施例提供的一种数据链路的提取装置的示意性框图。
例如,该数据链路的提取装置应用于对处于设计中且包括多个器件和多个端口的数字电路的设计数据进行处理。
例如,如图6所示,数据链路的提取装置600包括:链路端点获取单元601、时序处理单元602和链路提取单元603。
例如,链路端点获取单元601配置为从多个器件和多个端口中选择待分析的至少一组数据链路端点,其中,每组数据链路端点包括数据链路起点和数据链路终点。
例如,时序处理单元602配置为对多个器件和至少一组数据链路端点进行时序处理,以使得数字电路中除至少一组数据链路端点外的其他器件均不具有时序器件特性。
例如,链路提取单元603配置为基于经过时序处理后的多个器件和至少一组数据链路端点,确定每组数据链路端点对应的所有数据链路。
例如,链路端点获取单元601执行从多个器件和多个端口中选择待分析的至少一组数据链路端点时,包括执行以下操作:对数字电路执行初始优化,确定数字电路中不满足时序约束条件的至少一条时序路径;基于至少一条时序路径,从多个器件和多个端口中选择待分析的至少一个数据链路起点和至少一个数据链路终点,以得到至少一组数据链路端点。
例如,时序处理单元602执行对多个器件和至少一组数据链路端点进行时序处理时,包括执行以下操作:为每组数据链路端点包括的数据链路起点和数据链路终点设置时序约束;基于多个时序逻辑器件,确定多个待处理器件,其中,多个待处理器件包括多个时序逻辑器件中除至少一组数据链路端点以外的所有时序逻辑器件;对多个待处理器件进行去时序处理,以将多个待处理器件转换为多个组合逻辑器件。
例如,时序处理单元602执行为每组数据链路端点包括的数据链路起点和数据链路终点设置时序约束时,包括执行以下操作:为数据链路起点设置时钟约束和输入延时约束;为数据链路终点设置时钟约束和输出延时约束。
例如,时序处理单元602还可以包括环路断开处理子单元。
例如,环路断开处理子单元配置为对多个待处理器件进行时序环路检测及断开处理,以去除数字电路中存在的时序环路。
例如,环路断开处理子单元包括时序环路判断子单元、反馈控制器件判断子单元、第一处理子单元和第二处理子单元。
例如,时序环路判断子单元配置为对每个待处理器件,判断是否存在从每个待处理器件的数据输出端至数据输入端的时序环路。
例如,反馈控制器件判断子单元配置为响应于存在时序环路,判断每个待处理器件是否存在对应的反馈控制器件。
例如,第一处理子单元配置为响应于每个待处理器件存在对应的反馈控制器件,断开反馈控制器件中的用于构成时序环路的输入管脚和输出管脚之间的连接关系。
例如,第二处理子单元配置为响应于每个待处理器件不存在对应的反馈控制器件,断开每个待处理器件中的数据输入端和数据输出端之间连接关系。
例如,反馈控制器件判断子单元执行判断每个待处理器件是否存在对应的反馈控制器件时,包括执行以下操作:确定第一器件,其中,第一器件为在时序环路中沿数据传输方向与每个待处理器件的数据输出端具有电路连接关系的第一个非时序逻辑器件;基于第一器件,确定至少一个驱动器件,其中,至少一个驱动器件的输出管脚与第一器件的输入管脚相连;响应于至少一个驱动器件包括不位于时序环路上的驱动器件,将第一器件作为每个待处理器件对应的反馈控制器件,响应于至少一个驱动器件均位于时序环路中,每个待处理器件不存在对应的反馈控制器件。
例如,数据链路的提取装置600还可以包括获取单元和关键数据链路提取单元,例如,获取单元配置为获取多条数据链路分别对应的多个链路信息,关键数据链路提取单元配置为基于多个链路信息,从多条数据链路中确定至少一条关键数据链路。
例如,在一些实施例中,关键数据链路提取单元执行基于多个链路信息,从多条数据链路中确定至少一条关键数据链路时,包括执行以下操作:针对每条数据链路,基于组合逻辑器件总数和时序逻辑器件总数,计算得到每条数据链路对应的逻辑器件比值;将多条数据链路中对应于最大逻辑器件比值的至少一条数据链路,或者,将多条数据链路中对应的逻辑器件比值大于预设阈值的至少一条数据链路,作为至少一条关键数据链路。
例如,在另一些实施例中,关键数据链路提取单元执行基于多个链路信息,从多条数据链路中确定至少一条关键数据链路时,包括执行以下操作:针对每条数据链路,基于每个链路信息,获取每条数据链路对应的时序裕量信息,其中,时序裕量信息包括平均时序裕量值或时序裕量和值;将多条数据链路中对应于最小时序裕量信息的至少一条数据链路,或者,将多条数据链路中对应的时序裕量信息小于预设阈值的至少一条数据链路,作为至少一条关键数据链路。
例如,数据链路的提取装置600还可以包括位置约束处理单元,配置为对多条数据链路进行版图位置约束处理。
例如,位置约束处理单元包括数据链路选择子单元、关键器件确定子单元以及版图位置约束确定子单元。
例如,版图位置约束确定子单元执行确定多个关键器件分别对应的版图位置约束时,包括执行以下操作:获取多个关键器件分别对应的多个版图坐标值;基于每个版图坐标值,生成每个关键器件对应的版图位置约束。
例如,版图位置约束确定子单元执行基于每个版图坐标值,生成每个关键器件对应的版图位置约束时,包括执行以下操作:基于每个版图坐标值,确定第一区域,其中,第一区域为包括基于每个版图坐标值确定的位置的区域,第一区域具有预设形状和预设尺寸;将第一区域作为每个关键器件对应的版图位置约束。
例如,链路端点获取单元601、时序处理单元602、链路提取单元603包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的链路端点获取单元601、时序处理单元602、链路提取单元603的一些功能或全部功能。例如,链路端点获取单元601、时序处理单元602、链路提取单元603可以是专用硬件器件,用来实现如上所述的链路端点获取单元601、时序处理单元602、链路提取单元603的一些或全部功能。例如,链路端点获取单元601、时序处理单元602、链路提取单元603可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本申请实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
需要说明的是,链路端点获取单元601用于实现图1所示的步骤S110,时序处理单元602用于实现图1所示的步骤S120,链路提取单元603用于实现图1所示的步骤S130。从而关于链路端点获取单元601的具体说明可以参考上述数据链路的提取方法的实施例中图1所示的步骤S110的相关描述,关于时序处理单元602的具体说明可以参考上述数据链路的提取方法的实施例中图1所示的步骤S120的相关描述,关于链路提取单元603的具体说明可以参考上述数据链路的提取方法的实施例中图1所示的步骤S130的相关描述。此外,数据链路的提取装置可以实现与前述数据链路的提取方法相似的技术效果,在此不再赘述。
本公开至少一实施例还提供一种电子设备,图7为本公开至少一实施例提供的一种电子设备的示意性框图。
例如,如图7所示,该电子设备包括处理器701、通信接口702、存储器703和通信总线704。处理器701、通信接口702、存储器703通过通信总线704实现相互通信,处理器701、通信接口702、存储器703等组件之间也可以通过网络连接进行通信。本公开对网络的类型和功能在此不作限制。
例如,存储器703用于非瞬时性地存储计算机可执行指令。处理器701用于运行计算机可执行指令时,计算机可执行指令被处理器701运行时实现根据上述任一实施例所述的数据链路的提取方法。关于该数据链路的提取方法的各个步骤的具体实现以及相关解释内容可以参见上述数据链路的提取方法的实施例,在此不作赘述。
例如,处理器701执行存储器703上所存储的程序而实现数据链路的提取方法的实现方式,与前述数据链路的提取方法的实施例部分所提及的实现方式相同,这里也不再赘述。
例如,通信总线704可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
例如,通信接口702用于实现电子设备与其他设备之间的通信。
例如,处理器701和存储器703可以设置在服务器端(或云端)。
例如,处理器701可以控制电子设备中的其它组件以执行期望的功能。处理器701可以是中央处理器(CPU)、网络处理器(NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。
例如,存储器703可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器701可以运行所述计算机可执行指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
例如,关于电子设备执行数据链路的提取的过程的详细说明可以参考数据链路的提取方法的实施例中的相关描述,重复之处不再赘述。
图8为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图8所示,在存储介质800上可以非暂时性地存储一个或多个计算机可执行指令801。例如,当计算机可执行指令801由处理器执行时可以执行根据上文所述的数据链路的提取方法中的一个或多个步骤。
例如,该存储介质800可以应用于上述电子设备和/或数据链路的提取装置700中。例如,存储介质800可以包括电子设备中的存储器703。
例如,关于存储介质800的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种数据链路的提取方法,应用于对包括多个器件和多个端口的数字电路的设计数据进行处理,所述方法包括:
从所述多个器件和所述多个端口中选择待分析的至少一组数据链路端点,其中,所述至少一组数据链路端点中的每组数据链路端点包括数据链路起点和数据链路终点;
对所述多个器件和所述至少一组数据链路端点进行时序处理,以使得所述数字电路中除所述至少一组数据链路端点外的其他器件均不具有时序器件特性;
基于经过所述时序处理后的所述多个器件和所述至少一组数据链路端点,确定所述每组数据链路端点对应的多条数据链路。
2.根据权利要求1所述的方法,其中,从所述多个器件和所述多个端口中选择待分析的至少一组数据链路端点,包括:
对所述数字电路执行初始优化,确定所述数字电路中不满足时序约束条件的至少一条时序路径;
基于所述至少一条时序路径,从所述多个器件和所述多个端口中选择待分析的至少一个数据链路起点和至少一个数据链路终点,以得到所述至少一组数据链路端点。
3.根据权利要求1所述的方法,其中,所述多个器件包括多个时序逻辑器件,
对所述多个器件和所述至少一组数据链路端点进行时序处理,包括:
为每组数据链路端点包括的所述数据链路起点和所述数据链路终点设置时序约束;
基于所述多个时序逻辑器件,确定多个待处理器件,其中,所述多个待处理器件包括所述多个时序逻辑器件中除所述至少一组数据链路端点以外的所有时序逻辑器件;
对所述多个待处理器件进行去时序处理,以将所述多个待处理器件转换为多个组合逻辑器件。
4.根据权利要求3所述的方法,其中,为每组数据链路端点包括的所述数据链路起点和所述数据链路终点设置时序约束,包括:
为所述数据链路起点设置时钟约束和输入延时约束;
为所述数据链路终点设置时钟约束和输出延时约束。
5.根据权利要求3所述的方法,其中,在对所述多个器件和所述至少一组数据链路端点进行时序处理后,所述方法还包括:
对所述多个待处理器件进行时序环路检测及断开处理,以去除所述数字电路中存在的时序环路。
6.根据权利要求5所述的方法,其中,对所述多个待处理器件进行时序环路检测及断开处理,包括:
对每个待处理器件,判断是否存在从所述每个待处理器件的数据输出端至数据输入端的时序环路;
响应于存在所述时序环路,判断所述每个待处理器件是否存在对应的反馈控制器件,
响应于所述每个待处理器件存在对应的反馈控制器件,断开所述反馈控制器件中的用于构成所述时序环路的输入管脚和输出管脚之间的连接关系,
响应于所述每个待处理器件不存在对应的反馈控制器件,断开所述每个待处理器件中的数据输入端和数据输出端之间连接关系。
7.根据权利要求6所述的方法,其中,判断所述每个待处理器件是否存在对应的反馈控制器件,包括:
确定第一器件,其中,所述第一器件为在所述时序环路中沿数据传输方向与所述每个待处理器件的数据输出端具有电路连接关系的第一个非时序逻辑器件;
基于所述第一器件,确定至少一个驱动器件,其中,所述至少一个驱动器件的输出管脚与所述第一器件的输入管脚相连;
响应于所述至少一个驱动器件包括不位于所述时序环路上的驱动器件,将所述第一器件作为所述每个待处理器件对应的反馈控制器件,
响应于所述至少一个驱动器件均位于所述时序环路中,所述每个待处理器件不存在对应的反馈控制器件。
8.根据权利要求1所述的方法,还包括:
获取所述多条数据链路分别对应的多个链路信息;
基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路。
9.根据权利要求8所述的方法,其中,每个链路信息包括每条数据链路中的组合逻辑器件总数和每条数据链路中的时序逻辑器件总数,
基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路,包括:
针对每条数据链路,基于所述组合逻辑器件总数和所述时序逻辑器件总数,计算得到所述每条数据链路对应的逻辑器件比值;
将所述多条数据链路中对应于最大逻辑器件比值的至少一条数据链路,或者,将所述多条数据链路中对应的逻辑器件比值大于预设阈值的至少一条数据链路,作为所述至少一条关键数据链路。
10.根据权利要求8所述的方法,其中,每条数据链路包括从所述数据链路起点开始,至所述数据链路终点结束,沿数据传输方向依次相连的至少一条时序路径,
每个链路信息包括每条数据链路中的时序逻辑器件总数,以及所述至少一条时序路径分别对应的时序裕量值,
基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路,包括:
针对每条数据链路,基于所述每个链路信息,获取每条数据链路对应的时序裕量信息,其中,所述时序裕量信息包括平均时序裕量值或时序裕量和值;
将所述多条数据链路中对应于最小时序裕量信息的至少一条数据链路,或者,将所述多条数据链路中对应的时序裕量信息小于预设阈值的至少一条数据链路,作为所述至少一条关键数据链路。
11.根据权利要求1所述的方法,还包括:
对所述多条数据链路进行版图位置约束处理。
12.根据权利要求11所述的方法,其中,对所述多条数据链路进行版图位置约束处理,包括:
从所述多条数据链路中选择待分析的至少一条数据链路;
基于所述至少一条数据链路,确定多个关键器件,其中,所述多个关键器件包括所述至少一条数据链路中的时序逻辑器件以及关键组合逻辑器件;
确定所述多个关键器件分别对应的版图位置约束。
13.根据权利要求12所述的方法,其中,确定所述多个关键器件分别对应的版图位置约束,包括:
获取所述多个关键器件分别对应的多个版图坐标值;
基于每个版图坐标值,生成每个关键器件对应的版图位置约束。
14.根据权利要求13所述的方法,其中,基于每个版图坐标值,生成每个关键器件对应的版图位置约束,包括:
基于每个版图坐标值,确定第一区域,其中,所述第一区域为包括基于所述每个版图坐标值确定的位置的区域,所述第一区域具有预设形状和预设尺寸;
将所述第一区域作为所述每个关键器件对应的版图位置约束。
15.根据权利要求1-14任一项所述的方法,其中,每个端口为输入端口或输出端口,
所述数据链路起点包括输入端口、模拟器件的数据输出端口或逻辑器件的数据输出端口;
所述数据链路终点包括输出端口、模拟器件的数据输入端口或逻辑器件的数据输入端口。
16.一种数据链路的提取装置,应用于对包括多个器件和多个端口的数字电路的设计数据进行处理,
所述装置包括:
链路端点获取单元,配置为从所述多个器件和所述多个端口中选择待分析的至少一组数据链路端点,其中,所述至少一组数据链路端点中的每组数据链路端点包括数据链路起点和数据链路终点;
时序处理单元,配置为对所述多个器件和所述至少一组数据链路端点进行时序处理,以使得所述数字电路中除所述至少一组数据链路端点外的其他器件均不具有时序器件特性;
链路提取单元,配置为基于经过所述时序处理后的所述多个器件和所述至少一组数据链路端点,确定所述每组数据链路端点对应的多条数据链路。
17.根据权利要求16所述的数据链路的提取装置,还包括:
获取单元,配置为获取所述多条数据链路分别对应的多个链路信息;
关键数据链路提取单元,配置为基于所述多个链路信息,从所述多条数据链路中确定至少一条关键数据链路。
18.根据权利要求16所述的数据链路的提取装置,还包括:
位置约束处理单元,配置为对所述多条数据链路进行版图位置约束处理。
19.一种电子设备,包括:
存储器,非瞬时性地存储有计算机可执行指令;
处理器,配置为运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时实现根据权利要求1-15任一项所述的数据链路的提取方法。
20.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求1-15中任一项所述的数据链路的提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110724291.9A CN113486613B (zh) | 2021-06-29 | 2021-06-29 | 数据链路的提取方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110724291.9A CN113486613B (zh) | 2021-06-29 | 2021-06-29 | 数据链路的提取方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486613A CN113486613A (zh) | 2021-10-08 |
CN113486613B true CN113486613B (zh) | 2023-06-30 |
Family
ID=77936468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110724291.9A Active CN113486613B (zh) | 2021-06-29 | 2021-06-29 | 数据链路的提取方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486613B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935866B (zh) * | 2022-12-27 | 2023-12-08 | 深存科技(无锡)有限公司 | 一种集成电路时序约束功能验证方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819072A (en) * | 1996-06-27 | 1998-10-06 | Unisys Corporation | Method of using a four-state simulator for testing integrated circuit designs having variable timing constraints |
US8010923B1 (en) * | 2008-05-28 | 2011-08-30 | Xilinx, Inc. | Latch based optimization during implementation of circuit designs for programmable logic devices |
CN103177145A (zh) * | 2011-12-20 | 2013-06-26 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
CN103226632A (zh) * | 2013-03-29 | 2013-07-31 | 龙芯中科技术有限公司 | 阈值电压器件的替换方法及装置 |
US9842187B1 (en) * | 2016-03-28 | 2017-12-12 | Xilinx, Inc. | Representation of complex timing characteristics of startpoint-endpoint pairs in a circuit design |
CN107784185A (zh) * | 2017-11-17 | 2018-03-09 | 青岛海信电器股份有限公司 | 一种门级网表中伪路径的提取方法、装置及终端设备 |
CN108073771A (zh) * | 2017-12-25 | 2018-05-25 | 中国电子科技集团公司第四十七研究所 | Fpga静态时序分析算法 |
CN111914507A (zh) * | 2020-07-23 | 2020-11-10 | 清华大学 | 一种快速单磁通量子rsfq电路的布线方法和装置 |
-
2021
- 2021-06-29 CN CN202110724291.9A patent/CN113486613B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819072A (en) * | 1996-06-27 | 1998-10-06 | Unisys Corporation | Method of using a four-state simulator for testing integrated circuit designs having variable timing constraints |
US8010923B1 (en) * | 2008-05-28 | 2011-08-30 | Xilinx, Inc. | Latch based optimization during implementation of circuit designs for programmable logic devices |
CN103177145A (zh) * | 2011-12-20 | 2013-06-26 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
CN103226632A (zh) * | 2013-03-29 | 2013-07-31 | 龙芯中科技术有限公司 | 阈值电压器件的替换方法及装置 |
US9842187B1 (en) * | 2016-03-28 | 2017-12-12 | Xilinx, Inc. | Representation of complex timing characteristics of startpoint-endpoint pairs in a circuit design |
CN107784185A (zh) * | 2017-11-17 | 2018-03-09 | 青岛海信电器股份有限公司 | 一种门级网表中伪路径的提取方法、装置及终端设备 |
CN108073771A (zh) * | 2017-12-25 | 2018-05-25 | 中国电子科技集团公司第四十七研究所 | Fpga静态时序分析算法 |
CN111914507A (zh) * | 2020-07-23 | 2020-11-10 | 清华大学 | 一种快速单磁通量子rsfq电路的布线方法和装置 |
Non-Patent Citations (3)
Title |
---|
一种快速准确控制复杂路径延时的方法;文鼎童;陈岚;;计算机工程与应用(第33期);全文 * |
基于锁存器路径的静态时序分析在第三方验证中的应用;刘国斌;左丽丽;陈云;祝周荣;刘伟;;计算机测量与控制(第09期);全文 * |
静态时序分析在数字ASIC设计中的应用;陈敏,殷瑞祥,郭,曾爱华;重庆工学院学报(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113486613A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776547B1 (en) | Infinite-depth path-based analysis of operational timing for circuit design | |
KR102374380B1 (ko) | 인공지능 칩 테스트 방법, 장치, 기기 및 저장매체 | |
US20220221513A1 (en) | Chip, chip testing method and electronic device | |
US10990733B1 (en) | Shared timing graph propagation for multi-mode multi-corner static timing analysis | |
CN113868992A (zh) | 集成电路的时序约束方法、装置、电子设备及芯片 | |
CN115062570B (zh) | 一种形式验证方法、装置、设备及计算机存储介质 | |
CN113486613B (zh) | 数据链路的提取方法、装置、电子设备和存储介质 | |
US9110689B2 (en) | Automatic pipeline stage insertion | |
CN112667024A (zh) | 延时计算电路、芯片运行频率获取方法、装置及电子设备 | |
US9792400B2 (en) | Determination of flip-flop count in physical design | |
CN115455879A (zh) | 时序路径筛查方法及设备 | |
CN114548006A (zh) | 集成电路的验证方法、装置、电子设备、存储介质 | |
CN116702664B (zh) | 时间违例修复方法、装置、计算机设备及存储介质 | |
US8181136B2 (en) | Circuit operation verification method and apparatus | |
US8392776B2 (en) | Delay fault diagnosis program | |
US6070258A (en) | Logic synthesis for testability system which enables improvement in testability and effective selection of center state and logic synthesis method thereof | |
US7043708B2 (en) | Intelligent crosstalk delay estimator for integrated circuit design flow | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
CN115455880A (zh) | 时序路径筛查方法及设备 | |
US10853540B2 (en) | Method and system for automated design and design-space exploration | |
CN112926283B (zh) | 用于集成电路的布局设计方法及装置、设备和存储介质 | |
CN113449477B (zh) | 数字电路的连接方法、装置、电子设备和存储介质 | |
CN117688893B (zh) | 芯片转换时间违例修复方法、装置、电子设备及存储介质 | |
US9547733B2 (en) | Identifying inversion error in logic equivalence check | |
CN118070724B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |