一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集成电路的时钟结构的图形化显示方法及装置与流程

2023-02-02 01:47:20 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其是一种集成电路的时钟结构的图形化显示方法、装置、计算机可读存储介质及电子设备。


背景技术:

2.随着集成电路规模越来越大,集成电路设计中的时钟结构也越来越复杂。一个集成电路中可能存在多达几百上千个时钟,这些时钟包括主时钟和在主时钟的基础上进行分频后的时钟。设计者需要用设计约束文件(sdc,synopsys design constraints)详尽地描述每一个时钟的各个属性以及不同时钟之间的关系,而其他设计者也需要使用设计约束文件了解每一个时钟的属性。由于设计约束文件是纯文本文件,内容比较繁琐,因此设计者查阅设计约束文件的效率较低。
3.为了直观地查看设计约束文件中定义的时钟之间的关系,目前常用的方法是由设计者手工画出时钟结构图,并结合时钟约束文件进行查阅,需要设计者肉眼面对成百上千个时钟,工作流程比较繁琐、耗时,也容易造成错误。


技术实现要素:

4.为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种集成电路的时钟结构的图形化显示方法、装置、计算机可读存储介质及电子设备。
5.本公开的实施例提供了一种集成电路的时钟结构的图形化显示方法,该方法包括:获取集成电路的设计文件;从设计文件中提取时钟分频关系信息和时钟属性信息;基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图;基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息;基于第一时钟结构图和时钟描述信息生成图形化显示页面。
6.根据本公开实施例的另一个方面,提供了一种集成电路的时钟结构的图形化显示装置,该装置包括:获取模块,用于获取集成电路的设计文件;提取模块,用于从设计文件中提取时钟分频关系信息和时钟属性信息;第一确定模块,用于基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图;第二确定模块,用于基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息;生成模块,用于基于第一时钟结构图和时钟描述信息生成图形化显示页面。
7.根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于被处理器执行以实现执行上述集成电路的时钟结构的图形化显示方法。
8.根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述集成电路的时钟结构的图形化显示方法。
9.基于本公开上述实施例提供的集成电路的时钟结构的图形化显示方法、装置、计
算机可读存储介质及电子设备,通过获取集成电路的设计文件,从设计文件中提取时钟分频关系信息和时钟属性信息,然后基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图,以及基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息,最后基于第一时钟结构图和时钟描述信息生成图形化显示页面,从而实现了自动化地生成用于显示时钟结构图和时钟描述信息的图形化显示页面,用户可以通过时钟结构图和时钟描述信息查看每个时钟的详细信息,有助于使用户方便且准确地获知各个时钟之间的关系和时钟的详细信息,提高集成电路设计的效率。
10.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
11.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
12.图1是本公开所适用的系统图。
13.图2是本公开一示例性实施例提供的集成电路的时钟结构的图形化显示方法的流程示意图。
14.图3a是本公开的实施例的一个第一时钟结构图的示例性示意图。
15.图3b是本公开的实施例的一个时钟节点对应的描述信息的示例性示意图。
16.图4是本公开另一示例性实施例提供的集成电路的时钟结构的图形化显示方法的流程示意图。
17.图5是本公开另一示例性实施例提供的集成电路的时钟结构的图形化显示方法的流程示意图。
18.图6是本公开另一示例性实施例提供的集成电路的时钟结构的图形化显示方法的流程示意图。
19.图7a是本公开的实施例的一个级联关系图的示例性示意图。
20.图7b是本公开的实施例的一个第二时钟结构图的示例性示意图。
21.图8a是本公开的实施例的一个第一搜索界面的示例性示意图。
22.图8b是本公开的实施例的一个第二搜索界面的示例性示意图。
23.图9是本公开另一示例性实施例提供的集成电路的时钟结构的图形化显示方法的流程示意图。
24.图10是本公开一示例性实施例提供的集成电路的时钟结构的图形化显示装置的结构示意图。
25.图11是本公开另一示例性实施例提供的集成电路的时钟结构的图形化显示装置的结构示意图。
26.图12是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
27.下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅
仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
28.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
29.本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
30.还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
31.还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
32.另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
33.还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
34.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
35.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
36.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
37.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
38.本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
39.终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
40.申请概述
41.目前手工绘制时钟结构图的方法,需要设计者肉眼面对成百上千个时钟,工作流程比较繁琐、耗时,也容易造成错误。
42.目前也有自动生成时钟结构图的方法,但是生成的时钟结构图通常只包含了简单的逻辑结构图,其他信息较少。例如,在逻辑结构图上同时显示时钟名称、时钟定义路径等信息,当时钟关系非常复杂的时候,目前的方法自动生成的时钟结构图显示得比较杂乱,不便于设计者理清时钟关系,发现设计文件存在的问题。
43.示例性系统
44.图1示出了可以应用本公开的实施例的集成电路的时钟结构的图形化显示方法或集成电路的时钟结构的图形化显示装置的示例性系统架构100。
45.如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
46.用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如搜索类应用、网页浏览器应用等。
47.终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。
48.服务器103可以是提供各种服务的服务器,例如对终端设备101上的图形化显示页面提供支持的后台服务器。后台服务器可以对接收到的文本进行设计文件进行分析,得到包含时钟结构图和时钟描述信息的图形化显示页面并将该图形化显示页面发送至终端设备101。
49.需要说明的是,本公开的实施例所提供的集成电路的时钟结构的图形化显示方法可以由服务器103执行,也可以由终端设备101执行,相应地,集成电路的时钟结构的图形化显示装置可以设置于服务器103中,也可以设置于终端设备101中。
50.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在集成电路的设计文件不需要从远程获取的情况下,上述系统架构可以不包括网络和服务器,只包括终端设备。
51.示例性方法
52.图2是本公开一示例性实施例提供的集成电路的时钟结构的图形化显示方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图2所示,该方法包括如下步骤:
53.步骤201,获取集成电路的设计文件。
54.在本实施例中,电子设备可以从本地或从远程获取集成电路的设计文件。
55.其中,集成电路的设计文件可以是定义了集成电路的各个时钟之间的关系的文件。作为示例,设计文件可以包括但不限于以下至少一项:设计约束(sdc,synopsys design constraints)文件、时序库(lib)文件。
56.设计约束文件用于对集成电路的时序、面积、功耗等方面进行约束,通常为纯文本文件。时序库文件用于对部分时钟进行定义,其包括了部分时钟之间的分频关系信息。例如,时序库文件可以包括pma(physical media attachment,物理介质层)库文件,pma库文件包括部分时钟之间的分频关系信息,可以从pma库文件中提取这些时钟分频关系信息。
57.步骤202,从设计文件中提取时钟分频关系信息和时钟属性信息。
58.在本实施例中,电子设备可以从设计文件中提取时钟分频关系信息和时钟属性信息。
59.其中,时钟分频关系信息用于定义主时钟(master clock)以及在主时钟的基础上进行分频得到的分频时钟(generated clock)之间的分频关系。
60.作为示例,分频关系信息和时钟属性信息可以从sdc文件中定义的create_clock、create_generated_clock等命令中提取,这些信息包括主时钟和分频时钟的名称、定义点、周期、主时钟和分频时钟之间的频率关系信息(例如divided by)、时钟触发边沿信息(edges)、触发边沿偏移信息(edge_shift)等。其中,上述各种信息中的周期、频率关系信息、触发边沿信息、触发边沿偏移信息可以作为分频关系信息,其他信息可以作为时钟属性信息。
61.步骤203,基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图。
62.在本实施例中,电子设备可以基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图。
63.如图3a所示,其示出了第一时钟结构图的一部分,该图中的每个节点表示一个时钟,例如,节点phy0_maplla_ana_word_clk_i为主时钟,与主时钟通过连线连接的四个节点表示在该主时钟的基础上分频得到的分频时钟。
64.步骤204,基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息。
65.在本实施例中,电子设备可以基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息。
66.其中,每个时钟节点即表示一个时钟,对应的时钟描述信息用于通过可显示的文本的形式对时钟节点的特性进行描述。作为示例,对于一个时钟的时钟描述信息,该时钟描述信息可以包括一个文本框,该文本框中包含如下至少一项信息:时钟的名称、频率和周期、与其他时钟的分频关系信息(例如包括divided_by(定义时钟分频的倍率)、edges(选取主时钟的部分边沿来创建分频时钟)、edge_shift(选取主时钟的部分边沿,在此基础上加入偏移量,来创建分频时钟)等)、时钟节点的路径信息以及其他信息(例如sdc命令中的add(当前时钟不会覆盖同一路径下的其他时钟)、combinational(计算时钟树长时只会包含组合逻辑,但不会穿过时序逻辑)等语句定义的信息)。
67.如图3b所示,其示出了一个时钟节点对应的描述信息的示例性示意图,该时钟节点的描述信息包括时钟节点的名称(name)、时钟节点的属性(attribute)、时钟频率(frequency)、时钟周期(period)、路径信息(source)。
68.步骤205,基于第一时钟结构图和时钟描述信息生成图形化显示页面。
69.在本实施例中,电子设备可以基于第一时钟结构图和时钟描述信息生成图形化显示页面。
70.具体地,电子设备可以自动生成显示页面文件,例如html(超文本标记语言,hyper text markup language)文件。在显示页面文件中,可以调用预设的脚本程序(例如javascript脚本),将上述第一时钟结构图和时钟描述信息添加到图形化显示页面。
71.可选的,由于第一时钟结构图包括的时钟节点的数量众多,因此,对于每个主时
钟,其对应的多个分频时钟在显示时可以在用户的控制下折叠或展开,对应的描述信息可以默认为隐藏状态,当对某个显示的时钟节点进行查看操作(例如光标移动到该时钟节点上)时,弹出如图3b所示的包含时钟描述信息的文本框。
72.本公开的上述实施例提供的方法,通过获取集成电路的设计文件,从设计文件中提取时钟分频关系信息和时钟属性信息,然后基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图,以及基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息,最后基于第一时钟结构图和时钟描述信息生成图形化显示页面,从而实现了自动化地生成用于显示时钟结构图和时钟描述信息的图形化显示页面,用户可以通过时钟结构图和时钟描述信息查看每个时钟的详细信息,有助于使用户方便且准确地获知各个时钟之间的关系和时钟的详细信息,提高集成电路设计的效率。
73.在一些可选的实现方式中,设计文件包括设计约束文件和时序库文件。设计约束文件(sdc文件)用于对集成电路的时序、面积、功耗等方面进行约束,通常为纯文本文件。时序库文件中也定义了部分时钟之间的分频关系信息,例如,时序库文件可以包括pma库文件。
74.如图4所示,步骤202包括:
75.步骤2021,从时序库文件中确定时钟生成信息。
76.其中,时钟生成信息为在时序库文件中定义的用于生成时钟的信息。例如,在时序库中可以定义时钟生成命令,该命令可以包含生成的时钟的名称、对应的主时钟、分频的倍数等,这些信息即时钟生成信息。电子设备可以从时序库文件中查找到时钟生成命令,并从时钟生成命令中提取时钟生成信息。
77.步骤2022,基于时钟生成信息,在设计约束文件中生成对应的时钟分频关系信息。
78.具体地,在集成电路设计工具中,生成时钟时,通常将特定的时钟生成语句(例如create_clock)写入设计约束文件中,同时将生成的时钟的路径(hierarchy)写入设计约束文件中。但时序库文件中生成时钟的命令(例如generated_clock)与设计约束文件中生成时钟的命令不同,在集成电路设计工具中导入时序库文件时,无法生成与设计约束文件中生成时钟的命令相同的命令。因此,需要将时序库文件中定义的时钟的路径提取出,与设计约束文件中生成的时钟的路径相结合,从而确定时序库文件中创建的时钟与设计约束文件中创建的时钟的分频关系。
79.作为示例,在时序库文件中创建了时钟pin_b,同时限定了pin_b是pin_a的分频时钟,以及pin_b和pin_a的分频关系(例如pin_b是pin_a的二分频),则在集成电路设计文件中导入时序库文件后,若在pin_a作为主时钟的基础上创建分频时钟时,会自动创建分频时钟pin_b的路径(例如u_wrapper/pma/pin_b),因此,可以将pin_b的路径写入设计约束文件中,结合pin_a的路径(例如u_wrapper/pma/pin_a),确定pin_a和pin_b的分频关系信息。
80.步骤2023,从设计约束文件中提取时钟分频关系信息。
81.本实施例通过将时序库文件和设计约束文件结合确定时钟分频关系信息,可以实现自动化地提取全面的时钟分频关系信息,从而使生成的第一时钟结构图可以全面地反映集成电路的时钟结构。
82.在一些可选的实现方式中,如图5所示,步骤204包括:
style sheets)与javascript设计出节点图标。如图7b所示,其中的port、mux、icg、divider均为节点图标。
102.步骤208,基于级联关系信息集合中的每个级联关系信息,确定与每个节点图标连接的连线,得到第二时钟结构图。
103.具体地,如图7a所示,其示出了级联关系信息集合中的每个级联关系信息对应的时钟节点之间的级联关系图,该级联关系图是根据上述级联关系信息集合的示例生成的。图中的每条连线即表示连接的两个节点存在上下级关系。可选的,可以采用d3 javascript脚本,绘制如图7a所示的时钟节点级联关系图。
104.如图7b所示,其示出了一个第二时钟结构图的示例性示意图。通常,可以在图7a所示的级联关系图的基础上,将各个节点图标设置到对应的位置,并调整各个时钟节点与级联节点之间的连线,从而生成如图7b所示的第二时钟结构图。
105.步骤209,在图形化显示页面中显示第二时钟结构图。
106.可选的,图形化显示页面中可以包括结构图选择组件,用户可以使用该结构图选择组件,选择显示上述第一时钟结构图和/或第二时钟结构图。
107.本实施例通过生成表示时钟间的物理连接关系的第二时钟结构图,可以使用户方便地查看时钟间的物理连接关系,为用户设计集成电路提供直观参考,有助于提高集成电路设计的效率。
108.在一些可选的实现方式中,还可以基于设计文件中包括的特定类型的信息,例如时钟关系信息、时钟属性信息等,生成搜索界面,该搜索界面用于根据输入的搜索关键字,从上述特定类型的信息中,搜索出相应的信息。通常,搜索界面可以包括但不限于以下至少一项:用于搜索时钟群组关系信息的第一搜索界面,用于搜索目标时钟的目标属性信息的第二搜索界面。
109.即,该方法还包括:
110.从设计文件中确定时钟群组关系信息,并基于时钟群组关系信息,生成用于搜索时钟的群组关系的第一搜索界面;和/或,
111.基于时钟属性信息,生成用于搜索目标时钟的目标属性信息的第二搜索界面。
112.具体地,上述时钟群组关系信息可以从sdc文件中的set_clock_group、set_false_path等信息中提取。上述set_clock_group分为如下多个类别:physically_exclusive、logically_exclusive、asynchronous、asynchronous

