CN113822007A - 电路生成方法、装置、设备及介质 - Google Patents
电路生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113822007A CN113822007A CN202111382304.5A CN202111382304A CN113822007A CN 113822007 A CN113822007 A CN 113822007A CN 202111382304 A CN202111382304 A CN 202111382304A CN 113822007 A CN113822007 A CN 113822007A
- Authority
- CN
- China
- Prior art keywords
- circuit
- code
- hdl
- description language
- hardware description
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Library & Information Science (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种电路生成方法、装置、设备及介质,属于集成电路技术领域。电路生成方法包括:获取第一电路;获取第二硬件描述语言HDL代码;根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路。本申请公开的电路生成方法、装置、设备及介质,能够提高电路分析效率。
Description
技术领域
本申请属于集成电路技术领域,具体涉及一种电路生成方法、装置、设备及介质。
背景技术
硬件描述语言(Hardware Description Language,HDL)是电子系统硬件行为描述、结构描述、数据流描述的语言。利用HDL,数字电路系统的设计可以从顶层到底层逐层描述设计思想,用一系列分层次的模块来表示极其复杂的数字系统。
通常为提高HDL代码的可读性及便于对HDL代码功能进行仿真测试分析,在HDL代码编译为电路图时,电路图中通过添加标注、调整布局、跟踪信号等操作,实现对HDL的理解分析。
但是若一个HDL代码生成的电路图已经进行了布局优化、层次调整、添加标注等操作,此时如果HDL代码进行了修改更新,基于修改后的HDL代码重新生成的电路图,无法继承原有电路图中的布局、标注等信息,这就需要重新进行分析、调整布局等,造成之前的分析成果浪费,电路分析效率较低。
发明内容
本申请实施例的目的是提供一种电路生成方法、装置、设备及介质,能够解决电路分析效率低的问题。
第一方面,本申请实施例提供了一种电路生成方法,包括:
获取第一电路;
获取第二HDL代码;
根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路。
第二方面,本申请实施例提供了一种电路生成装置,包括:
第一获取模块,用于获取第一电路;
第二获取模块,用于获取第二HDL代码;
生成模块,用于根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路。
第三方面,本申请实施例提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤。
在本申请实施例中,通过获取第一电路和第二HDL代码,根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路,使得目标电路能够继承第一电路的结构。基于第一电路的分析成果对目标电路进行分析,能够提高对目标电路的分析效率。
附图说明
图1是本申请实施例提供的电路生成的第一种过程示意图;
图2是本申请实施例提供的电路生成的第二种过程示意图;
图3是本申请实施例提供的电路生成的第三种过程示意图;
图4是本申请实施例提供的电路生成方法的流程示意图;
图5是本申请实施例提供的第一电路的第一种示意图;
图6是本申请实施例提供的第二RTL代码对应的第二电路的示意图;
图7是本申请实施例提供的目标电路的第一种示意图;
图8是本申请实施例提供的第一电路的第二种示意图;
图9是本申请实施例提供的第二netlist代码对应的第二电路的第一种示意图;
图10是本申请实施例提供的目标电路的第二种示意图;
图11是本申请实施例提供的第一电路的第三种示意图;
图12是本申请实施例提供的第二netlist代码对应的第二电路的第二种示意图;
图13是本申请实施例提供的目标电路的第三种示意图;
图14是本申请实施例提供的电路生成装置的结构示意图;
图15是本申请实施例提供的电子设备的结构示意图;
图16是实现本申请实施例的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的电路生成方法、装置、设备及介质进行详细地说明。
在本申请实施例的一些可能实现中,HDL代码有两种描述风格:寄存器传输级(register-transfer level,RTL)描述风格和网表(netlist)描述风格。RTL描述风格的HDL代码又被称之为RTL代码,netlist描述风格的HDL代码又被称之为netlist代码。RTL代码是行为级的描述方式,netlist代码是门级电路的描述方式。RTL代码用赋值语句对电路中的关键信号进行描述,赋值语句中等号“=”左边的变量对应一个单元的输出线网。netlist代码采用实例化引用的方式描述电路结构,代码中的每个单元(代码块)都对应一个实例。
当HDL代码为RTL代码时,电路生成的过程如图1所示。图1是本申请实施例提供的电路生成的第一种过程示意图。
首先,将原始RTL代码按照HDL代码转化电路的步骤进行转化,得到转化后的电路(以下称之为转化电路图);根据电路中各个子电路的连接关系、数据流向等对转化电路图进行电路整理,整理出一份反映RTL架构和功能的电路图称为整理电路图(即第一电路)。若发现RTL代码存在错误或需要代码优化可对原始代码进行局部修改,修改后的代码为新RTL代码,新RTL代码按照RTL代码转化电路的步骤再进行转化,转化后的电路称为新转化电路图(即第二电路)。其中,新转化电路图仍然为一个没有任何整理的电路。将新转化电路图与整理电路图进行映射,新转化电路图与整理电路图映射成功的部分继承整理电路图中相应编辑信息,包括实例布局、电路层次、标注信息等,然后仅对RTL代码修改部分进行调整布局,得到一份反映新RTL代码的架构和功能的电路图,称为新整理电路图(即目标电路)。由于目标电路最大程度继承第一电路的编辑信息,因此大大减少了后续分析整理目标电路的时间,能够提高对目标电路的分析效率。
当HDL代码为netlist代码时,电路生成的过程如图2所示。图2是本申请实施例提供的电路生成的第二种过程示意图。
首先,将原始netlist代码按照HDL代码转化电路的步骤进行转化,得到转化后的电路(以下称之为转化电路图);根据电路中各个子电路的连接关系、数据流向等进行电路整理,整理出一份反映netlist架构和功能的电路图称为整理电路图(即第一电路)。若发现netlist代码存在错误或需要代码优化可对原始代码进行局部修改,修改后的代码为新netlist代码,新netlist代码按照HDL代码转化电路的步骤再进行转换,转换后的电路图为新转化电路图(即第二电路)。将新转化电路图与整理电路图进行映射,新转化电路图与整理电路图映射成功的部分继承整理电路图中相应编辑信息,包括实例布局、电路层次、标注信息等,然后仅对netlist修改部分进行调整布局,最后得到一份反映新netlist代码的架构和功能的电路图,称为新整理电路图(即目标电路)。由于目标电路最大程度继承第一电路的编辑信息,因此大大减少了后续分析整理目标电路的时间,能够提高对目标电路的分析效率。
在本申请实施例的一些可能实现中,在根据上述整理电路图和新HDL代码生成新HDL代码对应的新整理电路图时,还可以直接通过内部的一些代码或者一些其他引用/调用的方法,直接生成新HDL代码对应的新整理电路图。具体过程如图3所示。
图4是本申请实施例提供的电路生成方法的流程示意图。电路生成方法可以包括:
S401:获取第一电路;
S402:获取第二HDL代码;
S403:根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路。
上述各步骤的具体实现方式将在下文中进行详细描述。
在本申请实施例中,通过获取第一电路和第二HDL代码,根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路,使得目标电路能够继承第一电路的结构。基于第一电路的分析成果对目标电路进行分析,能够提高对目标电路的分析效率。
在本申请实施例的一些可能实现中,HDL代码转换后的电路用逻辑门、选择器和触发器等不同类型的实例来表示电路,并且电路中的线网名、单元名、实例名和端口名等通常使用HDL代码中的变量名称表示,以使HDL代码对应的电路清晰地和HDL代码对应。
在本申请实施例的一些可能实现中,第二HDL代码可以为第一电路对应的第一HDL代码被修改后,得到的HDL代码,也就是说,第一电路与第一HDL对应,第二电路与第二HDL对应。
在本申请实施例的一些可能实现中,S403包括:将第二HDL代码对应的第二电路与第一电路进行映射,得到第二HDL代码对应的目标电路。
在本申请实施例的一些可能实现中,将第二HDL代码对应的第二电路与第一电路进行映射,得到第二HDL代码对应的目标电路,可以包括:将第二电路与第一电路进行同名输出线网映射,得到目标电路。
具体地,在将第二电路与第一电路进行同名输出线网映射,得到目标电路时,第二电路与第一电路同名输出线网映射成功的部分继承第一电路中相应编辑信息,包括实例布局、电路层次、标注信息等;在第一电路中增加第二电路与第一电路同名输出线网映射不成功的部分,得到目标电路。
示例性地,以HDL代码为RTL代码,对电路生成过程进行说明。
原始RTL代码(即第一RTL代码)如下所示:
module comp(A0, A1, A2, A3, B0, B1, B2, B3, Z);
input A0;input A1;input A2;input A3;input B0;input B1;input B2;inputB3;
output Z;
assign NOD3 = ~(A3 ^ B3);
assign NOD2 = ~(A2 ^ B2);
assign NOD1 = ~(A1 ^ B1);
assign NOD0 = ~(A0 ^ B0);
assign Z = ~(NOD3 & NOD2 & NOD1 & NOD0);
endmodule
对原始RTL代码进行转化得到原始RTL代码对应的第一电路,如图5所示。
当原始RTL代码被修改后,得到第二RTL代码后,第二RTL代码如下所示:
module comp(A0, A1, A2, A3, B0, B1, B2, B3, Z);
input A0;input A1;input A2;input A3;input B0;input B1;input B2;inputB3;
output Z;
assign NOD3 = ~(A3 ^ B3);
assign NOD2 = ~(A2 ^ B2);
assign NOD1 = ~(A1 ^ B1);
assign NOD0 = ~(A0 ^ B0);
assign Z= ~( NOD3 / NOD2 / NOD1/ NOD0);
endmodule
对第二RTL代码进行转化得到第二电路,如图6所示。
将图6所示的第二电路与图5所示的第一电路进行同名输出线网映射,得到如图7所示的目标电路。
在本申请实施例的一些可能实现中,在根据第一电路和第二RTL代码生成第二RTL代码对应的目标电路时,还可以直接通过内部的一些代码或者一些其他引用/调用的方法,直接生成第二RTL代码对应的目标电路。
在本申请实施例的一些实现中,将第二HDL代码对应的第二电路与第一电路进行映射,得到第二HDL代码对应的目标电路,还可以包括:将第二电路与第一电路进行同名实例映射,得到目标电路。
具体地,在将第二电路与第一电路进行同名实例映射,得到目标电路时,第二电路与第一电路同名实例映射成功的部分继承第一电路中相应编辑信息,包括实例布局、电路层次、标注信息等;在第一电路中增加第二电路与第一电路同名实例映射不成功的部分,得到目标第二电路。
示例性地,以HDL代码为netlist代码,对电路生成过程进行说明。
原始netlist代码(即第一netlist代码)如下所示:
module FFDRHDLX_Q(Q, CK, D, RN);
output Q;input CK;input D;input RN;
regQ_reg;
always @(posedge CK or negedge RN) begin
if(!RN)
Q_reg<= 1'b0;
else
Q_reg<= D;
end
assign Q = Q_reg;
endmodule
module XNOR2HDLX(A, B, Z);
input A;input B;output Z;
assign Z = ~(A^B);
endmodule
module counter(CP, RST, Q0, Q1);
input CP;input RST;output Q0;output Q1;
FFDRHDLX_Q I4 ( .RN(RST), .D(NOD0), .CK(CP), .Q(Q0));
FFDRHDLX_Q I5 ( .RN(RST), .D(NOD1), .CK(CP), .Q(Q1));
XNOR2HDLX I6 ( .A(Q0), .B(Q1), .Z(NOD0));
XNOR2HDLX I7 ( .A(Q1), .B(Q0), .Z(NOD1));
endmodule
对原始netlist代码进行转化得到原始netlist代码对应的第一电路,如图8所示。
当原始netlist代码被修改后,得到第二netlist代码后,第二netlist代码如下所示:
module FFDRHDLX_Q(Q, CK, D, RN);
output Q;input CK;input D;input RN;
regQ_reg;
always @(posedge CK or negedge RN) begin
if(!RN)
Q_reg<= 1'b0;
else
Q_reg<= D;
end
assign Q = Q_reg;
endmodule
module XNOR2HDLX(A, B, Z);
input A;input B;output Z;
assign Z = ~(A^B);
endmodule
module AND2HDLX(A, B, Z);
input A;input B;output Z;
assign Z =A&B;
endmodule
module counter(CP, RST, Q0, Q1);
input CP;input RST;output Q0;output Q1;
input S;
FFDRHDLX_Q I4 ( .RN(RST), .D(NOD2), .CK(CP), .Q(Q0));
FFDRHDLX_Q I5 ( .RN(RST), .D(NOD3), .CK(CP), .Q(Q1));
XNOR2HDLX I6 ( .A(Q0), .B(Q1), .Z(NOD0));
XNOR2HDLX I7 ( .A(Q1), .B(Q0), .Z(NOD1));
AND2HDLX I8 (.A(NOD1), .B(S), .Z(NOD3));
AND2HDLX I9 (.A(NOD0), .B(S), .Z(NOD2));
endmodule
对第二netlist代码进行转化得到第二netlist代码对应的第二电路,如图9所示。
将图9所示的第二电路与图8所示的第一电路进行同名实例映射,图9所示的第二电路与图8所示的第一电路同名实例映射成功的部分继承图8所示的第一电路中相应编辑信息,然后,对图9所示的第二电路与图8所示的第一电路同名实例映射不成功的部分进行整理,得到如图10所示的目标电路。
在本申请实施例的一些可能实现中,在根据第一电路和第二netlist代码生成第二netlist代码对应的目标电路时,还可以直接通过内部的一些代码或者一些其他引用/调用的方法,直接生成第二netlist代码对应的目标电路。
在本申请实施例的一些可能实现中,第一电路包括第一注释信息,且第一注释信息位于第一电路中与第一HDL代码包括的第一注释信息对应的第一代码块相对应的位置,第一HDL代码为第一电路对应的HDL代码。即第一电路为第一HDL代码进行电路转化和整理后得到的电路。
在本申请实施例的一些可能实现中,第二HDL代码包括第二注释信息;目标电路包括该第二注释信息,且目标电路中的第二注释信息位于目标电路中与第二HDL代码包括的第二注释信息对应的第二代码块相对应的位置。
在将HDL代码进行编译前可添加注释信息,例如一些模块单元名称、特殊时钟信号、具有特殊功能的一些代码等,这些注释信息可以提高对代码的设计理解。HDL代码在转化为电路时,相应的注释内容可以加载到相应的位置,这样可以为电路的整理分析提供帮助。
示例性地,以HDL代码为netlist代码为例进行说明。
原始netlist代码(即第一netlist代码)对应的代码如下:
module AND2HDLX(Z, B, A);
output Z;input B;input A;
assign Z = A&B;
endmodule
module INVHD1X(Z, A);
output Z;input A;
assign Z = ~A;
endmodule
module decode(A0, A1, Z1, Z2, Z3);
input A0;input A1;output Z1;output Z2;output Z3;
INVHD1X I04 ( .Z(A0N), .A(A0));
INVHD1X I05 ( .Z(A1N), .A(A1));
//0x01
AND2HDLX I2 ( .Z(Z1), .B(A0), .A(A1N));
//0x11
AND2HDLX I8 ( .Z(Z3), .B(A0), .A(A1));
//0x10
AND2HDLX I9 ( .Z(Z2), .B(A0N), .A(A1));
endmodule
其中,原始netlist代码中包括实例I2对应的注释信息0x01、实例I8对应的注释信息0x11和实例I9对应的注释信息0x10。
对原始netlist代码进行转化得到原始netlist代码对应的第一电路,如图11所示。其中,在图11中,第一电路包括实例I2对应的注释信息0x01、实例I8对应的注释信息0x11和实例I9对应的注释信息0x10。图11中的注释信息0x01、0x11和0x10即为上述第一注释信息。即图11所示的第一电路中包括上述第一注释信息。
当原始netlist代码被修改为第二netlist代码后,第二netlist代码对应的代码如下:
module AND2HDLX(Z, B, A);
output Z;input B;input A;
assign Z = A&B;
endmodule
module INVHD1X(Z, A);
output Z;input A;
assign Z = ~A;
endmodule
module decode(A0, A1, Z1, Z2, Z3);
input A0;input A1;output Z1;output Z2;output Z3;
INVHD1X I04 ( .Z(A0N), .A(A0));
INVHD1X I05 ( .Z(A1N), .A(A1));
//0x01
AND2HDLX I2 ( .Z(Z1), .B(A0), .A(A1N));
//0x00
AND2HDLX I8 ( .Z(Z3), .B(A0N), .A(A1N));
//0x10
AND2HDLX I9 ( .Z(Z2), .B(A0N), .A(A1));
endmodule
其中,第二netlist代码中包括实例I2对应的注释信息0x01、实例I8对应的注释信息0x00和实例I9对应的注释信息0x10。
对第二netlist代码进行转化得到第二netlist代码对应的第二电路,如图12所示。其中,图12中包括实例I2对应的注释信息0x01、实例I8对应的注释信息0x00和实例I9对应的注释信息0x10。图12中的0x01、0x00和0x10即为上述第二注释信息。即图12所示的第二电路中包括上述第二注释信息。
将图12所示的第二netlist代码对应的第二电路与图11所示的第一电路进行同名实例映射,得到如图13所示的目标电路。
图13所示的目标电路中包括实例I2对应的注释信息0x01、实例I8对应的注释信息0x00和实例I9对应的注释信息0x10。即图13所示的目标电路中包括上述第二注释信息。
需要说明的是,本申请实施例提供的电路生成方法,执行主体可以为电路生成装置,或者该电路生成装置中的用于执行电路生成方法的控制模块。本申请实施例中以电路生成装置执行电路生成方法为例,说明本申请实施例提供的电路生成装置。
图14是本申请实施例提供的电路生成装置的结构示意图。电路生成装置1400可以包括:
第一获取模块1401,用于获取第一电路;
第二获取模块1402,用于获取第二HDL代码;
生成模块1403,用于根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路。
在本申请实施例中,通过获取第一电路和第二HDL代码,根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路,使得目标电路能够继承第一电路的结构。基于第一电路的分析成果对目标电路进行分析,能够提高对目标电路的分析效率。
在本申请实施例的一些可能实现中,生成模块1403具体用于:
将第二HDL代码对应的第二电路与第一电路进行映射,得到第二HDL代码对应的目标电路。
在本申请实施例的一些可能实现中,生成模块1403具体用于:
将第二电路与第一电路进行同名输出线网映射,得到目标电路。
在本申请实施例的一些可能实现中,生成模块1403具体用于:
将第二电路与第一电路进行同名实例映射,得到目标电路。
在本申请实施例的一些可能实现中,电路生成装置1400还包括:
转化模块,用于转化第二HDL代码,得到第二HDL代码对应的第二电路。
在本申请实施例的一些可能实现中,第二HDL代码包括:
第一电路对应的第一HDL代码被修改后,得到的HDL代码。
在本申请实施例的一些可能实现中,第一电路包括第一注释信息,且第一注释信息位于第一电路中与第一HDL代码包括的第一注释信息对应的第一代码块相对应的位置,第一HDL代码为第一电路对应的HDL代码。
在本申请实施例的一些可能实现中,第二HDL代码包括第二注释信息;目标电路包括该第二注释信息,且目标电路中的第二注释信息位于目标电路中与第二HDL代码包括的第二注释信息对应的第二代码块相对应的位置。
本申请实施例中的电路生成装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的电路生成装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为iOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的电路生成装置能够实现图1至图13的电路生成方法实施例中的各个过程,为避免重复,这里不再赘述。
可选的,如图15所示,本申请实施例还提供一种电子设备1500,包括处理器1501,存储器1502,存储在存储器1502上并可在所述处理器1501上运行的程序或指令,该程序或指令被处理器1501执行时实现上述电路生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要注意的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
在本申请实施例的一些可能实现中,处理器1501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit ,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
在本申请实施例的一些可能实现中,存储器1502可以包括只读存储器(Read-OnlyMemory, ROM),随机存取存储器(Random Access Memory, RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请实施例的电路生成方法所描述的操作。
图16是实现本申请实施例的电子设备的硬件结构示意图。
该电子设备1600包括但不限于:射频单元1601、网络模块1602、音频输出单元1603、输入单元1604、传感器1605、显示单元1606、用户输入单元1607、接口单元1608、存储器1609、以及处理器1610等部件。
本领域技术人员可以理解,电子设备1600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图16中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1610用于:获取第一电路;获取第二HDL代码;根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路。
在本申请实施例中,通过获取第一电路和第二HDL代码,根据第一电路和第二HDL代码,生成第二HDL代码对应的目标电路,使得目标电路能够继承第一电路的结构。基于第一电路的分析成果对目标电路进行分析,能够提高对目标电路的分析效率。
在本申请实施例的一些可能实现中,处理器1610具体用于:
将第二HDL代码对应的第二电路与第一电路进行映射,得到第二HDL代码对应的目标电路。
在本申请实施例的一些可能实现中,处理器1610具体用于:
将第二电路与第一电路进行同名输出线网映射,得到目标电路。
在本申请实施例的一些可能实现中,处理器1610具体用于:
将第二电路与第一电路进行同名实例映射,得到目标电路。
在本申请实施例的一些可能实现中,处理器1610还用于:
转化第二HDL代码,得到第二HDL代码对应的第二电路。
在本申请实施例的一些可能实现中,第二HDL代码包括:
第一电路对应的第一HDL代码被修改后,得到的HDL代码。
在本申请实施例的一些可能实现中,第一电路包括第一注释信息,且第一注释信息位于第一电路中与第一HDL代码包括的第一注释信息对应的第一代码块相对应的位置,第一HDL代码为第一电路对应的HDL代码。
在本申请实施例的一些可能实现中,第二HDL代码包括第二注释信息;目标电路包括该第二注释信息,且目标电路中的第二注释信息位于目标电路中与第二HDL代码包括的第二注释信息对应的第二代码块相对应的位置。
应理解的是,本申请实施例中,输入单元1604可以包括图形处理器(GraphicsProcessing Unit,GPU)16041和麦克风16042,图形处理器16041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1606可包括显示面板16061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板16061。用户输入单元1607包括触控面板16071以及其他输入设备16072。触控面板16071,也称为触摸屏。触控面板16071可包括触摸检测装置和触摸控制器两个部分。其他输入设备16072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器1609可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器1610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1610中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述电路生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质包括计算机可读存储介质,计算机可读存储介质的示例包括非暂态计算机可读存储介质,如ROM、RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述电路生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (18)
1.一种电路生成方法,其特征在于,所述方法包括:
获取第一电路;
获取第二硬件描述语言HDL代码;
根据所述第一电路和所述第二硬件描述语言HDL代码,生成所述第二硬件描述语言HDL代码对应的目标电路。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一电路和所述第二硬件描述语言HDL代码,生成所述第二硬件描述语言HDL代码对应的目标电路,包括:
将所述第二硬件描述语言HDL代码对应的第二电路与所述第一电路进行映射,得到所述第二硬件描述语言HDL代码对应的目标电路。
3.根据权利要求2所述的方法,其特征在于,所述将所述第二硬件描述语言HDL代码对应的第二电路与所述第一电路进行映射,得到所述第二硬件描述语言HDL代码对应的目标电路,包括:
将所述第二电路与所述第一电路进行同名输出线网映射,得到所述目标电路。
4.根据权利要求2所述的方法,其特征在于,所述将所述第二硬件描述语言HDL代码对应的第二电路与所述第一电路进行映射,得到所述第二硬件描述语言HDL代码对应的目标电路,包括:
将所述第二电路与所述第一电路进行同名实例映射,得到所述目标电路。
5.根据权利要求2所述的方法,其特征在于,所述将所述第二硬件描述语言HDL代码对应的第二电路与所述第一电路进行映射,得到所述第二硬件描述语言HDL代码对应的目标电路之前,所述方法还包括:
转化所述第二硬件描述语言HDL代码,得到所述第二电路。
6.根据权利要求1所述的方法,其特征在于,所述第二硬件描述语言HDL代码包括:
所述第一电路对应的第一HDL代码被修改后,得到的HDL代码。
7.根据权利要求1所述的方法,其特征在于,所述第一电路包括第一注释信息,且所述第一注释信息位于所述第一电路中与第一HDL代码包括的所述第一注释信息对应的第一代码块相对应的位置,所述第一HDL代码为所述第一电路对应的HDL代码。
8.根据权利要求1所述的方法,其特征在于,所述第二硬件描述语言HDL代码包括第二注释信息;
所述目标电路包括所述第二注释信息,且所述目标电路中的所述第二注释信息位于所述目标电路中与所述第二硬件描述语言HDL代码包括的所述第二注释信息对应的第二代码块相对应的位置。
9.一种电路生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一电路;
第二获取模块,用于获取第二硬件描述语言HDL代码;
生成模块,用于根据所述第一电路和所述第二硬件描述语言HDL代码,生成所述第二硬件描述语言HDL代码对应的目标电路。
10.根据权利要求9所述的装置,其特征在于,所述生成模块具体用于:
将所述第二硬件描述语言HDL代码对应的第二电路与所述第一电路进行映射,得到所述第二硬件描述语言HDL代码对应的目标电路。
11.根据权利要求10所述的装置,其特征在于,所述生成模块具体用于:
将所述第二电路与所述第一电路进行同名输出线网映射,得到所述目标电路。
12.根据权利要求10所述的装置,其特征在于,所述生成模块具体用于:
将所述第二电路与所述第一电路进行同名实例映射,得到所述目标电路。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
转化模块,用于转化所述第二硬件描述语言HDL代码,得到所述第二电路。
14.根据权利要求9所述的装置,其特征在于,所述第二硬件描述语言HDL代码包括:
所述第一电路对应的第一HDL代码被修改后,得到的HDL代码。
15.根据权利要求9所述的装置,其特征在于,所述第一电路包括第一注释信息,且所述第一注释信息位于所述第一电路中与第一HDL代码包括的所述第一注释信息对应的第一代码块相对应的位置,所述第一HDL代码为所述第一电路对应的HDL代码。
16.根据权利要求9所述的装置,其特征在于,所述第二硬件描述语言HDL代码包括第二注释信息;
所述目标电路包括所述第二注释信息,且所述目标电路中的所述第二注释信息位于所述目标电路中与所述第二硬件描述语言HDL代码包括的所述第二注释信息对应的第二代码块相对应的位置。
17.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至8任一项所述的电路生成方法的步骤。
18.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至8任一项所述的电路生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111382304.5A CN113822007A (zh) | 2021-11-22 | 2021-11-22 | 电路生成方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111382304.5A CN113822007A (zh) | 2021-11-22 | 2021-11-22 | 电路生成方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113822007A true CN113822007A (zh) | 2021-12-21 |
Family
ID=78919617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111382304.5A Pending CN113822007A (zh) | 2021-11-22 | 2021-11-22 | 电路生成方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113822007A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200725413A (en) * | 2005-12-30 | 2007-07-01 | Tatung Co Ltd | Method for automatically translating extended activity diagram into hardware component graph |
CN101000543A (zh) * | 2006-01-11 | 2007-07-18 | 大同股份有限公司 | 延伸活动图自动转换成硬件元件图的方法 |
CN101246516A (zh) * | 2007-03-09 | 2008-08-20 | 知亿科技股份有限公司 | 可执行于计算机系统的电路设计修改方法 |
CN109492337A (zh) * | 2018-12-17 | 2019-03-19 | 北京计算机技术及应用研究所 | 一种可编程逻辑器件的信息流追踪模型生成方法 |
US10586003B1 (en) * | 2018-08-21 | 2020-03-10 | Xilinx, Inc. | Circuit design using high level synthesis and linked hardware description language libraries |
-
2021
- 2021-11-22 CN CN202111382304.5A patent/CN113822007A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200725413A (en) * | 2005-12-30 | 2007-07-01 | Tatung Co Ltd | Method for automatically translating extended activity diagram into hardware component graph |
CN101000543A (zh) * | 2006-01-11 | 2007-07-18 | 大同股份有限公司 | 延伸活动图自动转换成硬件元件图的方法 |
CN101246516A (zh) * | 2007-03-09 | 2008-08-20 | 知亿科技股份有限公司 | 可执行于计算机系统的电路设计修改方法 |
US10586003B1 (en) * | 2018-08-21 | 2020-03-10 | Xilinx, Inc. | Circuit design using high level synthesis and linked hardware description language libraries |
CN109492337A (zh) * | 2018-12-17 | 2019-03-19 | 北京计算机技术及应用研究所 | 一种可编程逻辑器件的信息流追踪模型生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
WO2021017735A1 (zh) | 一种智能合约的形式化验证方法、电子装置及存储介质 | |
EP4224301A1 (en) | Payment interface display method and apparatus, and electronic device | |
CN104063063A (zh) | 输入法的数学计算输入方法和输入法系统 | |
CN109492337B (zh) | 一种可编程逻辑器件的信息流追踪模型生成方法 | |
CN112506479B (zh) | 页面编辑的方法、装置、设备以及存储介质 | |
CN105528418A (zh) | 一种设计文档生成方法及装置 | |
CN113194024B (zh) | 信息显示方法、装置和电子设备 | |
CN113742366B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN113268260A (zh) | 用于web前端的路由方法及装置 | |
CN107368255B (zh) | 解锁方法、移动终端及计算机可读存储介质 | |
CN113626017A (zh) | 异构程序的分析方法、装置、计算机设备和存储介质 | |
CN112506503A (zh) | 一种编程方法、装置、终端设备及存储介质 | |
CN113822007A (zh) | 电路生成方法、装置、设备及介质 | |
CN108021317B (zh) | 用于屏幕编辑的方法及装置 | |
CN113901033A (zh) | 数据迁移方法、装置、设备及介质 | |
CN112051270B (zh) | 一种输电线缺陷检测方法、系统、设备及介质 | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
CN114089885A (zh) | 应用图标管理方法、装置、电子设备及可读存储介质 | |
CN113868269A (zh) | 截图方法、装置、电子设备和可读存储介质 | |
CN114579136A (zh) | 代码处理方法、装置、计算机设备和存储介质 | |
CN114070892A (zh) | 数据传输方法和装置 | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 | |
CN115826961B (zh) | 设计器及引擎分离重用的数据分析系统设计方法及装置 | |
CN114584616B (zh) | 一种消息推送方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |