CN114417779A - 芯片连线方法及装置、计算机设备、计算机可读存储介质 - Google Patents
芯片连线方法及装置、计算机设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN114417779A CN114417779A CN202210070504.5A CN202210070504A CN114417779A CN 114417779 A CN114417779 A CN 114417779A CN 202210070504 A CN202210070504 A CN 202210070504A CN 114417779 A CN114417779 A CN 114417779A
- Authority
- CN
- China
- Prior art keywords
- module
- signal
- file
- modules
- files
- 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/394—Routing
-
- 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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种芯片连线方法及装置、计算机设备、计算机可读存储介质,该方法包括:获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段;基于文件列表,建立从文件名称到模块名称再到端口声明起始行号的映射列表;对芯片的文件进行文本检索,确定源点模块与终点模块之间的唯一连线路径及所途经的各个文件;确定所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。本发明能够自动化对芯片进行模块间的连线与文本修改的技术方案,以解决层次化设计的芯片模块间连线复杂,容易出错,易造成人工浪费的问题。
Description
技术领域
本发明涉及芯片制造技术领域,尤其涉及一种芯片连线方法及装置、计算机设备、计算机可读存储介质。
背景技术
随着芯片的规模越来越大,引入了层次化设计(hierarchy design)的概念,从芯片的规划开始,层次化的理念贯穿整个设计流程封装。当芯片设计比较复杂、层次(hierarchy)比较深时,芯片中两个模块间的连接关系跨越的层次、涉及到的模块数量也会比较多。当芯片中两个模块间的接口需要变更时,如果两个模块各自的层次级都比较深,那么修改涉及到的文件/模块数量、文本修改点也都比较多。这样的修改比较繁琐,容易出现错误,增加了设计人员的工作量,也为验证人员的增加了不必要的工作量。
发明内容
本发明的目的是针对上述至少一部分不足之处,提供一种自动化进行芯片模块间的连线与文本修改的技术方案,以解决层次化设计的芯片模块间连线复杂,容易出错,易造成人工浪费的问题。
为了实现上述目的,本发明提供了一种芯片连线方法,包括:
获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;其中,待连线的两个模块之间的连接关键点描述包括源点模块、顶层模块和终点模块三个模块的模块名称;信号列表包括至少一个信号,每个信号中包括信号方向、信号位宽和信号名称;
基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段;
基于文件列表,建立从文件名称到该文件所声明的模块名称再到该模块的端口声明起始行号的映射列表;
基于待连线的两个模块之间的连接关键点描述和所述映射列表对芯片的文件进行文本检索,确定所述源点模块与所述终点模块之间的唯一连线路径及所途经的各个文件;
确定所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。
可选地,所述基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段,包括:
基于信号列表,提取信号方向、信号位宽和信号名称;
根据信号方向、信号位宽和信号名称生成近源端代码片段;所述近源端代码片段用于插入从源点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从源点模块到顶层模块;
根据信号方向、信号位宽和信号名称生成近终端代码片段;所述近终端代码片段用于插入从终点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从顶层模块到终点模块;
根据信号方向、信号位宽和信号名称生成例化代码片段;例化代码片段用于插入除源点模块和终点模块外其他模块对应的所有文件,以使得模块在文件中被实例化;
根据信号方向、信号位宽和信号名称生成顶层代码片段;所述顶层代码片段用于插入顶层模块对应的文件,以完成线网信号的声明,并完成两个方向的信号对接。
可选地,所述确定所途经的各个文件中对应的代码插入位置,包括:
对于源点模块和终点模块,确定对应的文件中相应的端口声明起始行号一个位置;
对于除顶层模块、源点模块和终点模块以外的模块,确定对应的文件中相应的端口声明起始行号及子模块实例化起始行号两个位置;
对于顶层模块,确定对应的文件中线网声明起始行号,以及所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置。
可选地,所述插入相应的代码片段,完成模块连线,包括:
从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,子模块实例化起始行号处插入例化代码片段,其中源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;
从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;
对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
本发明还提供了一种芯片连线装置,包括:
获取单元,用于获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;其中,待连线的两个模块之间的连接关键点描述包括源点模块、顶层模块和终点模块三个模块的模块名称;信号列表包括至少一个信号,每个信号中包括信号方向、信号位宽和信号名称;
代码单元,用于基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段;
映射单元,用于基于文件列表,建立从文件名称到该文件所声明的模块名称再到该模块的端口声明起始行号的映射列表;
路径单元,用于基于待连线的两个模块之间的连接关键点描述和所述映射列表对芯片的文件进行文本检索,确定所述源点模块与所述终点模块之间的唯一连线路径及所途经的各个文件;
连线单元,确定所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。
可选地,所述代码单元用于执行如下操作:
基于信号列表,提取信号方向、信号位宽和信号名称;
根据信号方向、信号位宽和信号名称生成近源端代码片段;所述近源端代码片段用于插入从源点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从源点模块到顶层模块;
根据信号方向、信号位宽和信号名称生成近终端代码片段;所述近终端代码片段用于插入从终点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从顶层模块到终点模块;
根据信号方向、信号位宽和信号名称生成例化代码片段;例化代码片段用于插入除源点模块和终点模块外其他模块对应的所有文件,以使得模块在文件中被实例化;
根据信号方向、信号位宽和信号名称生成顶层代码片段;所述顶层代码片段用于插入顶层模块对应的文件,以完成线网信号的声明,并完成两个方向的信号对接。
可选地,所述连线单元用于确定所途经的各个文件中对应的代码插入位置,包括执行如下操作:
对于源点模块和终点模块,确定对应的文件中相应的端口声明起始行号一个位置;
对于除顶层模块、源点模块和终点模块以外的模块,确定对应的文件中相应的端口声明起始行号及子模块实例化起始行号两个位置;
对于顶层模块,确定对应的文件中线网声明起始行号,以及所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置。
可选地,所述连线单元用于插入相应的代码片段,完成模块连线,包括执行如下操作:
从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,子模块实例化起始行号处插入例化代码片段,其中源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;
从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;
对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述芯片连线方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述芯片连线方法的步骤。
本发明的上述技术方案具有如下优点:本发明提供了一种芯片连线方法及装置、计算机设备、计算机可读存储介质,本发明针对层次化设计的芯片,提供了一种自动化进行模块间连线与文本修改的技术方案,能够自动补全模块间的连线路径,并根据待添加的信号内容高效地插入相应代码,完成接口修改,设计人员无需逐个文件打开再修改,有效减少了人工劳动与操作错误,降低芯片模块接口变更的复杂度。
附图说明
图1是一种芯片的层次化设计示意图;
图2是一种芯片的模块间连线的需求示意图;
图3是本发明实施例中一种芯片连线方法步骤示意图;
图4是本发明实施例中另一种芯片连线方法步骤示意图;
图5是本发明实施例中一种芯片连线装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1和图2所示,对于一个层次化设计的芯片,其包括的模块有:顶层模块、一级模块A、一级模块B、二级模块a、二级模块b、二级模块c、二级模块d、三级模块i、三级模块ii、三级模块iii和三级模块iv,各模块的具体层次关系如图1所示。如图2所示,若从三级模块i到三级模块iii之间增加一组接口信号(即跨模块传输的线网信号),需要跨越4个层次(hierarchy),涉及到7个文件修改,至少13处代码修改点,若依赖设计人员逐个修改,不仅耗时,而且易错。
如图3所示,本发明实施例提供的一种芯片连线方法,包括:
步骤100,获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待连线的两个模块之间待添加的信号列表。
其中,待连线的两个模块之间的连接关键点描述包括源点模块(source)、顶层模块(top)和终点模块(destination)三个模块的模块名称。
信号列表包括至少一个信号,每个信号中均包括信号方向、信号位宽和信号名称,其中信号方向是以源点模块为参考端的信号方向。
文件列表(file list)包含全部有效文件的文件名称和存储路径信息(举例:/linux/modules/sram/spsram_128x32.v),全部有效文件中需包含芯片完整的逻辑层级。按照设计规范,通常一个文件中只包含一个模块。为确保连接路径唯一,本发明中,层次化设计芯片的每个模块只在一个文件中声明定义,只在另一个文件中被实例化使用。
优选地,上述步骤100可通过命令行工具实现,命令行输入即包括三项内容:1)当前芯片数字电路的文件列表;2)待连线的两个模块之间的连接关键点描述;3)当前待添加的信号列表。当添加信号较少时,可以直接以i:1:i_sig_add格式写在命令行中,以空格分割;当添加信号较多时,可以列在txt文件中,以换行分割。
步骤102,基于获取的信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段。
步骤104,基于文件列表,建立从文件名称到该文件所声明的模块名称再到文件内该模块的端口声明起始行号的映射列表。
一个文件所声明的模块名称,即在该文件中声明定义的模块的名称,而非在该文件中被实例化使用的模块的名称。一个模块在一个文件中声明定义的起始位置,即文件内该模块的端口声明起始行号。一个模块内可能实例化使用0个或若干个其他模块,被实例化的模块一般称为子模块。
步骤106,基于待连线的两个模块之间的连接关键点描述和映射列表对芯片的文件进行文本检索,确定源点模块与终点模块之间的唯一连线路径,以及所途经的各个文件,即,自动补齐关键点描述路径上的其他途经文件。
源点模块与终点模块之间的唯一连线路径包括两条子路径,一条从源点模块到顶层模块,另一条从终点模块到顶层模块,每条子路径途经若干模块。连线路径所途经的各个文件,即关键点描述路径上各个模块的声明定义所在的文件。
以图1和图2为例,从源点模块(即三级模块i)到终点模块(即三级模块iii)之间的唯一连线路径包括两条子路径,一条途经三级模块i→二级模块b→一级模块A→顶层模块,另一条途经三级模块iii→二级模块c→一级模块B→顶层模块。
采用该方式不需要真正去解析处理电路结构,降低了处理的复杂度。
步骤108,确定连线路径所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。
本发明提供的方法自动补全源点模块至终点模块间的唯一连线路径,并采用代码自动插入和补全的方式实现模块间的连线与信号的添加,设计人员无需手动查找所途经的各个文件,逐个文件打开再逐个修改,只需要打开修改后的工程,和修改前略作对比检查即可,有效节约人工成本,降低连线的错误率。实际进行芯片制造时,连线涉及模块的层次越深,应用本发明的效果越明显。
进一步地,步骤102中,包括:
基于信号列表,提取信号方向、信号位宽和信号名称;
根据信号方向、信号位宽和信号名称生成近源(source)端代码片段;近源端代码片段用于插入从源点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号从源点模块到顶层模块,保证跨层次信号的逻辑连通性和方向正确性;
根据信号方向、信号位宽和信号名称生成近终(destination)端代码片段;近终端代码片段用于插入从终点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号从顶层模块到终点模块,保证跨层次信号的逻辑连通性和方向正确性;
根据信号方向、信号位宽和信号名称生成例化代码片段;例化代码片段用于插入关键点描述路径上除源点模块和终点模块外其他模块对应的所有文件,以使得模块在文件中被实例化;
根据信号方向、信号位宽和信号名称生成顶层代码片段;顶层代码片段用于插入顶层模块对应的文件,以完成线网信号的声明,并完成两个方向的信号对接,保证跨层次信号的逻辑连通性和方向正确性。
其中,模块对应的文件,指的是模块声明定义所在的文件,而不是模块被实例化使用的文件。考虑到信号的传输过程,近源端代码片段和近终端代码片段主要区别是信号方向的定义相反。这样才能保证插入的代码片段构成的逻辑和语法都是正确的,可以被EDA工具处理,可以正确描述电路的连线的情况。
在一个具体的实施方式中,若待添加的信号列表为:
i:1:clk_in
i:1:rstn_in
o:8:data_out
则相应的近源端代码片段为:
input clk_in,
input rstn_in,
output[7:0]data_out,
相应的近终端代码片段为:
output clk_in,
output rstn_in,
input[7:0]data_out,
相应的线网(wire)代码片段为:
wire clk_in;
wire rstn_in;
wire[7:0]data_out;
相应的例化代码片段为:
.clk_in(clk_in),
.rstn_in(rstn_in),
.data_out(data_out)
进一步地,步骤106中进行文本检索包括:
对于两个模块之间的连接关键点描述中的源点模块和顶层模块,根据源点模块的模块名称进行文本检索,确定源点模块分别在哪一文件中声明定义以及在哪一文件中被实例化使用。设源点模块在文件i中声明定义(即文件i中包含源点模块的声明定义,文件i为源点模块对应的源点文件),源点模块在文件b中被实例化使用(即文件b中包含源点模块的实例化,文件b为源点文件的后一级文件),进一步在文件b中进行文本检索,确定文件b中声明定义的模块名称(设为二级模块b,源点模块为二级模块b的前级模块,也即层次化意义上的子模块,简称子模块),然后再进行文本检索,确定该模块(即二级模块b)分别在哪一文件中声明定义以及在哪一文件中被实例化使用,以此类推,直到建立起从源点模块到顶层模块的唯一路径。同理,对于两个模块之间的连接关键点描述中的顶层模块和终点模块,根据终点模块的模块名称进行文本检索,确定终点模块分别在哪一文件中声明定义以及在哪一文件中被实例化使用,设终点模块在文件iii中声明定义,在文件c中被实例化使用,则进一步在文件c中进行文本检索,确定文件c中声明定义的模块名称(设为二级模块c),然后再进行文本检索,确定该模块(即二级模块c)分别在哪一文件中声明定义以及在哪一文件中被实例化使用,直到建立起从终点模块到顶层模块的唯一连线路径。
进一步地,步骤108中,确定所途经的各个文件中对应的代码插入位置,包括:
对于源点模块和终点模块,确定源点模块和终点模块对应的文件中,1)模块相应的端口声明起始行号一个位置;
对于除顶层模块、源点模块和终点模块以外的所有模块,确定各模块对应的文件中,1)模块相应的端口声明起始行号,以及2)子模块实例化起始行号两个位置;
对于顶层模块,确定顶层模块对应的文件中1)线网(wire)声明起始行号,以及2)&3)连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置。
除源点模块和终点模块外,各模块的子模块(或称前级模块)在步骤106中进行文本检索时可确定,例如:对于模块x,包含其实例化使用的文件为Y,文件Y中声明定义的模块为y,此时模块x就是模块y的子模块,文件Y中实例化使用模块x的起始位置,即文件Y内的子模块实例化起始行号。
进一步地,步骤108中,插入相应的代码片段,完成模块连线,包括:
(1)从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,在子模块实例化起始行号处插入例化代码片段,其中,源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;源点模块不考虑更下一层级的实例化子模块;
(2)从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;终点模块不考虑更下一层级的实例化子模块;
(3)对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,另两个确定的位置,即连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
上述实施方式中,通过逐个文件的修改能够避免错漏连线路径所途经模块,减少不必要的错误注入。且上述(1)~(3)步骤可以同步进行,以提高处理效率。
在一些实施方式中,该芯片连线方法还包括:
步骤110,输出信号列表及源点模块与终点模块之间的唯一连线路径。
通过输出自动补全的连线路径及添加的信号列表,设计人员能够更加快捷地对修改后的工程进行检查确认。
如图4所示,本发明还提供了一种芯片连线方法,包括:
200、获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;
202、基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段,包括近源端代码片段、近终端代码片段、例化代码片段和顶层代码片段;
204、基于文件列表,建立从文件名称到该文件所声明的模块名称再到该模块的端口声明起始行号的映射列表;
206、基于待连线的两个模块之间的连接关键点描述和映射列表对芯片的文件进行文本检索,确定源点模块与终点模块之间的唯一连线路径及所途经的各个文件;
208、对于源点模块和终点模块,确定对应的文件中相应的端口声明起始行号一个位置,对于除顶层模块、源点模块和终点模块以外的模块,确定对应的文件中相应的端口声明起始行号及子模块实例化起始行号两个位置;
210、对于顶层模块,确定对应的文件中线网声明起始行号,以及连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置;
212、从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,子模块实例化起始行号处插入例化代码片段,其中源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;
214、从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;
216、对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
如图5所示,本发明还提供了一种芯片连线装置,包括:获取单元300、代码单元302、映射单元304、路径单元306和连线单元308,其中:
获取单元300用于获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;其中,待连线的两个模块之间的连接关键点描述包括源点模块、顶层模块和终点模块三个模块的模块名称;信号列表包括至少一个信号,每个信号中包括信号方向、信号位宽和信号名称;
代码单元302用于基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段;
映射单元304用于基于文件列表,建立从文件名称到该文件所声明的模块名称再到该模块的端口声明起始行号的映射列表;
路径单元306用于基于待连线的两个模块之间的连接关键点描述和映射列表对芯片的文件进行文本检索,确定源点模块与终点模块之间的唯一连线路径及所途经的各个文件;
连线单元308确定所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。
在一些具体的实施方式中,获取单元300可用于执行上述步骤100,代码单元302可用于执行上述步骤102,映射单元304可用于执行上述步骤104,路径单元306可用于执行上述步骤106,连线单元308可用于执行上述步骤108。
在一些可选的实施方式中,代码单元302用于执行如下操作:
基于信号列表,提取信号方向、信号位宽和信号名称;
根据信号方向、信号位宽和信号名称生成近源端代码片段;近源端代码片段用于插入从源点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从源点模块到顶层模块;
根据信号方向、信号位宽和信号名称生成近终端代码片段;近终端代码片段用于插入从终点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从顶层模块到终点模块;
根据信号方向、信号位宽和信号名称生成例化代码片段;例化代码片段用于插入除源点模块和终点模块外其他模块对应的所有文件,以使得模块在文件中被实例化;
根据信号方向、信号位宽和信号名称生成顶层代码片段;所述顶层代码片段用于插入顶层模块对应的文件,以完成线网信号的声明,并完成两个方向的信号对接。
在一些可选的实施方式中,连线单元308用于确定所途经的各个文件中对应的代码插入位置,包括执行如下操作:
对于源点模块和终点模块,确定对应的文件中相应的端口声明起始行号一个位置;
对于除顶层模块、源点模块和终点模块以外的模块,确定对应的文件中相应的端口声明起始行号及子模块实例化起始行号两个位置;
对于顶层模块,确定对应的文件中线网声明起始行号,以及连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置。
在一些可选的实施方式中,连线单元308用于插入相应的代码片段,完成模块连线,包括执行如下操作:
从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,子模块实例化起始行号处插入例化代码片段,其中源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;
从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;
对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
上述芯片连线装置的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
特别地,在本发明一些优选的实施方式中,还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式中所述芯片连线方法的步骤。
在本发明另一些优选的实施方式中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施方式中所述芯片连线方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述芯片连线方法实施例的流程,在此不再重复说明。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种芯片连线方法,其特征在于,包括:
获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;其中,待连线的两个模块之间的连接关键点描述包括源点模块、顶层模块和终点模块三个模块的模块名称;信号列表包括至少一个信号,每个信号中包括信号方向、信号位宽和信号名称;
基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段;
基于文件列表,建立从文件名称到该文件所声明的模块名称再到该模块的端口声明起始行号的映射列表;
基于待连线的两个模块之间的连接关键点描述和所述映射列表对芯片的文件进行文本检索,确定所述源点模块与所述终点模块之间的唯一连线路径及所途经的各个文件;
确定所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。
2.根据权利要求1所述的芯片连线方法,其特征在于:
所述基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段,包括:
基于信号列表,提取信号方向、信号位宽和信号名称;
根据信号方向、信号位宽和信号名称生成近源端代码片段;所述近源端代码片段用于插入从源点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从源点模块到顶层模块;
根据信号方向、信号位宽和信号名称生成近终端代码片段;所述近终端代码片段用于插入从终点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从顶层模块到终点模块;
根据信号方向、信号位宽和信号名称生成例化代码片段;例化代码片段用于插入除源点模块和终点模块外其他模块对应的所有文件,以使得模块在文件中被实例化;
根据信号方向、信号位宽和信号名称生成顶层代码片段;所述顶层代码片段用于插入顶层模块对应的文件,以完成线网信号的声明,并完成两个方向的信号对接。
3.根据权利要求2所述的芯片连线方法,其特征在于:
所述确定所途经的各个文件中对应的代码插入位置,包括:
对于源点模块和终点模块,确定对应的文件中相应的端口声明起始行号一个位置;
对于除顶层模块、源点模块和终点模块以外的模块,确定对应的文件中相应的端口声明起始行号及子模块实例化起始行号两个位置;
对于顶层模块,确定对应的文件中线网声明起始行号,以及所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置。
4.根据权利要求3所述的芯片连线方法,其特征在于:
所述插入相应的代码片段,完成模块连线,包括:
从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,子模块实例化起始行号处插入例化代码片段,其中源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;
从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;
对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
5.一种芯片连线装置,其特征在于,包括:
获取单元,用于获取芯片的文件列表,待连线的两个模块之间的连接关键点描述以及待添加的信号列表;其中,待连线的两个模块之间的连接关键点描述包括源点模块、顶层模块和终点模块三个模块的模块名称;信号列表包括至少一个信号,每个信号中包括信号方向、信号位宽和信号名称;
代码单元,用于基于信号列表,提取信号方向、信号位宽和信号名称,生成相应的代码片段;
映射单元,用于基于文件列表,建立从文件名称到该文件所声明的模块名称再到该模块的端口声明起始行号的映射列表;
路径单元,用于基于待连线的两个模块之间的连接关键点描述和所述映射列表对芯片的文件进行文本检索,确定所述源点模块与所述终点模块之间的唯一连线路径及所途经的各个文件;
连线单元,确定所途经的各个文件中对应的代码插入位置,并插入相应的代码片段,完成模块连线。
6.根据权利要求5所述的芯片连线装置,其特征在于:
所述代码单元用于执行如下操作:
基于信号列表,提取信号方向、信号位宽和信号名称;
根据信号方向、信号位宽和信号名称生成近源端代码片段;所述近源端代码片段用于插入从源点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从源点模块到顶层模块;
根据信号方向、信号位宽和信号名称生成近终端代码片段;所述近终端代码片段用于插入从终点模块到顶层模块但除顶层模块外对应的各个文件,以使得信号能够从顶层模块到终点模块;
根据信号方向、信号位宽和信号名称生成例化代码片段;例化代码片段用于插入除源点模块和终点模块外其他模块对应的所有文件,以使得模块在文件中被实例化;
根据信号方向、信号位宽和信号名称生成顶层代码片段;所述顶层代码片段用于插入顶层模块对应的文件,以完成线网信号的声明,并完成两个方向的信号对接。
7.根据权利要求6所述的芯片连线装置,其特征在于:
所述连线单元用于确定所途经的各个文件中对应的代码插入位置,包括执行如下操作:
对于源点模块和终点模块,确定对应的文件中相应的端口声明起始行号一个位置;
对于除顶层模块、源点模块和终点模块以外的模块,确定对应的文件中相应的端口声明起始行号及子模块实例化起始行号两个位置;
对于顶层模块,确定对应的文件中线网声明起始行号,以及所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号三个位置。
8.根据权利要求7所述的芯片连线装置,其特征在于:
所述连线单元用于插入相应的代码片段,完成模块连线,包括执行如下操作:
从源点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近源端代码片段,子模块实例化起始行号处插入例化代码片段,其中源点模块只在对应的文件中端口声明起始行号处插入近源端代码片段;
从终点模块到顶层模块但除顶层模块外,逐个在各模块对应的文件中相应的端口声明起始行号处插入近终端代码片段,子模块实例化起始行号处插入例化代码片段,其中终点模块只在对应的文件中端口声明起始行号处插入近终端代码片段;
对于顶层模块对应的文件,在文件中线网声明起始行号处插入顶层代码片段,所述连线路径中与顶层模块直接连接的两个子模块分别对应的实例化起始行号处均插入例化代码片段。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述芯片连线方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述芯片连线方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210070504.5A CN114417779A (zh) | 2022-01-21 | 2022-01-21 | 芯片连线方法及装置、计算机设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210070504.5A CN114417779A (zh) | 2022-01-21 | 2022-01-21 | 芯片连线方法及装置、计算机设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114417779A true CN114417779A (zh) | 2022-04-29 |
Family
ID=81276208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210070504.5A Pending CN114417779A (zh) | 2022-01-21 | 2022-01-21 | 芯片连线方法及装置、计算机设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114417779A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313622A (zh) * | 2023-10-27 | 2023-12-29 | 深圳华芯盛软件科技有限公司 | 一种芯片设计中模块层次调整的方法、设备及介质 |
-
2022
- 2022-01-21 CN CN202210070504.5A patent/CN114417779A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313622A (zh) * | 2023-10-27 | 2023-12-29 | 深圳华芯盛软件科技有限公司 | 一种芯片设计中模块层次调整的方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20020046391A1 (en) | Method for generating behavior model description of circuit and apparatus for logic verification | |
CN113569524B (zh) | 芯片设计中基于综合网表提取时钟树的方法及应用 | |
CN114861578B (zh) | 保持时间违例修复方法、装置、设备及存储介质 | |
CN114818553B (zh) | 一种芯片集成设计方法 | |
CN114861581B (zh) | 基于图像识别的可编程逻辑器件的辅助编程设计方法 | |
US7584448B1 (en) | Constructing a model of a programmable logic device | |
CN114417779A (zh) | 芯片连线方法及装置、计算机设备、计算机可读存储介质 | |
CN113703739B (zh) | 基于omiga引擎的跨语言融合计算方法、系统及终端 | |
CN113850041A (zh) | 用于集成电路时序设计中的自动修正系统及方法 | |
CN111880803B (zh) | 一种应用于多平台的软件构建方法及装置 | |
US7073153B2 (en) | Route searching method and storage medium thereof | |
US9053265B2 (en) | Generating test benches for pre-silicon validation of retimed complex IC designs against a reference design | |
US7451423B1 (en) | Determining indices of configuration memory cell modules of a programmable logic device | |
US7451420B1 (en) | Determining reachable pins of a network of a programmable logic device | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN110941932B (zh) | 一种面向硬件逻辑设计的需求建模与验证方法 | |
WO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
JP2010134598A (ja) | 論理検証装置 | |
US6453448B1 (en) | Functional level configuration of input-output test circuitry | |
US7451424B1 (en) | Determining programmable connections through a switchbox of a programmable logic device | |
US7536668B1 (en) | Determining networks of a tile module of a programmable logic device | |
CN117574817B (zh) | 自适应时序变化的设计自动化验证方法、系统及验证平台 | |
CN116431582B (zh) | 一种自动化扩展硬件设计电路资源的方法 | |
CN113064771B (zh) | 一种i2c链路检查方法、系统、终端及存储介质 | |
CN118070724B (zh) | Fpga延时优化方法、装置、计算机设备及存储介质 |
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 |