生成方法及装置、验证方法及装置、电子设备和存储介质与流程

文档序号:32222881发布日期:2022-11-16 11:51阅读:41来源:国知局
生成方法及装置、验证方法及装置、电子设备和存储介质与流程

1.本公开的实施例涉及一种路径信息的生成方法及装置、验证方法及装置、电子设备和存储介质。


背景技术:

2.验证是在芯片生产前对芯片功能设计及芯片工艺等方面进行仿真与测试的工作,随着芯片的规模不断加大,验证成为了芯片研发设计产业的重要组成部分。


技术实现要素:

3.本公开至少一个实施例提供一种集成电路设计中对象路径的路径信息的生成方法,对象路径包括至少一个缓冲器,方法包括:从用于集成电路设计的缓冲器描述文件中提取对象路径中的至少一个缓冲器的缓冲器信息;根据缓冲器信息,从集成电路设计的芯片逻辑设计文件中提取对象路径的路径描述信息;以及根据路径描述信息,生成对象路径的路径信息。
4.例如,在本公开一实施例提供的生成方法中,缓冲器信息包括在对象路径中的至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称。
5.例如,在本公开一实施例提供的生成方法中,根据缓冲器信息,从集成电路设计的芯片逻辑设计文件中提取对象路径的路径描述信息,包括:根据至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称,从集成电路设计的芯片逻辑设计文件中确定对象路径的起点和终点;以及从集成电路设计的芯片逻辑设计文件中提取起点的起点信息和终点的终点信息,路径描述信息包括起点信息和终点信息。
6.例如,在本公开一实施例提供的生成方法中,根据至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称,从集成电路设计的芯片逻辑设计文件中确定对象路径的起点和终点,包括:从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输入信号的输入端口连接的第一线网信号,将第一线网信号连接的另一个端口作为对象路径的起点;以及从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输出信号的输出端口连接的第二线网信号,将第二线网信号连接的另一个端口作为对象路径的终点。
7.例如,在本公开一实施例提供的生成方法中,从集成电路设计的芯片逻辑设计文件中提取起点的起点信息和终点的终点信息,包括:从集成电路设计的芯片逻辑设计文件中提取起点的名称和终点的名称;以及根据起点的名称确定起点所在的第一电路模块,根据终点的名称确定终点所在的第二电路模块。
8.例如,在本公开一实施例提供的生成方法中,还包括:从集成电路设计的缓冲器描述文件中提取与至少一个缓冲器的输入信号的输入端口连接的输入电路模块和与至少一个缓冲器的输出信号的输出端口连接的输出电路模块;判断第一电路模块和第二电路模块是否分别与输入电路模块和输出电路模块一致;根据路径描述信息,生成对象路径的路径
信息,包括:响应于第一电路模块和第二电路模块分别与输入电路模块和输出电路模块一致,根据路径描述信息,生成对象路径的路径信息。
9.例如,在本公开一实施例提供的生成方法中,还包括:从集成电路设计的缓冲器描述文件中获取至少一个缓冲器的时钟信号的时钟路径信息和至少一个缓冲器的级数;根据路径描述信息,生成对象路径的路径信息,包括:根据路径描述信息以及进一步根据时钟路径信息和至少一个缓冲器的级数,生成对象路径的路径信息。
10.例如,在本公开一实施例提供的生成方法中,从集成电路设计的缓冲器描述文件中获取至少一个缓冲器的时钟信号的时钟路径信息,包括:从集成电路设计的缓冲器描述文件中提取至少一个缓冲器的例化名和时钟信号的名称;以及根据例化名和时钟信号的名称,生成时钟信号的时钟路径信息。
11.例如,在本公开一实施例提供的生成方法中,根据路径描述信息以及进一步根据时钟路径信息和至少一个缓冲器的级数,生成对象路径的路径信息,包括:建立至少一个缓冲器的输入信号的名称、至少一个缓冲器的输出信号的名称、时钟路径信息、至少一个缓冲器的级数以及路径描述信息之间的对应关系;以及根据对应关系,生成对象路径的路径信息。
12.例如,在本公开一实施例提供的生成方法中,路径信息用于利用验证装置对对象路径进行验证,方法还包括:按照验证装置识别的文件格式,生成包含路径信息的路径信息文件。
13.本公开至少一个实施例提供一种对集成电路设计中的对象路径进行验证的验证方法,包括:根据本公开任一实施例提供的生成方法获取对象路径的路径信息;获取集成电路设计的黑盒文件,黑盒文件包括集成电路设计所包括的多个电路模块与对象路径的验证无关的电路模块的模块信息;基于路径信息和黑盒文件,对对象路径进行验证生成验证结果。
14.本公开至少一个实施例提供一种集成电路设计中对象路径的路径信息的生成装置,对象路径包括至少一个缓冲器,生成装置包括:第一提取单元,配置为从用于集成电路设计的缓冲器描述文件中提取对象路径中的至少一个缓冲器的缓冲器信息;第二提取单元,配置为根据缓冲器信息,从集成电路设计的芯片逻辑设计文件中提取对象路径的路径描述信息;以及生成单元,配置为根据路径描述信息,生成对象路径的路径信息。
15.例如,在本公开一实施例提供的生成装置中,第二提取单元包括确定子单元和第一提取子单元。确定子单元配置为根据至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称,从集成电路设计的芯片逻辑设计文件中确定对象路径的起点和终点。第一提取子单元配置为从集成电路设计的芯片逻辑设计文件中提取起点的起点信息和终点的终点信息,路径描述信息包括起点信息和终点信息。
16.例如,在本公开一实施例提供的生成装置中,确定子单元包括起点确定子单元和终点确定子单元。起点确定子单元配置为从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输入信号的输入端口连接的第一线网信号,将第一线网信号连接的另一个端口作为对象路径的起点。终点确定子单元配置为从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输出信号的输出端口连接的第二线网信号,将第二线网信号连接的另一个端口作为对象路径的终点。
17.例如,在本公开一实施例提供的生成装置中,第一提取子单元包括名称提取子单元和模块提取子单元。名称提取子单元配置为从集成电路设计的芯片逻辑设计文件中提取起点的名称和终点的名称。模块提取子单元配置为根据起点的名称确定起点所在的第一电路模块,根据终点的名称确定终点所在的第二电路模块。
18.例如,在本公开一实施例提供的生成装置中,还包括第三提取单元和判断单元。第三提取单元配置为从集成电路设计的缓冲器描述文件中提取与至少一个缓冲器的输入信号的输入端口连接的输入电路模块和与至少一个缓冲器的输出信号的输出端口连接的输出电路模块。判断单元配置为判断第一电路模块和第二电路模块是否分别与输入电路模块和输出电路模块一致。生成单元包括第一生成子单元,配置为响应于第一电路模块和第二电路模块分别与输入电路模块和输出电路模块一致,根据路径描述信息,生成对象路径的路径信息。
19.例如,在本公开一实施例提供的生成装置中,还包括获取单元,配置为从集成电路设计的缓冲器描述文件中获取至少一个缓冲器的时钟信号的时钟路径信息和至少一个缓冲器的级数。生成单元包括第二生成子单元,配置为根据路径描述信息以及进一步根据时钟路径信息和至少一个缓冲器的级数,生成对象路径的路径信息。
20.例如,在本公开一实施例提供的生成装置中,获取单元包括第二提取子单元和时钟信息生成子单元。第二提取子单元配置为从集成电路设计的缓冲器描述文件中提取至少一个缓冲器的例化名和时钟信号的名称。时钟信息生成子单元配置为根据例化名和时钟信号的名称,生成时钟信号的时钟路径信息。
21.例如,在本公开一实施例提供的生成装置中,第二生成子单元包括建立子单元和路径信息生成子单元。建立子单元配置为建立至少一个缓冲器的输入信号的名称、至少一个缓冲器的输出信号的名称、时钟路径信息、至少一个缓冲器的级数以及路径描述信息之间的对应关系。路径信息生成子单元配置为根据对应关系,生成对象路径的路径信息。
22.例如,在本公开一实施例提供的生成装置中,路径信息用于利用验证装置对对象路径进行验证,生成装置还包括文件生成单元,配置为按照验证装置识别的文件格式,生成包含路径信息的路径信息文件。
23.本公开至少一个实施例提供一种对集成电路设计中的对象路径进行验证的验证装置,包括:路径信息获取单元,配置为根据本公开任一实施例提供的生成方法获取对象路径的路径信息;黑盒文件获取单元,配置为获取集成电路设计的黑盒文件,黑盒文件包括集成电路设计所包括的多个电路模块与对象路径的验证无关的电路模块的模块信息;以及验证单元,配置为基于路径信息和黑盒文件,对对象路径进行验证生成验证结果。
24.本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序指令;一个或多个计算机程序指令被存储在存储器中,并由处理器执行时实现本公开任一实施例提供的生成方法或者验证方法。
25.本公开至少一个实施例提供一种计算机可读存储介质,非暂时性存储有计算机可读指令,当计算机可读指令由处理器执行时实现本公开任一实施例提供的生成方法或者验证方法。
附图说明
26.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
27.图1a示出了本公开至少一实施例提供的一种集成电路设计中对象路径的路径信息的生成方法的流程图;
28.图1b示出了本公开至少一实施例提供的一种缓冲器描述文件的文件格式的示意图;
29.图1c示出了本公开至少一个实施例提供的芯片逻辑设计文件的文件格式示意图;
30.图2示出了本公开至少一个实施例提供的图1a中步骤s20的方法流程图;
31.图3示出了本公开至少一个实施例提供的另一种生成方法的流程图;
32.图4示出了本公开至少一个实施例提供的一种路径信息文件的文件格式示意图;
33.图5示出了本公开至少一个实施例提供的另一种生成方法的流程图;
34.图6a示出了本公开至少一个实施例提供的一种对集成电路设计中的对象路径进行验证的验证方法的流程图;
35.图6b示出了本公开至少一个实施例提供的另一种对集成电路设计中的对象路径进行验证的验证方法的流程图;
36.图7a示出了本公开至少一个实施例提供的一种集成电路设计中对象路径的路径信息的生成装置的示意框图;
37.图7b示出了本公开至少一个实施例提供的一种对集成电路设计中的对象路径进行验证的验证装置的示意框图;
38.图8示出了本公开至少一个实施例提供的一种电子设备的示意框图;
39.图9示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
40.图10示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
41.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
42.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
43.在片上系统(system-on-a-chip,soc)设计验证中,通常可以采用动态仿真验证或
者静态形式验证对soc设计进行验证(例如,soc连通性的验证)。动态仿真验证例如可以包括提取出验证功能点,将激励施加于soc设计,通过观察soc设计的输出结果验证soc设计是否符合设计规范。动态仿真验证很难用功能覆盖率描述时序逻辑和选通逻辑,并且若互连信号数量庞大,需要单独构造大量检查连通性的用例并处理中间信号,一旦发生改动很难维护。静态形式验证例如可以包括从数学上完备地证明或验证电路的实现方案是否确实实现了soc设计所描述的功能。静态形式验证要对soc设计进行模型抽取,对于验证者具有很高的数学技能和经验上的要求。
44.在当前超大规模soc中,版图的物理实现需要划分为多个电路模块分别进行,再通过顶层设计完成整个soc的物理设计。随着芯片规模持续增大,面积增大,电路模块之间的连线相应增长,线延迟不可避免地会带来时序的问题。为了解决这个问题,采用在两个电路模块之间的连线上插入缓冲器(例如,触发器(flipflop))来收敛时序。随着芯片规模的增大,整个物理设计中需要的缓冲器数量会随之增加,例如,在大规模设计中往往需要插入数十万级的缓冲器来实现时序的收敛。
45.为了使集成电路设计的验证更加简单,目前出现了一些验证工具,利用验证工具可以简化对soc设计进行验证的难度。验证工具例如包括用于对路径进行连通性检查的连接检查工具。连接检查工具提供一种脚本格式专门用来描述要检测的路径的路径信息。脚本里包含路径上的源点,目的点,选通信号,时钟信号,信号延迟等信息,验证者可以按照连接检查工具定义的脚本格式,将要检查路径的路径信息描述在相应的脚本中,随后通过命令读取设计文件以及包括路径信息的脚本就可以对路径的连通性做出检查并给出报告。但在面对庞大的信号量时,编写路径信息的脚本无疑是一项巨大的工程。
46.本公开至少一个实施例提供一种集成电路设计中对象路径的路径信息的生成方法,对象路径包括至少一个缓冲器。该方法包括:从用于集成电路设计的缓冲器描述文件中提取对象路径中的至少一个缓冲器的缓冲器信息;根据缓冲器信息,从集成电路设计的芯片逻辑设计文件中提取对象路径的路径描述信息;以及根据路径描述信息,生成对象路径的路径信息。该路径信息的生成方法能够自动生成对象路径的路径信息,极大的节省了生成路径信息所需要的时间,从而有利于节省对集成电路设计验证的验证时间,提高验证效率。另外,本公开提供的对象路径的路径信息的生成方法易于复用。
47.图1a示出了本公开至少一实施例提供的一种集成电路设计中对象路径的路径信息的生成方法的流程图。
48.如图1a所示,该生成方法可以包括步骤s10~s30。
49.步骤s10:从用于集成电路设计的缓冲器描述文件中提取对象路径中的至少一个缓冲器的缓冲器信息。
50.步骤s20:根据缓冲器信息,从集成电路设计的芯片逻辑设计文件中提取对象路径的路径描述信息。
51.步骤s30:根据路径描述信息,生成对象路径的路径信息。
52.在本公开的实施例中所得到的对象路径的路径信息用于对集成电路设计中的对象路径进行验证。
53.对于步骤s10,对象路径包括至少一个缓冲器。
54.在本公开的一些实施例中,缓冲器描述文件可以是后端版图物理设计提供的。后
端版图物理设计会根据芯片布局布线和时序收敛检查的结果,提供一个包含缓冲器的基本信息的缓冲器描述文件。缓冲器描述文件例如可以包括两个电路模块之间的信号连线上需要插入的缓冲器的级数,连线两端的信号信息以及缓冲器所用的时钟信息等。例如,缓冲器描述文件的格式为.xml文件。
55.图1b示出了本公开至少一实施例提供的一种缓冲器描述文件的文件格式的示意图。
56.如图1b所示,该缓冲器描述文件的名称例如为repeater.xml。在该缓冲器描述文件中可以包括缓冲器的时钟信息(即,rep clk_wire=aaa)、缓冲器在顶层文件中的例化名(即,rep_inst=bbb)、缓冲器的级数(即,pd=x)、缓冲器中的输入信号的信号名(例如,wire name=ccc)以及缓冲器两端的电路模块信息(例如,block_inst=xxxx port_blkport=receive;block_inst=xxxx port_blkpot=transmit)等基本信息。需要理解的是“bbb”、“x”、“ccc”等仅为一种示意性表示。
57.可以理解的是,图1b仅示出了缓冲器描述文件中的部分信息,并非是缓冲器描述文件中的全部信息。例如,缓冲器描述文件中还可以包括缓冲器的输出信号的信号名。
58.在本公开的一些实施例中,缓冲器信息包括在对象路径中的至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称。
59.例如,从图1b所示的repeater.xml文件中提取对象路径中至少一个缓冲器的输入信号的名称为“ccc”、“ddd”和“eee”等。输入信号从缓冲器输出时的名称(即,缓冲器的输出信号的名称)可以是“输入信号的名称_rep”,例如“ccc_rep”、“ddd_rep”和“eee_rep”等。
60.对于步骤s20,芯片逻辑设计文件例如可以是包括寄存器转换级或寄存器传输级(register transfer level,rtl)文件。
61.对象路径的路径描述信息例如可以包括对象路径的起点和终点,起点所在的电路模块和终点所在的电路模块等。
62.图1c示出了本公开至少一个实施例提供的芯片逻辑设计文件的文件格式示意图。
63.如图1c所示,该芯片逻辑设计文件的名称例如为chip.v。在该文件中包括缓冲器在顶层文件中的例化名(以下简称“缓冲器的例化名”)“repeater_instance_name”、缓冲器的输入信号的名称“repeater_signal_name”等信息。
64.下面结合图1c和下文的图2来说明步骤s20的实施方式。
65.图2示出了本公开至少一个实施例提供的图1a中步骤s20的方法流程图。
66.如图2所示,该步骤s20可以包括步骤s21和步骤s22。
67.步骤s21:根据至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称,从集成电路设计的芯片逻辑设计文件中确定对象路径的起点和终点。
68.步骤s22:从集成电路设计的芯片逻辑设计文件中提取起点的起点信息和终点的终点信息。
69.在该实施例中,路径描述信息包括起点信息和终点信息。
70.对于步骤s21,例如从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输入信号的输入端口连接的第一线网信号,将第一线网信号连接的另一个端口作为对象路径的起点。
71.例如,根据从缓冲器描述文件中提取的缓冲器的例化名在chip.v中找到对应的缓
冲器,然后根据缓冲器的输入信号的名称找到与该缓冲器的输入信号的输入端口连接的第一线网信号。例如,缓冲器描述文件包括rep_inst=repeater_instance_name,即,缓冲器的例化名为repeater_instance_name,因此根据repeater_instance_name,在chip.v中找到对应的缓冲器。接下来,例如根据缓冲器repeater_instance_name中输入信号的名称(例如,输入信号的名称为repeater_signal_name),在chip.v中查找出与repeater_signal_name连接的第一线网信号(wire)的名称。第一线网信号表示硬件单元之间的物理连线。在硬件设计语言例如verilog中wire是常用的数据类型,由wire类型表示硬件单元之间的物理连线。例如,在图1c的示例中,第一线网信号的名称为chip_level_connet_signal。然后,根据第一线网信号的名称在chip.v中查找出第一线网信号连接的另一个端口。例如,在图1c的示例中,第一线网信号连接的另一个端口输出的信号的名称为a_signal_name,因此,输出a_signal_name信号的该另一个端口为对象路径的起点。
72.类似地,例如从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输出信号的输出端口连接的第二线网信号,将第二线网信号连接的另一个端口作为对象路径的所述终点。
73.该方法根据线网两端连接的信号名称能够方便快捷地确定对象路径的起点和终点。
74.对于步骤s22,例如,从集成电路设计的芯片逻辑设计文件中提取起点信号的名称和终点信号的名称;以及根据起点信号的名称确定起点所在的第一电路模块,根据终点信号的名称确定终点所在的第二电路模块。
75.例如,根据步骤s21中找到的起点,找到与该第一线网信号相连的起点的信号名a_signal_name以及根据该a_signal_name信号在chip.v中找到起点所在的电路模块,从而可获得与缓冲器的输入信号相连的起点的起点信息。起点信息例如可以包括起点信号的名称、起点所在的电路模块等完整路径信息。
76.类似地,根据步骤s22找到的终点,找到与该第二线网信号相连的终点的信号名,以及根据该终点的信号名在chip.v文件中找到该终点所在的电路模块,从而可获得与缓冲器的输出信号相连的终点的终点信息。终点信息例如可以包括终点信号的名称、终点信号所在的电路模块等完整路径信息。
77.对于步骤s30,在本公开的一些实施例中,该生成方法还可以包括从集成电路设计的缓冲器描述文件中获取至少一个缓冲器的时钟信号的时钟路径信息和至少一个缓冲器的级数,从而步骤s30可以是根据路径描述信息以及进一步根据时钟路径信息和至少一个缓冲器的级数,生成对象路径的路径信息。
78.例如,从集成电路设计的缓冲器描述文件中提取至少一个缓冲器的例化名和时钟信号的名称,并且根据例化名和时钟信号的名称,生成时钟信号的时钟路径信息。例如,时钟路径信息可以包括时钟信号的信号名。例如,在图1b的示例中,可以根据缓冲器的时钟信息(即,rep clk_wire=aaa)、缓冲器的例化名(即,rep_inst=bbb)、缓冲器的级数(即,pd=x)生成带有完整路径的时钟信号的信号名。
79.例如,在对象路径的数量为多个的情况下,可以生成对应关系表,通过对应关系表记录每个对象路径和路径信息的对应关系。
80.例如,针对每个对象路径,建立至少一个缓冲器的输入信号的名称、至少一个缓冲
器的输出信号的名称、时钟路径信息、至少一个缓冲器的级数以及路径描述信息之间的对应关系,得到多个对象路径的对象关系表,从而根据对应关系,生成对象路径的路径信息。
81.图3示出了本公开至少一个实施例提供的另一种生成方法的流程图。
82.如图3所示,该生成方法除包括步骤s10~步骤s30之外,还可以进一步地包括步骤s40和步骤s50。
83.步骤s40:从集成电路设计的缓冲器描述文件中提取与至少一个缓冲器的输入信号的输入端口连接的输入电路模块和与至少一个缓冲器的输出信号的输出端口连接的输出电路模块。
84.步骤s50:判断第一电路模块和第二电路模块是否分别与输入电路模块和所述输出电路模块一致。
85.在该实施例中步骤s30包括响应于第一电路模块和第二电路模块分别与输入电路模块和输出电路模块一致,根据路径描述信息,生成对象路径的路径信息。
86.该方法能够将从缓冲器描述文件中提取的与至少一个缓冲器的两端(即,输入端口和输出端口)连接的电路模块和从芯片逻辑设计文件中提取的至少一个缓冲器的两端连接的电路模块进行比对,从而对缓冲器描述文件和芯片逻辑设计文件进行校验,不仅能够提高生成的路径信息的准确性,还能够及时现缓冲器描述文件和芯片逻辑设计文件中的问题。
87.对于步骤s40,例如在图1b的示例中,可以根据缓冲器描述文件repeater.xml文件中的block_inst=xxxx port_blkport=receive和block_inst=xxxx port_blkpot=transmit来确定输入电路模块和输出电路模块。
88.对于步骤s50,判断根据block_inst=xxxx port_blkport=receive得到的输入电路模块的名称和第一电路模块的名称是否一致,并且判断根据block_inst=xxxx port_blkpot=transmit得到的输出电路模块的名称和第二电路模块的名称是否一致。
89.在步骤s31,若第一电路模块的名称和输入电路模块的名称一致,并且第二电路模块的名称和输出电路模块的名称一致,根据路径描述信息,生成对象路径的路径信息。
90.在本公开的一些实施例中,路径信息用于利用验证装置对对象路径进行验证,该生成方法还可以进一步包括按照验证装置识别的文件格式,生成包含路径信息的路径信息文件。
91.例如,验证装置能够识别.tcl的文件格式,则按照.tcl的文件格式将路径信息输出到.tcl文件中。
92.图4示出了本公开至少一个实施例提供的一种路径信息文件的文件格式示意图。
93.如图4所示,该路径信息文件的名称例如为add_cc.tcl。该add_cc.tcl文件例如可以包括路径的起点信息(例如,起点信号的名称)、终点信息(例如,终点信号的名称)、缓冲器的级数和缓冲器的时钟信息等。
94.例如,图4中的add_cc.tcl文件示出了对象路径a_to_b、c_to_d和e_to_f。例如,对于对象路径a_to_b,起点信号的名称为a,起点信号所在的电路模块为电路模块a,终点信号的名称为b,终点信号所在的电路模块为电路模块b,时钟信号为c.clk。
95.如图4所示,a_to_b路径和c_to_d路径各自的源模块均为电路模块a,目的模块均为电路模块be_to_f路径的源模块为电路模块d,目的模块为电路模块f。
96.如图4所示,在该路径信息文件中还可以包括对象路径的路径延迟信息。例如,path_dalay表示对象路径的路径延迟信息。例如,a_to_b路径和c_to_d路径延迟了1个时钟周期,e_to_f路径延迟了2个时钟周期。
97.图5示出了本公开至少一个实施例提供的另一种生成方法的流程图。
98.如图5所示,该生成方法可以包括步骤s501~步骤s506。
99.步骤s501:获取缓冲器描述文件。该缓冲器描述文件例如可以为repeater.xml。
100.步骤s502:获取集成电路设计的芯片逻辑设计文件。该芯片逻辑设计文件例如可以为chip.v。
101.步骤s503:从repeater.xml文件中提取出缓冲器的信号名(例如可以包括输入信号的名称和输出信号的名称)以及缓冲器两端的模块信息(即,图3中步骤s40中的输入电路模块和输出电路模块)。
102.步骤s504:利用模块信息和缓冲器的信号名,在chip.v中寻找到对象路径的第一电路模块(即,起点信号所在的电路模块)、起点信号的名称、第二电路模块(即,终点信号所在的电路模块),终点信号的名称。步骤s504类似于上文图2描述的方法。
103.例如,首先在repeater.xml文件中提取出repeater中的输入信号的信号名。该输入信号从repeater输出时的信号名例如为“输入信号名_rep”。
104.接下来,提取repeater.xml文件中缓冲器例化名和时钟信号的名称,使之组成带有完整路径的时钟路径信息,并通过哈希算法(hash)与缓冲器的输入信号的名称建立对应关系。
105.例如,根据缓冲器的例化名在chip.v中找到对应的缓冲器,并且根据缓冲器中输入信号的名字,在chip.v中查找出与缓冲器输入信号连接的顶层线网信号(即,图2中步骤s21中第一线网信号)的名字。然后根据顶层线网信号的名字,查找到该顶层线网信号的另一连接处(例如,端口)。根据该另一连接处,找到与该顶层线网信号相连的信号名(即,起点信号的名称)以及该信号名所在的电路模块(即,上文中的第一电路模块)。因此,可以获得带有完整路径信息并且与缓冲器的输入信号相连的起点信号的名称,并通过哈希算法与缓冲器的输入信号建立对应关系。
106.类似的,例如,可以找到带有完整路径信息且与缓冲器的输出信号相连的终点信号的名称,并通过哈希算法与缓冲器的输出信号建立对应关系。
107.接下来,例如可以将从repeater.xml文件中提取的repeater两端的模块信息,与从chip.v文件中找到的输入信号、输出信号分别所在的第一电路模块的名称和第二电路模块的名称进行比对,从而进行比对校验。该步骤类似于上文图3描述的步骤s40和步骤s50。
108.步骤s505:例如,提取repeater.xml文件中的缓冲器级数和时钟信息,并通过哈希算法与缓冲器的输入信号名建立对应关系。
109.步骤s506:响应于步骤s504中的比对校验通过,将所有的路径信息按照验证装置识别的格式输出到add_cc.tcl文件中。
110.图6a示出了本公开至少一个实施例提供的一种对集成电路设计中的对象路径进行验证的验证方法的流程图。
111.如图6a所示,该验证方法可以包括步骤s610~步骤s630。
112.步骤s610:根据生成方法获取对象路径的路径信息。
113.步骤s620:获取集成电路设计的黑盒文件,黑盒文件包括集成电路设计所包括的多个电路模块与对象路径的验证无关的电路模块的模块信息。
114.步骤s630:基于路径信息文件和黑盒文件,对对象路径进行验证生成验证结果。
115.在上述验证方法中,对于步骤s610,例如可以根据上文描述的任一实施例的生成方法生成路径信息,或者读取按照上文描述的任一实施例的生成方法得到的路径信息文件来获取路径信息。例如读取上文描述的add_cc.tcl文件来获取路径信息。
116.在上述验证方法中,对于步骤s620,黑盒文件可以是验证者自己手动编写的,或者也可以是验证装置自动生成的。
117.在本公开的一些实施例中,黑盒文件的生成方法可以包括:获取集成电路设计的层次结构信息,层次结构信息包括集成电路设计的结构信息以及模块信息。例如可以根据该芯片逻辑设计文件获得集成电路设计的层次结构信息。然后,使用层次结构信息确定集成电路设计中与对象路径相关的多个路径相关电路模块;以及根据集成电路设计中的路径无关电路模块的模块信息,生成黑盒文件,路径无关电路模块为集成电路设计中除多个路径相关电路模块之外的模块。黑盒文件的生成方法能够提高简化黑盒文件生成的繁琐步骤,提高黑盒文件的生成效率。
118.对于步骤s630,例如由验证工具读取路径信息文件和黑盒文件,并且根据路径信息文件和黑盒文件对对象路径进行验证生成验证结果。
119.图6a所示的验证方法能够降低获取路径信息的复杂度,节省了缓冲器连通性检查的验证时间,提高了集成电路设计的验证效率。并且该路径信息的生成方法可以同时获得到上万条路径的路径信息,从而验证方法能够同时对上万条路径进行检查,每条路径的检查结果都可以以报告的形式给出。另外,该验证方法便于收集翻转覆盖率,保证验证的完备性。
120.图6b示出了本公开至少一个实施例提供的另一种对集成电路设计中的对象路径进行验证的验证方法的流程图。
121.如图6b所示,该验证方法可以包括步骤s601~步骤s607。
122.步骤s601:获取集成电路设计的芯片逻辑设计文件(例如,rtl文件)。
123.步骤s602:获取本公开任一实施例提供的路径信息,或者本公开实施例提供的路径信息文件,例如,上文描述的add_cc.tcl文件。
124.步骤s603:获取黑盒文件。通过将集成电路设计中与待测路径无关的模块设置为黑盒,能够提升验证工具的分析效率。
125.步骤s604:获取验证工具运行的验证脚本(例如,run.tcl文件)。例如,该验证工具可以为连接检查工具,例如,run.tcl文件里面包含该连接检查工具的基本设置命令、读取黑盒文件的命令、读取设计文件的命令、读取描述路径文件的命令以及启动路径检查的命令。
126.步骤s605:运行run.tcl文件。
127.步骤s606:生成验证结果,该验证结果例如可以是结果文件vcf.log。
128.步骤s607:通过调试命令或者交互界面对验证失败的路径进行调试。例如,分析验证失败的原因,修改集成电路设计或者修改路径信息文件add_cc.tcl。
129.图7a示出了本公开至少一个实施例提供的一种集成电路设计中对象路径的路径
信息的生成装置700的示意框图。
130.例如,如图7a所示,该生成装置700包括第一提取单元710、第二提取单元720和生成单元730。
131.该集成电路设计中的对象路径包括至少一个缓冲器。
132.第一提取单元710配置为从用于所述集成电路设计的缓冲器描述文件中提取所述对象路径中的至少一个缓冲器的缓冲器信息。
133.第一提取单元710例如可以执行图1a描述的步骤s10。
134.第二提取单元720配置为根据所述缓冲器信息,从所述集成电路设计的芯片逻辑设计文件中提取所述对象路径的路径描述信息。
135.第二提取单元720例如可以执行图1a描述的步骤s20。
136.生成单元730配置为根据所述路径描述信息,生成所述对象路径的路径信息。
137.生成单元730例如可以执行图1a描述的步骤s30。
138.例如,在本公开一实施例提供的生成装置中,第二提取单元720可以包括确定子单元和第一提取子单元。确定子单元配置为根据至少一个缓冲器的输入信号的名称和至少一个缓冲器的输出信号的名称,从集成电路设计的芯片逻辑设计文件中确定对象路径的起点和终点。第一提取子单元配置为从集成电路设计的芯片逻辑设计文件中提取起点的起点信息和终点的终点信息,路径描述信息包括起点信息和终点信息。
139.例如,在本公开一实施例提供的生成装置中,确定子单元包括起点确定子单元和终点确定子单元。起点确定子单元配置为从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输入信号的输入端口连接的第一线网信号,将第一线网信号连接的另一个端口作为对象路径的起点。终点确定子单元配置为从集成电路设计的芯片逻辑设计文件中确定与至少一个缓冲器的输出信号的输出端口连接的第二线网信号,将第二线网信号连接的另一个端口作为对象路径的终点。
140.例如,在本公开一实施例提供的生成装置中,第一提取子单元包括名称提取子单元和模块提取子单元。名称提取子单元配置为从集成电路设计的芯片逻辑设计文件中提取起点的名称和终点的名称。模块提取子单元配置为根据起点的名称确定起点所在的第一电路模块,根据终点的名称确定终点所在的第二电路模块。
141.例如,在本公开一实施例提供的生成装置中,还包括第三提取单元和判断单元。第三提取单元配置为从集成电路设计的缓冲器描述文件中提取与至少一个缓冲器的输入信号的输入端口连接的输入电路模块和与至少一个缓冲器的输出信号的输出端口连接的输出电路模块。判断单元配置为判断第一电路模块和第二电路模块是否分别与输入电路模块和输出电路模块一致。生成单元包括第一生成子单元,配置为响应于第一电路模块和第二电路模块分别与输入电路模块和输出电路模块一致,根据路径描述信息,生成对象路径的路径信息。
142.例如,在本公开一实施例提供的生成装置中,还包括获取单元,配置为从集成电路设计的缓冲器描述文件中获取至少一个缓冲器的时钟信号的时钟路径信息和至少一个缓冲器的级数。生成单元包括第二生成子单元,配置为根据路径描述信息以及进一步根据时钟路径信息和至少一个缓冲器的级数,生成对象路径的路径信息。
143.例如,在本公开一实施例提供的生成装置中,获取单元包括第二提取子单元和时
钟信息生成子单元。第二提取子单元配置为从集成电路设计的缓冲器描述文件中提取至少一个缓冲器的例化名和时钟信号的名称。时钟信息生成子单元配置为根据例化名和时钟信号的名称,生成时钟信号的时钟路径信息。
144.例如,在本公开一实施例提供的生成装置中,第二生成子单元包括建立子单元和路径信息生成子单元。建立子单元配置为建立至少一个缓冲器的输入信号的名称、至少一个缓冲器的输出信号的名称、时钟路径信息、至少一个缓冲器的级数以及路径描述信息之间的对应关系。路径信息生成子单元配置为根据对应关系,生成对象路径的路径信息。
145.例如,在本公开一实施例提供的生成装置中,路径信息用于利用验证装置对对象路径进行验证,生成装置还包括文件生成单元,配置为按照验证装置识别的文件格式,生成包含路径信息的路径信息文件。
146.例如,第一提取单元710、第二提取单元720和生成单元730可以为硬件、软件、固件以及它们的任意可行的组合。例如,第一提取单元710、第二提取单元720和生成单元730可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
147.需要说明的是,本公开的实施例中,生成装置700的各个单元与前述的验证方法的各个步骤对应,关于生成装置700的具体功能可以参考关于生成方法的相关描述,此处不再赘述。图7a所示的生成装置700的组件和结构只是示例性的,而非限制性的,根据需要,该生成装置700还可以包括其他组件和结构。
148.图7b示出了本公开至少一个实施例提供的一种对集成电路设计中的对象路径进行验证的验证装置800的示意框图。
149.例如,如图7b所示,该验证装置800可以包括路径信息获取单元701、黑盒文件获取单元702和验证单元703。
150.路径信息获取单元701配置为根据本公开任一实施例提供的生成方法获取路径信息。
151.路径信息获取单元701例如可以执行图6a描述的步骤s610。
152.黑盒文件获取单元702配置为获取所述集成电路设计的黑盒文件,黑盒文件包括所述集成电路设计所包括的多个电路模块与所述对象路径的验证无关的电路模块的模块信息。
153.黑盒文件获取单元702例如可以执行图6a描述的步骤s620。
154.验证单元703配置为基于所述路径信息文件和所述黑盒文件,对所述对象路径进行验证生成验证结果。
155.验证单元703例如可以执行图6a描述的步骤s630。
156.例如,路径信息获取单元701、黑盒文件获取单元702和验证单元703可以为硬件、软件、固件以及它们的任意可行的组合。例如,路径信息获取单元701、黑盒文件获取单元702和验证单元703可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
157.需要说明的是,本公开的至少一个实施例中,验证装置800的各个单元与前述的验证方法的各个步骤对应,关于验证装置800的具体功能可以参考关于验证方法的相关描述,此处不再赘述。图7b所示的验证装置800的组件和结构只是示例性的,而非限制性的,根据
需要,该验证装置800还可以包括其他组件和结构。
158.本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序指令。一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现上述的生成方法或者验证方法的指令。该电子设备能够自动生成对象路径的路径信息,极大的节省了生成路径信息所需要的时间,从而有利于节省对集成电路设计验证的验证时间,提高验证效率。
159.图8为本公开一些实施例提供的一种电子设备的示意框图。如图8所示,该电子设备900包括处理器810和存储器820。存储器820用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器810用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器810运行时可以执行上文所述的总线装置的设计方法中的一个或多个步骤。存储器820和处理器810可以通过总线系统和/或其它形式的连接机构(未示出)互连。
160.例如,处理器810可以是中央处理单元(cpu)、图形处理单元(gpu)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(cpu)可以为x86或arm架构等。处理器810可以为通用处理器或专用处理器,可以控制电子设备900中的其它组件以执行期望的功能。
161.例如,存储器820可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器810可以运行一个或多个计算机程序模块,以实现电子设备900的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
162.需要说明的是,本公开的实施例中,电子设备900的具体功能和技术效果可以参考上文中关于总线装置的设计方法的描述,此处不再赘述。
163.图9为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备1000例如适于用来实施本公开实施例提供的总线装置的设计方法。电子设备1000可以是终端设备等。需要注意的是,图9示出的电子设备1000仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
164.如图9所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)910,其可以根据存储在只读存储器(rom)920中的程序或者从存储装置980加载到随机访问存储器(ram)930中的程序而执行各种适当的动作和处理。在ram 930中,还存储有电子设备1000操作所需的各种程序和数据。处理装置910、rom 920以及ram930通过总线940彼此相连。输入/输出(i/o)接口950也连接至总线940。
165.通常,以下装置可以连接至i/o接口950:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置960;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置970;包括例如磁带、硬盘等的存储装置980;以及通信装置990。通信装置990可以允许电子设备1000与其他电子设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备1000,但应理解的是,并不要求实施或具备所有示出的装置,电
子设备1000可以替代地实施或具备更多或更少的装置。
166.例如,根据本公开的实施例,上述生成方法和验证方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述总线装置的设计方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置990从网络上被下载和安装,或者从存储装置980安装,或者从rom 920安装。在该计算机程序被处理装置910执行时,可以实现本公开实施例提供的生成方法和验证方法中限定的功能。
167.本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的生成方法和验证方法。利用该计算机可读存储介质能够自动生成对象路径的路径信息,极大的节省了生成路径信息所需要的时间,从而有利于节省对集成电路设计验证的验证时间,提高验证效率。
168.图10为本公开一些实施例提供的一种存储介质的示意图。如图10所示,存储介质1100用于存储非暂时性计算机可读指令1010。例如,当非暂时性计算机可读指令1010由计算机执行时可以执行根据上文所述的黑盒文件的生成方法和验证方法中的一个或多个步骤。
169.例如,该存储介质1100可以应用于上述电子设备900中。例如,存储介质1100可以为图8所示的电子设备900中的存储器820。例如,关于存储介质1100的相关说明可以参考图8所示的电子设备900中的存储器820的相应描述,此处不再赘述。
170.有以下几点需要说明:
171.(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
172.(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
173.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1