allow_path等。
113.上述set_false_path用于设置异步时钟,格式大致为set_false_path

from[get_clocks a]

to[get_clocks b]和set_false_path

from[get_clocks b]

to[get_clocks a]等。上述各种信息是用户在设计集成电路时需要关注的,因此,可以在图形化显示页面中设置第一搜索界面,以使用户可以搜索到不同时钟群组之间的相关信息。
[0114]
作为示例,如图8a所示,其示出了第一搜索界面的示意图,其中,“group type”用于选择all、physically_exclusive、logically_exclusive、asynchronous、asynchronous

allow_path、false_path等群组类型。“group1”和“group2”中用于填写需要搜索的时钟。不填表示匹配所有时钟。
[0115]
若“group1”和“group2”中只填了一个clock a,另一个框留空,则会搜索到所有包含a的、且满足“group type”中指定的群组信息。
[0116]
若“group1”中填了clock a,“group2”中填了clock b,则会搜索到a与b之间的、且满足“group type”中指定的群组信息。但是不会搜索到a与b在同一群组中的相关信息,避免冗余信息干扰阅读(例如,存在sdc1:set_clock_group

async

group{ab}

group{c},sdc2:set_clock_group

async

group{a}

group{b},则只会显示sdc2)。
[0117]
sdc文件中还包括set_clock_uncertainty、set_clock_transition、set_clock_latency等信息,由于这几类信息与集成电路设计中的不同阶段是强相关的,即在设计的不同阶段很可能有不同的值。例如,不同的设计阶段可以包括但不限于以下至少一项:synthesis(综合),floorplan(布局规划),place(标准单元布局),cts(时钟树综合),route(布线)等。在这些阶段中的每个阶段,上述set_clock_uncertainty、set_clock_transition、set_clock_latency等信息设置为不同的值。为了避免各种信息之间相互干扰,这里可以采用设置第二搜索界面进行单独搜索的方式来搜索并显示特定的目标属性信息。
[0118]
如图8b所示,第二搜索界面包括下拉菜单和搜索框,从下拉菜单可以选择all、uncertainty、transition、latency等属性信息类型,搜索框可以输入时钟名称,搜索到的信息即输入的时钟名称对应的目标属性信息。
[0119]
本实施例通过在图形化显示页面设置第一搜索界面和第二搜索界面,可以实现由用户自由搜索任意时钟所属的时钟群组和任意时钟的目标属性信息,从而丰富了图形化显示页面的功能,用户可以更灵活地通过图形化显示页面查看更丰富的信息,有助于进一步提高集成电路设计的效率。
[0120]
在一些可选的实现方式中,该方法还包括:
[0121]
生成图形化显示页面的页面调整控制界面,其中,页面调整控制界面用于调整图形化显示页面的显示方式。
[0122]
作为示例,页面调整控制界面可以包括下拉菜单,用于选择只显示第一时钟结构图或第二时钟结构图,只显示第一搜索界面或第二搜索界面,组合显示不同类型的显示界面等。此外,还可以通过页面调整控制界面更高图形化显示页面的窗口大小、窗口比例、窗口内各界面的大小等。
[0123]
本实施例通过在图形化显示页面设置页面调整控制界面,可以使用户灵活调整图形化显示页面的显示方式,有助于用户灵活查看时钟相关的各种信息,从而提高集成电路设计的效率。
[0124]
在一些可选的实现方式中,如图9所示,该方法还包括:
[0125]
步骤210,执行设计约束检查操作,确定设计文件是否包括不符合预设设计约束规则的非规范信息。
[0126]
非规范信息可以包括设计文件本身的问题,例如,设计文件找不到或不可读,设计文件输出路径不可写等。非规范信息还可以包括设计文件内的语法问题(例如未指定时钟名称、主时钟未指定周期、分频时钟未指定分频关系等)、设计文件的完整性问题(例如生成分频时钟的命令中指定的主时钟找不到等)等。
[0127]
上述设计约束检查操作可以由用户手动触发执行,也可以自动执行,且可以在该集成电路的时钟结构的图形化显示方法的任意阶段执行,例如从设计文件提取时钟分频关系信息和时钟属性信息时,或生成图像化显示界面时等阶段。本公开的各实施例包括的各
步骤,通常是通过运行预设的脚本文件(例如python脚本)执行的,即脚本文件包括用于执行本公开的各实施例的代码。作为示例,若触发脚本文件运行的操作,则可以在脚本文件运行过程中执行设计约束检查操作,实时检查设计约束文件的非规范信息,若检查到存在非规范信息,则输出相应的提示信息。
[0128]
步骤211,响应于设计约束文件包括非规范信息,输出关于非规范信息的提示信息。
[0129]
作为示例,若时钟clock_a没有定义,则输出的提示信息可以包含clock_a的名称和路径,具体如下:
[0130]
clock not found:phy0/pma/clock_a。
[0131]
本实施例通过执行设计约束检测操作,确定设计文件的非规范信息,从而实现了在生成图形化显示页面时,确保设计文件符合设计约束规则,从而提高生成图形化显示页面的准确性。
[0132]
示例性装置
[0133]
图10是本公开一示例性实施例提供的集成电路的时钟结构的图形化显示装置的结构示意图。本实施例可应用在电子设备上,如图10所示,集成电路的时钟结构的图形化显示装置包括:获取模块1001,用于获取集成电路的设计文件;提取模块1002,用于从设计文件中提取时钟分频关系信息和时钟属性信息;第一确定模块1003,用于基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图;第二确定模块1004,用于基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息;第一生成模块1005,用于基于第一时钟结构图和时钟描述信息生成图形化显示页面。
[0134]
在本实施例中,获取模块1001可以从本地或从远程获取集成电路的设计文件。
[0135]
其中,集成电路的设计文件可以是定义了集成电路的各个时钟之间的关系的文件。作为示例,设计文件可以包括但不限于以下至少一项:设计约束(sdc,synopsys design constraints)文件、时序库(lib)文件。
[0136]
设计约束文件用于对集成电路的时序、面积、功耗等方面进行约束,通常为纯文本文件。时序库文件中也定义了部分时钟之间的分频关系信息,例如,时序库文件可以包括pma库文件。
[0137]
在本实施例中,提取模块1002可以从设计文件中提取时钟分频关系信息和时钟属性信息。
[0138]
其中,时钟分频关系信息用于定义主时钟(master clock)以及在主时钟的基础上进行分频得到的分频时钟(generated clock)之间的分频关系。
[0139]
作为示例,分频关系信息和时钟属性信息可以从sdc文件中定义的create_clock、create_generated_clock等命令中提取,这些信息包括主时钟和分频时钟的名称、定义点、周期、主时钟和分频时钟之间的频率关系信息(例如divided by)、时钟触发边沿信息(edges)、触发边沿偏移信息(edge_shift)等。其中,上述各种信息中的周期、频率关系信息、触发边沿信息、触发边沿偏移信息可以作为分频关系信息,其他信息可以作为时钟属性信息。
[0140]
在本实施例中,第一确定模块1003可以基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图。
[0141]
如图3a所示,其示出了第一时钟结构图的一部分,该图中的每个节点表示一个时钟,例如,节点phy0_maplla_ana_word_clk_i为主时钟,与其通过连线连接的四个节点表示在该主时钟的基础上分频得到的分频时钟。
[0142]
在本实施例中,第二确定模块1004可以基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息。
[0143]
其中,每个时钟节点即表示一个时钟,对应的时钟描述信息用于通过可显示的文本的形式对时钟节点的特性进行描述。作为示例,对于一个时钟的时钟描述信息,该时钟描述信息可以包括一个文本框,该文本框中包含如下至少一项信息:时钟的名称、频率和周期、与其他时钟的分频关系信息(例如包括divided_by、edges、edge_shift等)、时钟节点的路径信息以及其他信息(例如sdc命令中的add、combinational语句定义的信息)。
[0144]
如图3b所示,其示出了一个时钟节点对应的描述信息的示例性示意图,该时钟节点的描述信息包括时钟节点的名称(name)、时钟节点的属性(attribute)、时钟频率(frequency)、时钟周期(period)、路径信息(source)。
[0145]
在本实施例中,生成模块1005可以基于第一时钟结构图和时钟描述信息生成图形化显示页面。
[0146]
具体地,生成模块1005可以自动生成显示页面文件,例如html(超文本标记语言,hyper text markup language)文件。在显示页面文件中,可以调用预设的脚本程序(例如d3 javascript脚本),将上述第一时钟结构图和时钟描述信息添加到图形化显示页面。
[0147]
参照图11,图11是本公开另一示例性实施例提供的集成电路的时钟结构的图形化显示装置的结构示意图。
[0148]
在一些可选的实现方式中,设计文件包括设计约束文件和时序库文件;提取模块1002包括:第一确定单元10021,用于从时序库文件中确定时钟生成信息;生成单元10022,用于基于时钟生成信息,在设计约束文件中生成对应的时钟分频关系信息;提取单元10023,用于从设计约束文件中提取时钟分频关系信息。
[0149]
在一些可选的实现方式中,第二确定模块1004包括:第二确定单元10041,用于基于第一时钟结构图中每个时钟节点的时钟分频关系信息,确定每个时钟节点的时钟周期信息;第三确定单元10042,用于基于每个时钟节点的时钟周期信息,以及每个时钟节点的属性信息,确定每个节点的时钟描述信息。
[0150]
在一些可选的实现方式中,设计文件包括表示时钟间的级联关系的级联关系信息集合,以及级联关系信息集合中的每个级联关系信息包括级联节点类型信息;该装置还包括:第二提取模块1006,用于从设计文件中提取级联关系信息集合;第二生成模块1007,用于生成级联关系信息集合中的每个级联关系信息包括的级联节点类型信息对应的节点图标;第三确定模块1008,用于基于级联关系信息集合中的每个级联关系信息,确定与每个节点图标连接的连线,得到第二时钟结构图;显示模块1009,用于在图形化显示页面中显示第二时钟结构图。
[0151]
在一些可选的实现方式中,该装置还包括:第三生成模块1010,用于从设计文件中确定时钟群组关系信息,并基于时钟群组关系信息,生成用于搜索时钟的群组关系的第一搜索界面;和/或,第四生成模块1011,用于基于时钟属性信息,生成用于搜索目标时钟的目标属性信息的第二搜索界面。
[0152]
在一些可选的实现方式中,该装置还包括:第五生成模块1012,用于生成图形化显示页面的页面调整控制界面,其中,页面调整控制界面用于调整图形化显示页面的显示方式。
[0153]
在一些可选的实现方式中,该装置还包括:检查模块1013,用于执行设计约束检查操作,确定设计文件是否包括不符合预设设计约束规则的非规范信息;输出模块1014,用于响应于设计约束文件包括非规范信息,输出关于非规范信息的提示信息。
[0154]
本公开上述实施例提供的集成电路的时钟结构的图形化显示装置,通过获取集成电路的设计文件,从设计文件中提取时钟分频关系信息和时钟属性信息,然后基于时钟分频关系信息,确定表示多个时钟之间的分频关系的第一时钟结构图,以及基于时钟分频关系信息和时钟属性信息,确定时钟结构图中的每个时钟节点的时钟描述信息,最后基于第一时钟结构图和时钟描述信息生成图形化显示页面,从而实现了自动化地生成用于显示时钟结构图和时钟描述信息的图形化显示页面,用户可以通过时钟结构图和时钟描述信息查看每个时钟的详细信息,有助于使用户方便且准确地获知各个时钟之间的关系和时钟的详细信息,提高集成电路设计的效率。
[0155]
示例性电子设备
[0156]
下面,参考图12来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。
[0157]
图12示出了根据本公开实施例的电子设备的框图。
[0158]
如图12所示,电子设备1200包括一个或多个处理器1201和存储器1202。
[0159]
处理器1201可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1200中的其他组件以执行期望的功能。
[0160]
存储器1202可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1201可以运行程序指令,以实现上文的本公开的各个实施例的集成电路的时钟结构的图形化显示方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如设计文件等各种内容。
[0161]
在一个示例中,电子设备1200还可以包括:输入装置1203和输出装置1204,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0162]
例如,在该电子设备是终端设备101或服务器103时,该输入装置1203可以是鼠标、键盘等设备,用于输入设计文件、各种命令等。在该电子设备是单机设备时,该输入装置1203可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的设计文件、各种命令等。
[0163]
该输出装置1204可以向外部输出各种信息,包括图形化显示页面等。该输出装置1204可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
[0164]
当然,为了简化,图12中仅示出了该电子设备1200中与本公开有关的组件中的一
些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1200还可以包括任何其他适当的组件。
[0165]
示例性计算机程序产品和计算机可读存储介质
[0166]
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的集成电路的时钟结构的图形化显示方法中的步骤。
[0167]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c 等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0168]
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的集成电路的时钟结构的图形化显示方法中的步骤。
[0169]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0170]
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
[0171]
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0172]
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0173]
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序
仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0174]
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
[0175]
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0176]
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献