1.本发明涉及电路转译领域,特别是涉及一种门级电路的转译方法、系统、存储介质及设备。
背景技术:2.在高端数字ic产业中,门级电路仿真是关键技术。而用于门级电路仿真的原文件是门级网表文件,门级网表文件是rtl文件经过综合之后生成的表征底层电路连接关系的标记语法的文本文件,在门级电路仿真过程中,无法直接对门级网表文件进行仿真,需要先将门级网表文件转译成带有电路信息的有向图文件。
3.目前的门级电路转译器(如开源综合工具yosys和icarus verilog)通用性差,在语义描述转换过程都是采取词法、语法分析并将词法、语法分析的结构内容存储在抽象语法树中,使得第三方无法简便通用的对转译后的电路信息进行提取,如果第三方要提取转译后的电路信息就需要对其内在软件架构进行深入研究,使得转译后的内容难以进行二次开发,因此,急需提供一种简便通用的门级电路转译方法来解决这些问题。
技术实现要素:4.本发明的目的在于提出一种门级电路的转译方法、系统、存储介质及设备,以解决上述背景技术中提到的问题。
5.本发明提出一种门级电路的转译方法,所述方法包括:根据目标门级网表文件与工艺库文件生成vvp文件,所述目标门级网表为用于描述各电路器件之间连接关系的门级语义的文本文件,所述工艺库文件中包含了组成各电路器件的逻辑元件,所述vvp文件为用于描述各节点的逻辑元件之间连接关系的门级语义的文本文件;从命令行输入vvp文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量;获取预设逻辑关键字表,根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息;根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息;对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件。
6.根据本发明提出的门级电路的转译方法,具有以下有益效果:本发明先根据目标门级网表文件与工艺库文件生成vvp文件,生成的vvp文件不仅包含了目标门级网表的数据结构还开放了第三方接口接入通用逻辑结构,使得vvp文件能够以通用的文件结构形式输出;从命令行输入vvp文件名及所述目标门级网表文件的顶层
模块名并将所述顶层模块名设置为全局变量,以为关键门级信息的提取做准备;再根据所述全局变量及预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析以便能够快速的提取与各所述逻辑关键字对应的节点的门级关键信息;根据与各所述逻辑关键字对应的重定义规则对与各节点的门级关键信息进行门级语义的重定义,不仅能够有针对性的解决一些电路语义描述不足的问题,以更好的满足实际仿真需求,且根据对应的重定义规则进行重定义,还增强了重定义过程的规则性及通用性,方便重定义过程的程序化执行;对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件,得到的有向图文件不仅与门级电路在拓扑结构及电路语义上等价,还能便于二次开发,填补了目前eda行业缺乏通用数字电路前端转译的不足。
7.另外,根据本发明提供的门级电路的转译方法,还可以具有如下附加的技术特征:进一步地,所述根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息的步骤具体包括:从所述vvp文件的文件头开始依次读取所述vvp文件中的每一行信息并查询行信息中是否存在顶层模块;若不存在顶层模块,则判断所述vvp文件中的行信息中是否存在组合逻辑udp关键字或时序逻辑udp关键字;若存在所述组合逻辑udp关键字或所述时序逻辑udp关键字,则对组合逻辑udp或时序逻辑udp的相关段进行解析,并对与所述组合逻辑udp关键字或所述时序逻辑udp关键字对应的节点的真值表及门级关键信息进行提取及存储至第一全局字典中。
8.进一步地,所述从所述vvp文件的文件头开始依次读取所述vvp文件中的每一行信息并查询行信息中是否存在顶层模块的步骤后还包括:若存在顶层模块,则对所述vvp文件中顶层模块后面的所有行信息进行解析并根据所述预设逻辑关键字表中的逻辑关键字对与所述逻辑关键字对应的门级关键信息进行提取及存储至全局列表中,所述预设逻辑关键字表中的udp逻辑关键字为除组合逻辑udp关键字及时序逻辑udp关键字以外的udp逻辑关键字。
9.进一步地,所述根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息的步骤具体包括:创建第二全局字典;对所述全局列表进行遍历并依序获取所述全局列表中各节点的门级关键信息的字符串;对各节点的门级关键信息的字符串进行解析并提取各节点的门级关键信息的关键字;将各节点的门级关键信息的关键字对照所述预设逻辑关键字表进行匹配查询以在所述预设逻辑关键字表中找到对应的逻辑关键字并根据所述逻辑关键字确定各节点的类型及各节点的门级关键信息的重定义规则;根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典的键及值。
10.进一步地,所述根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典的键及值的步骤具体包括:若所述节点为基本逻辑门节点,则按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典的键及值进行设定。
11.进一步地,所述按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典的键及值进行设定的步骤具体包括:从所述节点的门级关键信息中提取节点id、节点的类型名、节点的输入id、节点的输出id和节点的输出位宽;将所述节点id存入至所述第二全局字典的键中;将所述节点的类型名存入至所述第二全局字典的值的类型列表中;将所述节点的输入id和常数值依次存入至所述第二全局字典的值的四输入列表中;将所述节点的输出id存入至所述第二全局字典的值的输出列表中;将所述节点的输出位宽存入至所述第二全局字典的值的位宽列表中。
12.进一步地,所述对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件的步骤包括:对所述第二全局字典进行遍历并将所述第二全局字典中的信息进行json格式的转换以得到第二有向图文件;对所述第一全局字典进行遍历并将所述第一全局字典中的信息进行json格式的转换以得到第一有向图文件。
13.本发明还提出一种门级电路的转译系统,包括:生成模块:用于根据目标门级网表文件与工艺库文件生成vvp文件,所述目标门级网表为用于描述各电路器件之间连接关系的门级语义的文本文件,所述工艺库文件中包含了组成各电路器件的逻辑元件,所述vvp文件为用于描述各节点的逻辑元件之间连接关系的门级语义的文本文件;设置模块:用于从命令行输入vvp文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量;提取模块:用于获取预设逻辑关键字表,根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息;定义模块:用于根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息;转译模块:用于对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件。
14.本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的门级电路的转译方法。
15.本发明还提出一种门级电路的转译设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的门级电路的
转译方法。
16.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
17.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明第一实施例门级电路的转译方法的流程图;图2为本发明第二实施例门级电路的转译系统的系统框图;图3为本发明第三实施例门级电路的转译设备的结构示意图。
具体实施方式
18.为使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
19.实施例1如图1所示,本发明的第一实施例提供一种门级电路的转译方法,包括步骤s101~s105。
20.s101,根据目标门级网表文件与工艺库文件生成vvp文件,所述目标门级网表为用于描述各电路器件之间连接关系的门级语义的文本文件,所述工艺库文件中包含了组成各电路器件的逻辑元件,所述vvp文件为用于描述各节点的逻辑元件之间连接关系的门级语义的文本文件。
21.需要说明的是,本发明实施例中的vvp文件可以通过icarus verilog仿真器生成,icarus verilog仿真器在仿真电路文件时便会产生中间文件vvp文件,vvp文件的格式为test.vvp。
22.在根据目标门级网表文件与工艺库文件生成vvp文件的步骤前需要先选取目标门级网表文件及工艺库文件,选取的目标门级网表文件的格式可以为:test.v(.v后缀为verilog文件),选取的工艺库文件的格式可以为:smic_13.v。在使用icarus verilog仿真器生成vvp文件时,输入如下命令“iverilog
ꢀ‑
o test.vvptest.v smic_13.v”便可以生成vvp文件test.vvp。
23.s102,从命令行输入vvp文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量。
24.其中,顶层模块名如:top_module。
25.s103,获取预设逻辑关键字表,根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息。
26.需要说明的是,工艺库特定的工艺器件无非是由以下几种基本逻辑器件组成:与(and)或(or)非(not)、用户自定义原语udp、路径延时及器件延时、延时单位等,因此只需要
在vvp文件当中依序查找并提取这些逻辑器件的关键门级信息(门级语言)即可,而逻辑器件在vvp文件中由相应的逻辑关键字进行体现,便可借由这些逻辑关键字来查找提取关键门级信息,本发明实施例根据需要涉及到的逻辑关键字预先制作一个逻辑关键字表,再对应预设逻辑关键字表在vvp文件中进行对应查找提取信息,下表1为预设逻辑关键字表。
27.表1进一步的,所述根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息的步骤具体包括:从所述vvp文件的文件头开始依次读取所述vvp文件中的每一行信息并查询行信息中是否存在顶层模块;若不存在顶层模块,则判断所述vvp文件中的行信息中是否存在组合逻辑udp关键字或时序逻辑udp关键字;若存在所述组合逻辑udp关键字或所述时序逻辑udp关键字,则对组合逻辑udp或时序逻辑udp的相关段进行解析,并对与所述组合逻辑udp关键字或所述时序逻辑udp关键字对应的节点的真值表及门级关键信息进行提取及存储至第一全局字典udp_definitions中。
28.具体的,若出现.udp关键字,则从出现.udp关键字的行(开始行)开始进行解析,并解析至分号结尾行(结束行)。若解析出的节点信息中包含具体的关键字.udp/comb(即组合逻辑udp关键字)或.udp/sequ(即时序逻辑udp关键字),则将解析出的节点信息对应存储至第一全局字典udp_definitions中,解析出的节点信息还包含udp节点的实例名(即节点id,如udp_udp_mux2)、udp节点的类型名(如udp_mux2)、udp节点的初始值(0表示信号0,1表示信号1,2表示信号x,3表示无信号值)。
29.需要说明的是,由于udp节点定义多种多样,其逻辑真值表较为复杂难以进行处理,用户自定义udp门仿真实现难度大,无法保证逻辑正确,因此,大部分现有仿真器无法支持门级仿真中出现用户自定义原语的情况。而本发明实施例创建的第一全局字典udp_definitions能够存储用户自定义节点的仿真逻辑。
30.仿真逻辑是保证后续仿真正确性的关键,由于门级网表多为工艺库器件连接而成,而不同的工艺库虽然器件不同但是底层实现逻辑都是基于主要逻辑门(例如与门、或门、异或门)等及一些用户自定义原语(udp)门。主要逻辑门可以查阅相关数字电路行业标准即可得出,没必要放入转译结果文件中,这样可以节省转译结果文件的存储压力。
31.进一步的,所述从所述vvp文件的文件头开始依次读取所述vvp文件中的每一行信息并查询行信息中是否存在顶层模块的步骤后还包括:若存在顶层模块,则对所述vvp文件中顶层模块后面的所有行信息进行解析并根据所述预设逻辑关键字表中的其它逻辑关键字对与所述其它逻辑关键字对应的门级关键
信息进行提取及存储至全局列表gate_statements中,所述其它逻辑关键字为所述预设逻辑关键字表中除组合逻辑udp关键字及时序逻辑udp关键字以外的逻辑关键字。
32.s104,根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息。
33.进一步的,所述根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息的步骤具体包括:创建第二全局字典gate_dict;对所述全局列表gate_statements进行遍历并依序获取所述全局列表gate_statements中各节点的门级关键信息的字符串;对各节点的门级关键信息的字符串进行解析并提取各节点的门级关键信息的关键字;将各节点的门级关键信息的关键字对照所述预设逻辑关键字表进行匹配查询以在所述预设逻辑关键字表中找到对应的逻辑关键字并根据所述逻辑关键字确定各节点的类型及各节点的门级关键信息的重定义规则;根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典gate_dict的键及值。
34.进一步的,所述根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典的键及值的步骤具体包括:若所述节点为基本逻辑门节点,则按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典gate_dict的键及值进行设定。
35.进一步的,所述按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典gate_dict的键及值进行设定的步骤具体包括:从所述节点的门级关键信息中提取节点id、节点的类型名、节点的输入id、节点的输出id和节点的输出位宽;将所述节点id存入至所述第二全局字典gate_dict的键中;将所述节点的类型名存入至所述第二全局字典gate_dict的值的类型列表中;将所述节点的输入id和常数值依次存入至所述第二全局字典gate_dict的值的四输入列表中;将所述节点的输出id存入至所述第二全局字典gate_dict的值的输出列表中;将所述节点的输出位宽存入至所述第二全局字典gate_dict的值的位宽列表中。
36.需要说明的是,所述vvp文件包含的节点类型至少有:信号类型节点、逻辑仿真节点和门级信号连接节点,其中,所述逻辑仿真节点又具体包含基本逻辑门节点与udp节点(用户自定义节点)。
37.所述基本逻辑门节点是数字电路中的常用逻辑门,所有类型如表2所示,一般基本逻辑门节点多为二输入一输出(如与、或、非门),少部分基本逻辑门节点为三输入一输出(如cmos),而在门级仿真过程中可能需要加入一些其它的功能,如在与门的门级仿真过程中需要加入调试接口和逻辑锁功能,而二输入的与门结构便无法满足仿真要求,因此vvp文件对于一些基本逻辑门节点存在门级电路语义描述不足的问题,需要对基本逻辑门节点的
门级关键信息进行定义以满足实际仿真需求。本发明实施例为了保证输入输出的拓扑结构与门结构一致,将基本逻辑门节点统一定义为四输入单输出。而其中没有用到的输入门则引入不同的常量值,使其生成的逻辑表与原有二输入逻辑真值表的含义相同。n_func_andn_func_orn_func_nandn_func_norn_func_xnorn_func_xorn_func_notn_func_notif0n_func_notif1n_func_bufif0n_func_bufif1n_func_cmosn_func_nmosn_func_pmosn_func_rcmosn_func_rnmosn_func_rpmos
……
38.表2门级网表文件是rtl文件经过综合之后生成的用于表征底层电路连接关系的文件,由于综合软件无法对udp语法进行综合,因此,从rtl文件综合生成的门级网表文件一般不含有用户自定义原语udp,而在进行门级仿真中工艺库器件内部往往会使用udp节点,udp大致分为两类组合udp与时序udp。由于udp节点的处理较为复杂,大部分现有仿真器无法支持门级仿真中出现udp的情况,主要有两大难点:1、udp节点定义多种多样,逻辑真值表较为复杂难以进行处理;2、仿真用户自定义udp门实现难度大,无法保证组合逻辑及时序逻辑正确。
39.本发明实施例参考vvp文件中对udp节点的语义描述及实际仿真情况,对udp节点进行了如下定义来解决上述难点:多输入单输出、输入位宽均为1bit、输入端口数量为udp真值表列数-1,真值表最右边一列为输入匹配后的输出结果值。定义方式如下:若所述节点为udp节点,则按照多输入单输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典gate_dict的键及值进行设定,具体步骤包括:从所述节点的门级关键信息中提取节点id、节点的类型名、节点的输入值、节点的输出值和节点的真值表列数;将所述节点id存入至所述第二全局字典gate_dict的键中;将所述节点的类型名存入至所述第二全局字典gate_dict的值的类型列表中;根据所述节点的真值表列数构建所述第二全局字典gate_dict的值的输入列表,并将所述节点的输入值依次存入至所述第二全局字典gate_dict的值的输入列表中,其中,所述第二全局字典gate_dict的值的输入列表的列数为所述节点的真值表列数减1;将所述节点的输出值存入至所述第二全局字典gate_dict的值的输出列表中;将1bit存入至对所述第二全局字典gate_dict的值的输入位宽列表中。
40.所述信号类型节点主要起到提供指定信号的作用,可以给予电路初始值。该类型的节点主要有以下三种:n_var、n_func_buft和n_func_bufz。信号类型节点主要为单输入单输出,通常门级电路中需要常值为x的信号则用到n_var,其它值的信号则用到n_func_buft与n_func_bufz,其中,n_func_buft可以传递信号的强度信息,n_func_bufz 忽略信号的强度信息。
41.除了上面介绍的具有仿真功能的节点之外,本发明中需要重定义的节点类型还有一种表征门级连接关系的节点。此类型节点能够起到各个节点信号连接及选择的作用,包括信号位选节点(n_vpart_sel)与信号合并节点(n_concat8、n_concat)。
42.信号合并节点主要起到多个信号值的合并作用,该节点为四输入单输出节点,可以将四个输入上的多比特信号进行合并,其中,n_concat8信号合并节点会传递信号强度信息,n_concat信号合并节点会忽略强度信息。信号位选节点为单输入单输出节点,根据给定的位选起始下标和输出位宽来确定输出信号。
43.定义方式为:若所述节点为信号合并节点,则从所述节点的门级关键信息中提取节点id、节点的每个输入信号的输出位宽和节点的输入信号值;将所述节点id存入至所述第二全局字典gate_dict的键中;将所述节点的输入信号值依次存入至所述第二全局字典gate_dict的值的输入列表中;对所述节点的输入信号值依序进行合并以得到节点的输出信号值,并将所述节点的输出信号值存入至所述第二全局字典gate_dict的值的输出列表中;将所述节点的每个输入信号的输出位宽依次存入至对所述第二全局字典gate_dict的值的位宽列表中。
44.需要说明的是,创建的第二全局字典gate_dict存储了重定义后的门级电路的拓扑结构,能够保证后续仿真的因果顺序。重定义后的门级电路的拓扑结构与原门级网表门级电路的拓扑结构等价,且有针对性的解决一些原电路语义描述不足的问题,能够更好的满足实际仿真需求。
45.s105,对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件。
46.其中,所述对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件的步骤包括:对所述第一全局字典udp_definitions进行遍历并将所述第一全局字典udp_definitions中的信息进行json格式的转换以得到第一有向图文件;对所述第二全局字典gate_dict进行遍历并将所述第二全局字典gate_dict中的信息进行json格式的转换以得到第二有向图文件。对所述第一全局字典udp_definitions与所述第二全局字典gate_dict之间的转译顺序不进行限制。预设通用格式还可以是protocol buffers格式。
47.需要说明的是,通过前期对vvp文件中的每个节点的门级关键信息进行处理使得每个门都具有一个唯一的id,因此其对应的输入输出端口也都会拥有一个唯一的id。由于门级网表文件本身就含有连接关系,因此通过每个门的id及其输入输出id便可以组成一个有向图。该有向图中的每个节点相当于一个逻辑门,且此门并非单纯的数字电路的门而是前面重定义优化后的门。
48.转译结果文件(第一有向图文件和第二有向图文件)中已经能够将电路表征为有向图,每一个图节点代表着一个门。每一个门有唯一的id属性用于查找其在有向图当中的位置。而转译成json 文件是由于 json 文件的语法非常易于使用,而且轻量,能够以更快的方式执行响应,并且能够清晰地表示结构关系。json 作为一种更好的互联网传输结构化文件格式,已经被各类联网或者单机软件使用,具有极强的通用性。除此之外,python 中自带有 json 库,因而采用 json 文件格式来对网表进行结构化表示更为方便。
49.本发明先将门级网表进行结构化表示以得到vvp 文件,再对vvp 文件进行语义分析,并且获取文件内所包含的节点、信号、模块信息、udp 定义内容、线程信息以及过程块内
容等信息,并对一些类型的节点(如信号类型节点、逻辑仿真节点及门级信号连接节点)的信息进行重定义,最终输出重定义后的语义对等且带有电路中各个节点之间关系的 json 格式文件。
50.综上,本发明提供的一种门级电路的转译方法,有益效果在于:本发明先根据目标门级网表文件与工艺库文件生成vvp文件,生成的vvp文件不仅包含了目标门级网表的数据结构还开放了第三方接口接入通用逻辑结构,使得vvp文件能够以通用的文件结构形式输出;再从命令行输入vvp文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量,以为关键门级信息的提取做准备;进而,根据所述全局变量及预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析以便能够快速的提取与各所述逻辑关键字对应的节点的门级关键信息;进一步的,再根据与各所述逻辑关键字对应的重定义规则对与各节点的门级关键信息进行门级语义的重定义,不仅能够有针对性的解决一些电路语义描述不足的问题,以更好的满足实际仿真需求,且根据对应的重定义规则进行重定义,还增强了重定义过程的规则性及通用性,方便重定义过程的程序化执行;最后对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件,得到的有向图文件不仅与门级电路在拓扑结构及电路语义上等价,还能便于二次开发,填补了目前eda行业缺乏通用数字电路前端转译的不足。
51.实施例2请参考图2,本实施例提供一种门级电路的转译系统,包括:生成模块:用于根据目标门级网表文件与工艺库文件生成vvp文件,所述目标门级网表为用于描述各电路器件之间连接关系的门级语义的文本文件,所述工艺库文件中包含了组成各电路器件的逻辑元件,所述vvp文件为用于描述各节点的逻辑元件之间连接关系的门级语义的文本文件。
52.设置模块:用于从命令行输入vvp文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量。
53.提取模块:用于获取预设逻辑关键字表,根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述vvp文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息。
54.所述提取模块还用于:从所述vvp文件的文件头开始依次读取所述vvp文件中的每一行信息并查询行信息中是否存在顶层模块;若不存在顶层模块,则判断所述vvp文件中的行信息中是否存在组合逻辑udp关键字或时序逻辑udp关键字;若存在所述组合逻辑udp关键字或所述时序逻辑udp关键字,则对组合逻辑udp或时序逻辑udp的相关段进行解析,并对与所述组合逻辑udp关键字或所述时序逻辑udp关键字对应的节点的门级关键信息进行提取及存储至第一全局字典udp_definitions中。
55.所述提取模块还用于:若存在顶层模块,则对所述vvp文件中顶层模块后面的所有行信息进行解析并根据所述预设逻辑关键字表中的其它逻辑关键字对与所述其它逻辑关键字对应的门级关键信息进行提取及存储至全局列表gate_statements中,所述其它逻辑关键字为所述预设逻
辑关键字表中除组合逻辑udp关键字及时序逻辑udp关键字以外的逻辑关键字。
56.定义模块:用于根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息。
57.所述定义模块还用于:创建第二全局字典gate_dict;对所述全局列表gate_statements进行遍历并依序获取所述全局列表gate_statements中各节点的门级关键信息的字符串;对各节点的门级关键信息的字符串进行解析并提取各节点的门级关键信息的关键字;将各节点的门级关键信息的关键字对照所述预设逻辑关键字表进行匹配查询以在所述预设逻辑关键字表中找到对应的逻辑关键字并根据所述逻辑关键字确定各节点的类型及各节点的门级关键信息的重定义规则;根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典gate_dict的键及值。
58.所述定义模块还用于:若所述节点为基本逻辑门节点,则按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典gate_dict的键及值进行设定。
59.所述定义模块还用于:从所述节点的门级关键信息中提取节点id、节点的类型名、节点的输入id、节点的输出id和节点的输出位宽;将所述节点id存入至所述第二全局字典gate_dict的键中;将所述节点的类型名存入至所述第二全局字典gate_dict的值的类型列表中;将所述节点的输入id和常数值依次存入至所述第二全局字典gate_dict的值的四输入列表中;将所述节点的输出id存入至所述第二全局字典gate_dict的值的输出列表中;将所述节点的输出位宽存入至所述第二全局字典gate_dict的值的位宽列表中。
60.转译模块:用于对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件。
61.所述转译模块还用于:对所述第二全局字典gate_dict进行遍历并将所述第二全局字典gate_dict中的信息进行json格式的转换以得到第一有向图文件;对所述第一全局字典udp_definitions进行遍历并将所述第一全局字典udp_definitions中的信息进行json格式的转换以得到第二有向图文件。预设通用格式还可以是protocol buffers格式。
62.实施例3请参考图3,本发明还提出一种门级电路的转译设备,所示为本发明第三实施例当中的门级电路的转译设备,包括存储器20、处理器10以及存储在存储器上并可在处理器上运行的计算机程序30,所述处理器10执行所述计算机程序30时实现如上述的门级电路的转
译方法。
63.其中,所述门级电路的转译设备具体可以为计算机、服务器、上位机等,处理器10在一些实施例中可以是中央处理器(central processing unit, cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器20中存储的程序代码或处理数据,例如执行访问限制程序等。
64.其中,存储器20至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器20在一些实施例中可以是门级电路的转译设备的内部存储单元,例如该门级电路的转译设备的硬盘。存储器20在另一些实施例中也可以是门级电路的转译设备的外部存储装置,例如门级电路的转译设备上配备的插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。进一步地,存储器20还可以既包括门级电路的转译设备的内部存储单元也包括外部存储装置。存储器20不仅可以用于存储安装于门级电路的转译设备的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
65.需要指出的是,图3示出的结构并不构成对门级电路的转译设备的限定,在其它实施例当中,该门级电路的转译设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
66.本发明实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的门级电路的转译方法。
67.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。