基于可编程逻辑设计的跨时钟域检测方法及系统与流程

摘要: 本发明涉及电子硬件设计,具体为一种基于可编程逻辑设计的跨时钟域检测方法及系统。背景技术:1、在可编程逻辑设计中,跨时钟域检测是确保系统稳定性和功能正确性的关键环...
基于可编程逻辑设计的跨时钟域检测方法及系统与流程

本发明涉及电子硬件设计,具体为一种基于可编程逻辑设计的跨时钟域检测方法及系统。

背景技术:

1、在可编程逻辑设计中,跨时钟域检测是确保系统稳定性和功能正确性的关键环节。随着现代可编程逻辑器件和异构系统架构的复杂度提升,设计中常常需要处理多个不同时钟域之间的数据交互。这些时钟域可能具有不同的频率、相位或抖动特性,导致数据传输过程中出现亚稳态、数据丢失或逻辑错误,从而引发系统故障。

2、现有技术中,在设计完成阶段,可使用静态时序分析工具或开发工具自带插件进行跨时钟域检测。静态时序分析工具需在设计中明确时钟域关系,通过时钟设计约束检测跨时钟域路径,但无法完全覆盖异步时钟域的亚稳态风险。使用可编程器件开发工具的跨时钟域分析插件,结合布线资源和时钟设计约束,识别未同步的跨时钟域信号。上述现有技术在运行时需预先确定相关时钟设计约束,且只能在设计完成后进行跨时钟域检测,无法在设计早期阶段介入。

3、因此,需要一种在设计早期阶段可介入且无时钟设计约束的情况下可进行跨时钟域检测的方法。

技术实现思路

1、针对现有技术中存在的问题,本发明提供本发明提供一种基于可编程逻辑设计的跨时钟域检测方法及系统,通过对设计文件包进行树形结构解析,从最大深度节点到根节点逐层解析设计文件,自动提取时钟和数据信号,经跨文件胶连处理后生成跨时钟域检查点,实现在设计早期阶段无时钟设计约束的情况下自动完成跨时钟域检测。

2、本发明是通过以下技术方案来实现:

3、第一方面,本技术提供了一种基于可编程逻辑设计的跨时钟域检测方法,包括以下步骤:

4、步骤1、获取由多个硬件描述语言设计文件构成的设计文件包,对设计文件包进行树形结构解析,按照文件树形结构对每个文件进行深度标记,得到带深度标记的文件树形结构及所述设计文件包的最大深度;

5、步骤2、从最大深度层级开始,沿自底向上的方向逐层遍历所述文件树形结构,依次选取各层级的设计文件进行解析,提取各设计文件的时钟信号和数据信号,将时钟信号和数据信号分别归入对应信号集合;

6、所述信号集合包括内部使用时钟集合、内部胶连数据集合、时钟输出集合、时钟输入集合、数据输出集合和数据输入集合;

7、步骤3、针对当前待处理的设计文件,判断其是否存在下属子文件;若存在下属子文件,则将当前设计文件的各信号集合与其子文件的对应信号集合进行跨文件胶连处理,通过层级间信号匹配更新各信号的来源时钟文件树路径与目的时钟文件树路径;

8、步骤4、基于完成胶连更新的内部胶连数据集合和数据输入集合,通过时钟路径一致性比对和多目的时钟采样判定生成跨时钟域检查点,基于所有层级的跨时钟域检查点,得到检查点集合。

9、优选的,步骤1中对设计文件包进行树形结构解析包括:

10、识别各设计文件之间的层级调用与依赖关系,构建以顶层设计文件为根节点、底层子模块设计文件为叶节点的文件树形结构;

11、按照层级从根节点到叶节点递增的规则对每个设计文件进行深度标记,将最深层叶节点对应的深度值确定为设计文件包的最大深度。

12、优选的,步骤2中对每个设计文件进行解析包括:

13、对该设计文件的内部时序逻辑部分进行解析,将不存在于该设计文件输入输出信号列表中的内部时钟信号归入所述内部使用时钟集合,记录各时钟信号的文件树路径与时钟名称;

14、将内部跨时钟域传输的数据信号归入所述内部胶连数据集合,记录各数据信号的来源时钟文件树路径与目的时钟文件树路径。

15、优选的,步骤2中对每个设计文件进行解析还包括:

16、对该设计文件的输入输出信号列表进行解析,将时钟类信号按传输方向分别归入所述时钟输入集合和所述时钟输出集合,将数据类信号按传输方向分别归入所述数据输入集合和所述数据输出集合。

17、优选的,步骤3中所述跨文件胶连处理包括:

18、若子文件的时钟输入来源于当前设计文件的时钟输入集合或内部使用时钟集合,则将当前设计文件中对应时钟的来源时钟文件树路径添加至子文件对应时钟输入的来源时钟文件树路径中;

