一种自动化查询电路代码负载方法、电子设备及存储介质与流程

文档序号:32347193发布日期:2022-11-26 11:45阅读:40来源:国知局
一种自动化查询电路代码负载方法、电子设备及存储介质与流程

1.本技术涉及数字电路设计技术领域,具体而言,涉及一种自动化查询电路代码负载方法、电子设备及存储介质。


背景技术:

2.数字电路工程师在设计、调试电路的时候,需要在电路代码查找电路的负载,从而方便地定位问题或者更好地了解电路的工作情况。
3.目前,工程师在查询电路负载的时候,都是通过手动地查看电路代码,这种方法一方面依赖电子设计自动化工具,另一方面需要花费大部分时间在阅读代码上。在大规模电路设计中,或者负载比较多的情况下,手动一个个地查找负载的方式效率低下,时间成本高,而且具有遗漏的情况。


技术实现要素:

4.本技术实施例的目的在于提供一种自动化查询电路代码负载方法、装置,电子设备及存储介质,以提高负载查询的效率,以及负载查询的准确率。
5.本技术是这样实现的:
6.第一方面,本技术实施例提供一种自动化查询电路代码负载方法,包括:获取待查询负载的负载驱动信号名称;其中,所述待查询负载为电路代码负载;遍历电路代码文件,从所述电路代码文件中查找出与所述负载驱动信号名称对应的负载信息;输出查询到的所述负载信息。
7.在本技术实施例中,通过获取待查询负载的负载驱动信号名称,然后遍历电路代码文件,从电路代码文件中查找出与负载驱动信号名称对应的负载信息,该负载信息即为待查询的负载。可见,通过该方式,能够基于待查询负载的负载驱动信号名称自动地在电路代码文件查询对应的负载,提高了负载查询的效率以及负载查询的准确率。
8.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述遍历电路代码文件,从所述电路代码文件中查找出与所述负载驱动信号名称对应的负载信息,包括:在所述电路代码文件中进行逐行遍历,当查找到所述负载驱动信号名称时,判断所述负载驱动信号名称所在行是否存在特定运算符;其中,所述特定运算符用于表征所述电路代码文件中的电路代码负载与负载驱动信号的对应关系;若存在,则确定出所述负载信息;所述负载信息为所述电路代码负载名称所在行对应的电路代码负载名称。
9.在本技术实施例中,通过在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,判断负载驱动信号名称所在行是否存在特定运算符,通过该方式,可以在电路代码中查询负载驱动信号是否存在赋值操作,如果存在,则直接输出与负载驱动信号名称对应的负载名称,该信息即为待查询的负载,可见,通过该方式,能够有效地检测出待查询的负载。
10.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述特定运算符
包括等号、大于等于号或小于等于号。
11.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述遍历电路代码文件,从所述电路代码文件中查找出与所述负载驱动信号名称对应的负载信息,包括:执行第一查找脚本,以在所述电路代码文件中进行逐行遍历,当查找到所述负载驱动信号名称时,判断所述负载驱动信号名称所在行是否存在特定运算符;其中,所述特定运算符用于表征所述电路代码文件中的电路代码负载与负载驱动信号的对应关系;若存在,则确定出所述负载信息;所述负载信息为所述电路代码负载名称所在行对应的电路代码负载名称。
12.在本技术实施例中,通过配置的第一查找脚本能够自动化地查找出电路代码负载名称。
13.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述遍历电路代码文件,从所述电路代码文件中查找出与所述负载驱动信号名称对应的负载信息,包括:在所述电路代码文件中进行逐行遍历,当查找到所述负载驱动信号名称时,基于预设的匹配规则进行匹配,以确定出所述负载信息;其中,所述匹配规则用于确定所述负载驱动信号名称对应的负载驱动信号是否作为模块的输入;所述负载信息为所述负载驱动信号名称所在的模块。
14.在本技术实施例中,通过在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,基于预设的匹配规则进行匹配,如果匹配到,则说明该负载驱动信号作为某一个模块的输入,该负载驱动信号的负载在该模块的内部,此时,确定出的负载信息即为负载驱动信号名称所在的模块。可见,通过该方式,能够确定出待查询的负载所在模块,以便于后续基于该模块确定出待查询的负载。
15.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述匹配规则为采用正则表达式执行的规则;所述正则表达式定义为查找的负载驱动信号名称之前的字符前出现点号。
16.在本技术实施例中,通过正则表达式能够准确地定义匹配规则,进而提高查询的准确性。
17.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述遍历电路代码文件,从所述电路代码文件中查找出与所述负载驱动信号名称对应的负载信息,包括:执行第二查找脚本,以在所述电路代码文件中进行逐行遍历,当查找到所述负载驱动信号名称时,基于预设的匹配规则进行匹配,以确定出所述负载信息;其中,所述匹配规则用于确定所述负载驱动信号名称对应的负载驱动信号是否作为模块的输入;所述负载信息为所述负载驱动信号名称所在的模块。
18.在本技术实施例中,通过配置的第二查找脚本能够自动化地查找出负载所在的模块。
19.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述第一查找脚本以及所述第二查找脚本为基于python(一种计算机编程语言)语言进行编写的脚本。
20.在本技术实施例中,通过python语言编写第一查找脚本以及第二查找脚本,简单高效。
21.结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述输出查询到的所述负载信息之后,所述方法还包括:在所述电路代码文件中对所述负载信息进行标
记,以使所述负载信息在所述电路代码文件中突出显示。
22.在本技术实施例中,在输出查询到的负载信息之后,在电路代码文件中对负载信息进行标记,以使得后续工程师能够快速地定位问题以及了解电路的工作情况。
23.第二方面,本技术实施例提供一种电子设备,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中的程序,执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
24.第三方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
附图说明
25.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
26.图1为本技术实施例提供的一种电子设备的模块框图。
27.图2为本技术实施例提供的一种自动化查询电路代码负载方法的步骤流程图。
28.图3为本技术实施例提供的一种自动化查询电路代码负载的流程图。
29.图4为本技术实施例提供的又一种自动化查询电路代码负载的流程图。
30.图标:100-电子设备;110-处理器;120-存储器。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
32.请参阅图1,本技术实施例提供的一种应用自动化查询电路代码负载方法的电子设备100的示意性结构框图。本技术实施例中,电子设备100可以是终端或者服务器,终端可以是,但不限于个人计算机(personal computer,pc)、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)、移动上网设备(mobile internet device,mid)等。服务器可以是但不限于网络服务器、数据库服务器、云服务器或由多个子服务器构成的服务器集成等。当然,上述列举的设备仅用于便于理解本技术实施例,其不应作为对本实施例的限定。
33.在结构上,电子设备100可以包括处理器110和存储器120。
34.处理器110与存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
35.其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是中央处理器(central processing unit,cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处
理器等。
36.存储器120可以是,但不限于,随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦可编程序只读存储器(erasable programmable read-only memory,eprom),以及电可擦编程只读存储器(electric erasable programmable read-only memory,eeprom)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
37.需要说明的是,图1所示的结构仅为示意,本技术实施例提供的电子设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
38.请参阅图2,图2为本技术实施例提供的自动化查询电路代码负载方法的步骤流程图,该方法应用于图1所示的电子设备100。需要说明的是,本技术实施例提供的自动化查询电路代码负载方法不以图2及以下所示的顺序为限制,该方法包括:步骤s101-步骤s103。
39.步骤s101:获取待查询负载的负载驱动信号名称。
40.首先,用户可以输入待查询负载的负载驱动信号名称,以使电子设备获取到待查询负载的负载驱动信号名称。
41.示例性的,负载驱动信号名称包括driver、driver&xxxx等等,本技术不作限定。
42.需要说明的是,本技术所指的负载为电路代码负载,即,电路代码文件中的负载,该负载被定义为在数字ic(integrated circuit,集成电路)前端设计的过程中,抽象为文本文件中表达式的一部分。上述的负载驱动信号为用于驱动该负载的信号,其可以对应实际电路中的驱动模块所产生的驱动信号。
43.步骤s102:遍历电路代码文件,从电路代码文件中查找出与负载驱动信号名称对应的负载信息。
44.电子设备在获取到待查询负载的负载驱动信号名称后,调取电路代码文件,并通过遍历电路代码文件,从电路代码文件中查找出与负载驱动信号名称对应的负载信息。
45.作为一种实施方式,上述查询的过程可以具体包括:在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,判断负载驱动信号名称所在行是否存在特定运算符;若存在,则确定出负载信息;负载信息为电路代码负载名称所在行对应的电路代码负载名称。
46.其中,特定运算符用于表征电路代码文件中的电路代码负载与负载驱动信号的对应关系。于本技术实施例中,特定运算符可以是但不限于等号、大于等于号或小于等于号。
47.具体的,上述的查询过程可以具体为:在电路代码文件查找到负载驱动信号名称时,判断负载驱动信号名称所在行中的负载驱动信号名称左侧是否存在等号;若存在,则确定出负载信息;其中,负载信息为等号左侧的负载名称。
48.示例性的,电路代码文件中可以包括如下电路代码:
49.always@(*)begin
50.load=driver;
51.end
52.assign load=driver;
53.在上述电路代码中,driver表示负载驱动信号名称,load表示负载名称,即,确定
出的负载信息。
54.需要说明的是,本技术实施例中,通过在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,判断负载驱动信号名称所在行是否存在等号,通过该方式,可以在电路代码中查询负载驱动信号是否存在赋值操作,如果存在,则直接输出与负载驱动信号名称对应的负载名称,该信息即为待查询的负载,可见通过该方式,能够有效地检测出待查询的负载。
55.此外,需要说明的是,只要在检测到该行中在负载驱动信号名称左侧存在等号,则将等号左侧的负载名称确定为负载信息。当然,在其他数字电路设计中的代码中,也可以是将负载驱动信号定义为特定运算符的左侧,而电路代码负载定义为特定运算符的右侧,进而使得当该行中在负载驱动信号名称右侧存在等号,则将等号右侧的负载名称确定为负载信息。
56.作为又一种实施方式,上述查询的过程可以具体包括:在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,基于预设的匹配规则进行匹配,以确定出所述负载信息;其中,匹配规则用于确定负载驱动信号名称对应的负载驱动信号是否作为模块的输入;负载信息为负载驱动信号名称所在的模块。
57.示例性的,电路代码文件中可以包括如下电路代码:
58.sub_module u_rst(
59..xxx(abc),
60..xxx(driver),
61.);
62.在上述电路代码中,driver表示负载驱动信号名称,sub_module表示模块名称,即,确定出的负载信息。
63.一实施例中,匹配规则为采用正则表达式执行的规则。通过正则表达式能够准确地定义匹配规则,进而提高查询的准确性。
64.于本技术实施例中,正则表达式定义为查找的负载驱动信号名称之前的字符前出现点号。
65.以上述电路代码为例,正则表达式可以为.xxx(y);其中,y表示任意的负载驱动信号名称,x表示任意的字符。
66.在其他实施例中,也可以根据电路代码文件的不同配置不同的正则表达式。此外,在其他实施例中,匹配规则也可以是直接检测负载驱动信号名称是否出现点号,对此,本技术均不作限定。
67.综上,在本技术实施例中,通过在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,基于预设的匹配规则进行匹配,如果匹配到,则说明该负载驱动信号作为某一个模块的输入,该负载驱动信号的负载在该模块的内部,此时,确定出的负载信息即为负载驱动信号名称所在的模块,如果未匹配到,则说明该负载驱动信号并不是某一个模块的输入。可见,通过该方式,能够确定出待查询的负载所在模块,以便于后续基于该模块确定出待查询的负载。
68.此外,上述的查询过程可以基于脚本实现,具体的,上述查询的过程可以具体包括:执行第一查找脚本,以在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称
时,判断负载驱动信号名称所在行是否存在特定运算符;其中,特定运算符用于表征电路代码文件中的电路代码负载与负载驱动信号的对应关系;若存在,则确定出负载信息;负载信息为电路代码负载名称所在行对应的电路代码负载名称。
69.上述的查询过程还可以包括:执行第二查找脚本,以在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,基于预设的匹配规则进行匹配,以确定出负载信息;其中,匹配规则用于确定负载驱动信号名称对应的负载驱动信号是否作为模块的输入;负载信息为负载驱动信号名称所在的模块。
70.可见,在本技术实施例中,通过配置的第一查找脚本以及第二查找脚本能够自动化地查找出负载信息。
71.需要说明的是,上述第一查找脚本以及第二查找脚本可以被配置为同时执行,也可以是先执行第一查找脚本,然后,再执行第二查找脚本,或者先执行第二查找脚本,再执行第一查找脚本,对此,本技术不作限定。
72.一实施例中,第一查找脚本以及第二查找脚本为基于python语言进行编写的脚本。通过python语言编写第一查找脚本以及第二查找脚本,简单高效。
73.在其他实施例中,第一查找脚本以及第二查找脚本还可以为基于shell编写的脚本,本技术不作限定。
74.步骤s103:输出查询到的负载信息。
75.在查找到负载信息后,输出查询到的负载信息,比如,当通过前述等号判断方式确定出负载信息后,则输出的为负载名称,如load。而当通过匹配规则的方式确定出负载信息后,则输出的为模块名称,如sub_module。
76.示例性的,请参阅图3,电子设备在获取到待查询负载的负载驱动信号名称后,执行第一查找脚本,以在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,判断负载驱动信号名称所在行是否存在特定运算符;若存在,则确定出负载信息;负载信息为所述电路代码负载名称所在行对应的电路代码负载名称,即最终输出电路代码负载名称。
77.示例性的,请参阅图4,电子设备在获取到待查询负载的负载驱动信号名称后,执行第二查找脚本,以在电路代码文件中进行逐行遍历,当查找到负载驱动信号名称时,基于预设的匹配规则进行匹配,以确定出负载信息;负载信息为负载驱动信号名称所在的模块,即最终输出的为模块名称。
78.此外,需要说明的是,上述步骤s101~步骤s103也可以通过脚本实现,比如通过python语言来编写脚本来实现上述步骤s101~步骤s103的步骤,本技术对此也不作限定。
79.综上,在本技术实施例中,通过获取待查询负载的负载驱动信号名称,然后遍历电路代码文件,从电路代码文件中查找出与负载驱动信号名称对应的负载信息,该负载信息即为待查询的负载。可见,通过该方式,能够基于待查询负载的负载驱动信号名称自动地在电路代码文件查询对应的负载,提高了负载查询的效率以及负载查询的准确率。
80.可选地,在步骤s103输出查询到的负载信息之后,该方法还包括:在电路代码文件中对负载信息进行标记,以使负载信息在所述电路代码文件中突出显示。
81.其中,标记的方式可以是将电路代码文件中的负载信息通过不同的颜色显示,或者在负载信息下面加下划线,本技术对于标记的方式也不作限定。
82.在本技术实施例中,在输出查询到的负载信息之后,在电路代码文件中对负载信
息进行标记,以使得后续工程师能够快速地定位问题以及了解电路的工作情况。
83.基于同一发明构思,本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
84.该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
85.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
86.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
87.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
88.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
89.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1