19、若子文件的数据输入来源于当前设计文件的数据输入集合或内部胶连数据集合,则将当前设计文件中对应数据的来源时钟信息复制至子文件对应数据输入的来源时钟文件树路径中。

20、优选的,步骤3中所述跨文件胶连处理还包括:

21、若当前设计文件的时钟输出或内部使用时钟来源于子文件的时钟输出集合,则将子文件对应时钟输出的文件树路径添加至当前设计文件对应时钟的来源时钟文件树路径中;

22、若当前设计文件的数据输出或内部胶连数据来源于子文件的数据输出集合,则将子文件对应数据输出的来源时钟与目的时钟信息复制至当前设计文件对应数据的来源时钟文件树路径中。

23、优选的,步骤4中所述时钟路径一致性比对包括:

24、遍历所述内部胶连数据集合,逐条比对每条内部胶连数据的来源时钟文件树路径与目的时钟文件树路径,若两者不一致,则基于该内部胶连数据生成一个检查点。

25、优选的,步骤2至步骤2采用自底向上的层级迭代方式执行,具体为:

26、从最大深度层级开始遍历,完成当前深度下所有未解析设计文件的解析、胶连与检查后,将遍历深度数值减1,继续处理上一层级的设计文件,直至完成根节点层级的全部处理,汇总所有层级生成的跨时钟域检查点,得到最终的检查点集合。

27、优选的,步骤4中所述多目的时钟采样判定包括:

28、遍历所述数据输入集合,统计每条数据输入对应的目的时钟文件树路径数量,若同一条数据输入对应多个不同的目的时钟文件树路径,则基于该数据输入生成一个检查点。

29、第二方面,本技术提供了一种基于可编程逻辑设计的跨时钟域检测系统,包括:

30、文件结构解析模块,用于获取由多个硬件描述语言设计文件构成的设计文件包,对设计文件包进行树形结构解析,按照文件树形结构对每个文件进行深度标记,得到带深度标记的文件树形结构及所述设计文件包的最大深度;

31、信号解析模块,用于从最大深度层级开始,沿自底向上的方向逐层遍历所述文件树形结构,依次选取各层级的设计文件进行解析,提取各设计文件的时钟信号和数据信号,将时钟信号和数据信号分别归入对应信号集合;所述信号集合包括内部使用时钟集合、内部胶连数据集合、时钟输出集合、时钟输入集合、数据输出集合和数据输入集合;

32、跨文件胶连模块,用于针对当前待处理的设计文件,判断其是否存在下属子文件;若存在下属子文件,则将当前设计文件的各信号集合与其子文件的对应信号集合进行跨文件胶连处理,通过层级间信号匹配更新各信号的来源时钟文件树路径与目的时钟文件树路径;

33、跨时钟域检查模块,用于基于完成胶连更新的内部胶连数据集合和数据输入集合,通过时钟路径一致性比对和多目的时钟采样判定生成跨时钟域检查点,基于所有层级的跨时钟域检查点,得到检查点集合。

34、与现有技术相比,本发明具有以下有益的技术效果:

35、本技术的一种基于可编程逻辑设计的跨时钟域检测方法,首先对设计文件包进行树形结构解析和深度标记,将零散的设计文件组织为层次化的文件树,确立从最深叶节点到顶层根节点的自底向上解析顺序。然后从最大深度层级开始,沿自底向上方向逐层解析各设计文件,提取时钟和数据信号并归入内部使用时钟、内部胶连数据、时钟和数据输入输出六类信号集合,将硬件描述语言代码转化为可计算的结构化数据。其次对存在子文件的设计文件执行跨文件胶连处理,通过层级间信号匹配将子模块端口信号与父模块内部信号建立关联,把底层时钟路径信息逐层向上传递,使每条数据传输路径的来源时钟和目的时钟具备完整的文件树路径标识。最后基于胶连更新后的内部胶连数据集合和数据输入集合,通过时钟路径一致性比对和多目的时钟采样判定两种检查方式生成跨时钟域检查点,前者识别信号从生成到使用跨越不同时钟域的风险,后者识别同一数据被多个时钟域采样的风险。该方法无需预先指定时钟设计约束即可自动完成跨时钟域检测,可在设计早期阶段介入,避免了传统方法依赖时钟约束且只能在设计完成后检测的局限;自底向上的解析和胶连机制保证了信号路径信息的完整性,避免因模块划分导致的路径断裂和风险漏检;支持多种硬件描述语言文件的混合解析,不局限于特定开发平台。

36、本技术还提出了一种基于可编程逻辑设计的跨时钟域检测系统、一种电子设备和一种计算机存储介质,具备上述基于可编程逻辑设计的跨时钟域检测方法的全部优势。