CN115185486A - 用于生成asic结构声明的方法、装置及存储介质 - Google Patents
用于生成asic结构声明的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115185486A CN115185486A CN202211108104.5A CN202211108104A CN115185486A CN 115185486 A CN115185486 A CN 115185486A CN 202211108104 A CN202211108104 A CN 202211108104A CN 115185486 A CN115185486 A CN 115185486A
- Authority
- CN
- China
- Prior art keywords
- module
- port
- file
- generating
- declaration
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及集成电路技术领域,公开一种用于生成专用集成电路ASIC结构声明的方法。该方法能够根据ASIC模块设计需求,自动提取端口数据,并生成模块结构声明文件以及顶层结构声明文件。由于顶层结构声明文件中包含的内容与模块结构声明文件中包含的内容均对应于ASIC设计需求,因此通过本公开实施例提供的上述方法,可以无需人工编码,也无需人工排查,有效提高了ASIC结构声明的效率,并且保证了模块结构声明和顶层结构声明的一致性。本申请还公开一种用于生成ASIC结构声明的装置及存储介质。
Description
技术领域
本申请涉及集成电路技术领域,例如涉及一种用于生成ASIC结构声明的方法、装置及存储介质。
背景技术
近年来,随着微电子技术的发展,集成电路的规模迅速膨胀,为了配合更加复杂的需求,集成电路中的模块日益复杂化,接口也越来越丰富。
在应用时,通常需要人工完成多个模块的结构声明以及顶层模块的实例化,在完成结构声明文件的建立后,还需要人工进行核对。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
人工编写结构声明的过程会耗费大量时间,并且容易引入人为因此造成的失误。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于生成ASIC结构声明的方法、装置和存储介质,以提高ASIC结构声明的效率,保证了模块结构声明和顶层结构声明的一致性。
在一些实施例中,上述方法包括:获取设计文档;其中,设计文档用于表征以预设形式表示的ASIC模块设计需求;从设计文档中提取端口数据;其中,端口数据用于表征端口所属模块以及端口的属性信息;根据设计文档、端口数据以及预设编码规范,生成ASIC模块的结构声明文件;其中,结构声明文件包括所有模块对应的模块结构声明文件以及顶层模块对应的顶层结构声明文件。
采用本公开实施例提供的用于生成ASIC结构声明的方法,能够根据ASIC模块设计需求,自动提取端口数据,并生成模块结构声明文件以及顶层结构声明文件。由于顶层结构声明文件中包含的内容与模块结构声明文件中包含的内容均对应于ASIC设计需求,因此通过本公开实施例提供的上述方法,可以无需人工编码,也无需人工排查,有效提高了ASIC结构声明的效率,并且保证了模块结构声明和顶层结构声明的一致性。
可选地,预设形式为预设表格;从设计文档中提取端口数据的步骤,包括:根据预设表格中的指定标识分别提取每个端口对应的端口数据;其中,端口数据至少包括模块名称、端口名称、端口位宽、端口的输出输入类型以及端口的初始值。这样,设计文档中的表格,用户可以仅在表格对应位置输入设计需求,例如端口名称和端口信息等,结构简单易操作。
可选地,预设表格中的指定标识为每一列对应的列号。
可选地,方法还包括:将端口数据存入数组中,多个端口对应的端口数据形成模块数组矩阵。
可选地,根据设计文档、端口数据以及预设编码规范,生成ASIC模块的结构声明文件的步骤,包括:根据端口数据以及预设编码规范,生成所有模块对应的模块文件;其中,每个模块文件中包含该模块对应的端口信息;根据设计文档、端口数据以及预设编码规范,生成顶层模块对应的顶层模块文件;其中,顶层模块代码中包含所有模块对应的端口信息以及所有模块的实例化信息。这样,首先生成模块文件,第二阶段生成顶层模块的文件,保证了模块文件与顶层文件均自动化生成,避免了人工操作带来的时间消耗。
可选地,根据端口数据以及预设编码规范,生成所有模块对应的模块文件的步骤,包括:创建各个模块对应的模块文件;根据属于同一个模块的端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的端口声明代码;其中,端口声明代码包括模块名称以及该模块对应的所有端口的端口名称;根据每个端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的模块代码;其中,模块代码至少包括该模块包含的所有端口的输入输出类型、端口位宽、端口初始值。
可选地,设计文档中还包括顶层模块名称;根据设计文档、端口数据以及预设编码规范,生成顶层模块对应的顶层模块文件的步骤,包括:创建顶层模块名称对应的顶层模块文件;根据所有端口对应的端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层端口定义代码;其中,顶层端口定义代码包括顶层模块名称以及所有端口的端口名称;根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层模块代码;其中,顶层模块代码至少包括所有模块的所有端口对应的输入输出类型、位宽、初始值;根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的模块实例化代码;其中,模块实例化代码包括所有模块的模块名称,以及各个模块包含的所有端口对应的端口名称。
在一些实施例中,上述装置包括:获取模块,用于获取设计文档;其中,设计文档用于表征以预设形式表示的ASIC模块设计需求;数据提取模块,用于从设计文档中提取端口数据;其中,端口数据用于表征端口所属模块以及端口的属性信息;生成模块,用于根据设计文档、端口数据以及预设编码规范,生成ASIC模块的结构声明文件;其中,结构声明文件包括所有模块对应的模块结构声明文件以及顶层模块对应的顶层结构声明文件。
在一些实施例中,上述装置包括:处理器和存储有程序指令的存储器,处理器被配置为在执行程序指令时,执行上述的用于生成ASIC结构声明的方法。
在一些实施例中,上述存储介质存储有计算机可执行指令,计算机可执行指令设置为执行上述的用于生成ASIC结构声明的方法。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于生成ASIC结构声明的装置的结构示意图;
图2是本公开实施例提供的一个用于生成ASIC结构声明的方法的流程示意图;
图3是本公开实施例提供的另一个用于生成ASIC结构声明的方法的流程示意图;
图4是本公开实施例提供的一个在实际应用场景中生成ASIC结构声明文件的方法流程图;
图5是本公开实施例提供的一个用于生成ASIC结构声明的装置的结构示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
随着芯片规模的快速增长,在ASIC前端设计的过程中会涉及到对模块结构声明以及顶层例化。相关技术中,模块结构声明方式首先根据模块文档,创建以模块命名的Verilog文件,并初步完成每个模块的端口定义。接下来,在完成每个模块的端口定义后,根据每个模块的端口定义结合文档,完成模块的I/O声明,并将模块使用的与端口有关的类型变量声明,该过程中需要严格按照数字设计编码规范。再然后,定义完成每个模块后,需要创建顶层文件,根据文档完成端口定义,并将之前生成的每个模块进行实例化。最后,在完成模块以及顶层文件声明后,需要人为编译代码,逐个排查是否有缺漏或者编码错误。
相关技术中的方式,当模块的数量极大时,过程将十分繁琐,且会耗费大量时间。由于需要反复对照文档会非常耗时并可能引入人为错误,亦或由于编码不符合规范,造成模块定义混乱。在多个模块进行实例化的过程中,非常容易引入人为错误,或者由于不符合代码格式规范,导致可读性变差。基于此,本公开实施例提供一种用于生成ASIC结构声明的方法、装置和存储介质,以提高ASIC结构声明的效率,保证了模块结构声明和顶层结构声明的一致性。
结合图1所示,本公开实施例提供一种用于生成ASIC结构声明的装置,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行本公开实施例的用于生成ASIC结构声明的方法。
此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现本公开实施例中用于生成ASIC结构声明的方法。
存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
结合图2所示,本公开实施例提供一种用于生成ASIC结构声明的方法,该方法应用于一终端,例如电脑、智能终端等。具体实施时,可以首先获取脚本文件,脚本文件可以是直接在终端中编写生成,或者可以从服务器直接获取。如图2所示,该方法包括:
S201:终端获取设计文档。
其中,设计文档用于表征以预设形式表示的ASIC模块设计需求。设计文档可以是直接从服务器获取的设计文档,也可以在获取设计文档后在本地电子设备中进行修改后的设计文档,还可以是每次直接生成一个新的设计文档。
S202:终端从设计文档中提取端口数据。
其中,端口数据用于表征端口所属模块以及端口的属性信息。设计文档中用不同的标识表示本次设计所需的所有端口,以及各个端口对应的属性信息,属性信息是体现端口和端口之间区别的信息。端口数据至少包括每个端口对应的模块名称、端口名称、端口位宽、端口输入输出类型以及初始值。提取端口信息后可以将端口信息生成代码,以供编码时进行模块调用。
S203:终端根据设计文档、端口数据以及预设编码规范,生成ASIC模块的结构声明文件。
其中,结构声明文件包括所有模块对应的模块结构声明文件以及顶层模块对应的顶层结构声明文件。ASIC模块的结构声明包括各个模块的结构声明以及顶层模块的结构声明,通过结构声明,可以明确顶层模块和底层模块之间的调用关系和输出输出关系。结构声明文件中具体包括各个模块或顶层模块的名称、包含的端口列表以及每个端口的属性等。
采用本公开实施例提供的用于生成ASIC结构声明的方法,能够根据ASIC模块设计需求,自动提取端口数据,并生成模块结构声明文件以及顶层结构声明文件。由于顶层结构声明文件中包含的内容与模块结构声明文件中包含的内容均对应于ASIC设计需求,因此通过本公开实施例提供的上述方法,可以无需人工编码,也无需人工排查,有效提高了ASIC结构声明的效率,并且保证了模块结构声明和顶层结构声明的一致性。
可选地,预设形式为预设表格。上述从设计文档中提取端口数据的步骤,包括:根据预设表格中的指定标识分别提取每个端口对应的端口数据;其中,端口数据至少包括模块名称、端口名称、端口位宽、端口的输出输入类型以及端口的初始值。这样,通过设计文档中的预设表格,用户可以仅在预设表格对应位置输入设计需求,例如端口名称和端口信息等,结构简单易操作。
预设文档可以是excel形式的文档,也可以是word形式的文档,还可以是其他可用于文字编辑的文档,本公开实施例对文档的具体形式不进行限定。在预设文档中,通过预设表格体现设计需求。例如,如果是excel,在指定的列输入相应的端口信息。如果是word文档,则在word文档中插入表格,并在表格指定列输入相应的端口信息。
可选地,预设表格中的指定标识为每一列对应的列号。
如下表1所示,为实际应用中的一种word文档中的预设表格。表格中的第一列为模块名称,第二列为端口名称,第三列为端口输入输出类型,第四列为端口的类型,第五列为端口初始值,第六列为功能描述。实际应用中,还可以根据ASIC设计需求添加或者删除列,本公开实施例对预设表格的具体结构和列数不进行限定。
表1
在提取了预设表格中的端口信息后,可以直接将端口信息存储在内存中,以供后续生成声明文件时直接调用。
可选地,为了提高声明文件的生成速度,从设计文档中提取端口数据的步骤之后,方法还包括:将端口数据存入数组中,多个端口对应的端口数据形成模块数组矩阵。
具体地,完成文件夹创建后,提取的端口信息,并分别存入存储数组。完成该步骤后,将查找端口输入输出类型并进行提取,将该信息与端口信息进行对应。最后将模块名称与带有位宽和输入输出类型的端口信息进行整合,存入临时数组矩阵,为后续生成声明文件做准备。
在一些实施方式中,在获取设计文档后,需要根据设计文档创建对应的结构声明文件,在一些示例中,可以直接在固定路径下一次建立不重名的文件夹,以存放生成的结构声明文件。在另一些示例中,设计文档中包括文件夹生成路径以及待生成的文件夹名称。首先确定该文件夹生成路径下是否存在与待生成的文件夹名称同名的文件夹。如果存在,则提示命名冲突。否则,建立待生成的文件夹,然后在此文件夹下开始建立结构声明文件。
可选地,上述根据设计文档、端口数据以及预设编码规范,生成ASIC模块的结构声明文件的步骤,包括:根据端口数据以及预设编码规范,生成所有模块对应的模块文件;其中,每个模块文件中包含该模块对应的端口信息;根据设计文档、端口数据以及预设编码规范,生成顶层模块对应的顶层模块文件;其中,顶层模块代码中包含所有模块对应的端口信息以及所有模块的实例化信息。这样,首先生成模块文件,第二阶段生成顶层模块的文件,保证了模块文件与顶层文件均自动化生成,避免了人工操作带来的时间消耗。
可选地,上述根据端口数据以及预设编码规范,生成所有模块对应的模块文件的步骤,包括:创建各个模块对应的模块文件;根据属于同一个模块的端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的端口声明代码;其中,端口声明代码包括模块名称以及该模块对应的所有端口的端口名称;根据每个端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的模块代码;其中,模块代码至少包括该模块包含的所有端口的输入输出类型、端口位宽、端口初始值。
例如,以m1作为模块名称,m1可以包括三个信号线,分别为a、b和c,即三个端口。其中,端口a为输入类型,端口b为输入类型,端口c为输出类型,那么最终形成的端口文件中可以包括如下代码:
Module m1(a,
b,
c);
Input a,b;
Output [3:0] c;
Endmodule
可选地,上述设计文档中还包括顶层模块名称。上述根据设计文档、端口数据以及预设编码规范,生成顶层模块对应的顶层模块文件的步骤,包括:创建顶层模块名称对应的顶层模块文件;根据所有端口对应的端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层端口定义代码;其中,顶层端口定义代码包括顶层模块名称以及所有端口的端口名称;根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层模块代码;其中,顶层模块代码至少包括所有模块的所有端口对应的输入输出类型、位宽、初始值;根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的模块实例化代码;其中,模块实例化代码包括所有模块的模块名称,以及各个模块包含的所有端口对应的端口名称。
例如,顶层模块的模块名称为top,其中包含两个模块m1和m2,顶层模块包含四个端口,分别为a、b、c和d。那么顶层模块文件中包含的代码内容为:
Module top(
//Mod1
a,
b,
c,
//Mod2
d,
e);
Input a;
Input [1:0] b;
Inout d;
Output c,d;
Mod1 m1(
.a(a),
.b(b),
.c(c)
);
Mod2 m2(
.d(d),
.e(e)
);
Endmodule
结合图3所示,为本申请实施例提供的另一种用于生成ASIC结构声明文件的方法,如图3所示,该方法具体包括以下步骤:
S301:终端获取设计文档。
其中,设计文档用于表征以预设形式表示的ASIC模块设计需求。预设形式为预设表格。
S302:终端根据预设表格中的指定标识分别提取每个端口对应的端口数据。
其中,端口数据至少包括模块名称、端口名称、端口位宽、端口的输出输入类型以及端口的初始值。预设表格中的指定标识为每一列对应的列号。
S303:终端将端口数据存入数组中,多个端口对应的端口数据形成模块数组矩阵。
S304:终端创建各个模块对应的模块文件。
S305:终端根据属于同一个模块的端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的端口声明代码。
其中,端口声明代码包括模块名称以及该模块对应的所有端口的端口名称。
S306:终端根据每个端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的模块代码。
其中,模块代码至少包括该模块包含的所有端口的输入输出类型、端口位宽、端口初始值。设计文档中还包括顶层模块名称。
S307:终端创建顶层模块名称对应的顶层模块文件。
S308:终端根据所有端口对应的端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层端口定义代码。
其中,顶层端口定义代码包括顶层模块名称以及所有端口的端口名称。
S309:终端根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层模块代码。
其中,顶层模块代码至少包括所有模块的所有端口对应的输入输出类型、位宽、初始值。
S310:终端根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的模块实例化代码。
其中,模块实例化代码包括所有模块的模块名称,以及各个模块包含的所有端口对应的端口名称。
为了便于理解,下面结合图4所示,详细说明在实际应用中生成ASIC结构声明文件的方法,该方法运行于一终端:
S401:终端运行结构声明文件的生成脚本。
S402:终端读取设计文档中的文件夹路径和模块结构声明文件夹的文件夹名称。
S403:终端判断文件夹路径中是否存在同名文件夹,如果是,执行步骤S404;否则,执行步骤S405。
S404:终端提示文件夹已存在的错误。
S405:终端读取设计文档中的预设表格,将表格中各个列中属于一个端口名称的端口位宽、端口输入输出类型和端口初始值存储在一个数组中。
S406:终端将属于同一个模块的端口信息存储在一个数组矩阵中。
S407:终端创建以模块名称命名的模块文件。
S408:终端编写模块的端口声明代码。
S409:终端编写模块对应的模块代码。
S410:终端判断是否所有模块的模块文件都已建立。如果是,执行步骤S411;否则,重新执行步骤S407。
S411:终端创建以顶层模块名称命名的顶层模块文件。
S412:终端编写顶层模块的端口声明代码。
S413:终端编写顶层模块对应的模块代码。
S414:终端编写各个模块的实例化代码。
结合图5所示,本公开实施例提供一种用于生成ASIC结构声明的装置,包括获取模块51、数据提取模块52和生成模块53。其中,获取模块51用于获取设计文档;其中,设计文档用于表征以预设形式表示的ASIC模块设计需求。数据提取模块52用于从设计文档中提取端口数据;其中,端口数据用于表征端口所属模块以及端口的属性信息。生成模块53用于根据设计文档、端口数据以及预设编码规范,生成ASIC模块的结构声明文件;其中,结构声明文件包括所有模块对应的模块结构声明文件以及顶层模块对应的顶层结构声明文件。
采用本公开实施例提供的用于生成ASIC结构声明的装置,能够根据ASIC模块设计需求,自动提取端口数据,并生成模块结构声明文件以及顶层结构声明文件。由于顶层结构声明文件中包含的内容与模块结构声明文件中包含的内容均对应于ASIC设计需求,因此可以无需人工编码,也无需人工排查,有效提高了ASIC结构声明的效率,并且保证了模块结构声明和顶层结构声明的一致性。
可选地,预设形式为预设表格;数据提取模块52还用于:根据预设表格中的指定标识分别提取每个端口对应的端口数据;其中,端口数据至少包括模块名称、端口名称、端口位宽、端口的输出输入类型以及端口的初始值。这样,通过设计文档中的表格,用户可以仅在表格对应位置输入设计需求,例如端口名称和端口信息等,结构简单易操作。
可选地,预设表格中的指定标识为每一列对应的列号。
可选地,上述装置还包括:存储模块,用于将端口数据存入数组中,多个端口对应的端口数据形成模块数组矩阵。
可选地,生成模块53还用于:根据端口数据以及预设编码规范,生成所有模块对应的模块文件;其中,每个模块文件中包含该模块对应的端口信息;根据设计文档、端口数据以及预设编码规范,生成顶层模块对应的顶层模块文件;其中,顶层模块代码中包含所有模块对应的端口信息以及所有模块的实例化信息。这样,首先生成模块文件,第二阶段生成顶层模块的文件,保证了模块文件与顶层文件均自动化生成,避免了人工操作带来的时间消耗。
可选地,根据端口数据以及预设编码规范,生成所有模块对应的模块文件的过程,包括:创建各个模块对应的模块文件;根据属于同一个模块的端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的端口声明代码;其中,端口声明代码包括模块名称以及该模块对应的所有端口的端口名称;根据每个端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的模块代码;其中,模块代码至少包括该模块包含的所有端口的输入输出类型、端口位宽、端口初始值。
可选地,设计文档中还包括顶层模块名称;根据设计文档、端口数据以及预设编码规范,生成顶层模块对应的顶层模块文件的过程,包括:创建顶层模块名称对应的顶层模块文件;根据所有端口对应的端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层端口定义代码;其中,顶层端口定义代码包括顶层模块名称以及所有端口的端口名称;根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的顶层模块代码;其中,顶层模块代码至少包括所有模块的所有端口对应的输入输出类型、位宽、初始值;根据端口信息以及预设编码规范,在顶层模块文件中写入顶层模块对应的模块实例化代码;其中,模块实例化代码包括所有模块的模块名称,以及各个模块包含的所有端口对应的端口名称。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于生成ASIC结构声明的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于生成ASIC结构声明的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于生成专用集成电路ASIC结构声明的方法,其特征在于,所述方法包括:
获取设计文档;其中,所述设计文档用于表征以预设形式表示的ASIC模块设计需求;
从所述设计文档中提取端口数据;其中,所述端口数据用于表征端口所属模块以及端口的属性信息;
根据所述设计文档、所述端口数据以及预设编码规范,生成ASIC模块的结构声明文件;其中,所述结构声明文件包括所有模块对应的模块结构声明文件以及顶层模块对应的顶层结构声明文件。
2.根据权利要求1所述的方法,其特征在于,所述预设形式为预设表格;
从所述设计文档中提取端口数据的步骤,包括:
根据所述预设表格中的指定标识分别提取每个端口对应的端口数据;其中,所述端口数据至少包括模块名称、端口名称、端口位宽、端口的输出输入类型以及端口的初始值。
3.根据权利要求2所述的方法,其特征在于,所述预设表格中的指定标识为每一列对应的列号。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述端口数据存入数组中,多个端口对应的端口数据形成模块数组矩阵。
5.根据权利要求1所述的方法,其特征在于,根据所述设计文档、所述端口数据以及预设编码规范,生成ASIC模块的结构声明文件的步骤,包括:
根据所述端口数据以及预设编码规范,生成所有模块对应的模块文件;其中,每个模块文件中包含该模块对应的端口信息;
根据所述设计文档、所述端口数据以及所述预设编码规范,生成顶层模块对应的顶层模块文件;其中,所述顶层模块代码中包含所有模块对应的端口信息以及所有模块的实例化信息。
6.根据权利要求5所述的方法,其特征在于,根据所述端口数据以及预设编码规范,生成所有模块对应的模块文件的步骤,包括:
创建各个模块对应的模块文件;
根据属于同一个模块的端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的端口声明代码;其中,所述端口声明代码包括模块名称以及该模块对应的所有端口的端口名称;
根据每个端口对应的端口数据以及预设编码规范,在模块文件中写入每个模块对应的模块代码;其中,所述模块代码至少包括该模块包含的所有端口的输入输出类型、端口位宽、端口初始值。
7.根据权利要求5所述的方法,其特征在于,所述设计文档中还包括顶层模块名称;
根据所述设计文档、所述端口数据以及所述预设编码规范,生成顶层模块对应的顶层模块文件的步骤,包括:
创建所述顶层模块名称对应的顶层模块文件;
根据所有端口对应的端口信息以及所述预设编码规范,在顶层模块文件中写入顶层模块对应的顶层端口定义代码;其中,所述顶层端口定义代码包括顶层模块名称以及所有端口的端口名称;
根据所述端口信息以及所述预设编码规范,在顶层模块文件中写入顶层模块对应的顶层模块代码;其中,所述顶层模块代码至少包括所有模块的所有端口对应的输入输出类型、位宽、初始值;
根据所述端口信息以及所述预设编码规范,在顶层模块文件中写入顶层模块对应的模块实例化代码;其中,所述模块实例化代码包括所有模块的模块名称,以及各个模块包含的所有端口对应的端口名称。
8.一种用于生成ASIC结构声明的装置,其特征在于,包括:
获取模块,用于获取设计文档;其中,所述设计文档用于表征以预设形式表示的ASIC模块设计需求;
数据提取模块,用于从所述设计文档中提取端口数据;其中,所述端口数据用于表征端口所属模块以及端口的属性信息;
生成模块,用于根据所述设计文档、所述端口数据以及预设编码规范,生成ASIC模块的结构声明文件;其中,所述结构声明文件包括所有模块对应的模块结构声明文件以及顶层模块对应的顶层结构声明文件。
9.一种用于生成ASIC结构声明的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至7任一项所述的用于生成专用集成电路ASIC结构声明的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令设置为执行如权利要求1至7任一项所述的用于生成专用集成电路ASIC结构声明的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211108104.5A CN115185486B (zh) | 2022-09-13 | 2022-09-13 | 用于生成asic结构声明的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211108104.5A CN115185486B (zh) | 2022-09-13 | 2022-09-13 | 用于生成asic结构声明的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115185486A true CN115185486A (zh) | 2022-10-14 |
CN115185486B CN115185486B (zh) | 2023-02-17 |
Family
ID=83524274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211108104.5A Active CN115185486B (zh) | 2022-09-13 | 2022-09-13 | 用于生成asic结构声明的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185486B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487165A (en) * | 1992-04-30 | 1996-01-23 | Ricoh Company, Ltd. | Standard page description language cleartext structure generator |
CN103164228A (zh) * | 2013-03-29 | 2013-06-19 | 北京经纬恒润科技有限公司 | 一种现场可编程门阵列程序的生成方法及装置 |
CN112083897A (zh) * | 2020-07-30 | 2020-12-15 | 济南浪潮高新科技投资发展有限公司 | 一种数字逻辑设计中信号声明系统、方法、设备及介质 |
CN114548009A (zh) * | 2022-02-28 | 2022-05-27 | 大连理工大学 | 一种针对集成电路设计的建模验证及代码生成方法 |
-
2022
- 2022-09-13 CN CN202211108104.5A patent/CN115185486B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487165A (en) * | 1992-04-30 | 1996-01-23 | Ricoh Company, Ltd. | Standard page description language cleartext structure generator |
CN103164228A (zh) * | 2013-03-29 | 2013-06-19 | 北京经纬恒润科技有限公司 | 一种现场可编程门阵列程序的生成方法及装置 |
CN112083897A (zh) * | 2020-07-30 | 2020-12-15 | 济南浪潮高新科技投资发展有限公司 | 一种数字逻辑设计中信号声明系统、方法、设备及介质 |
CN114548009A (zh) * | 2022-02-28 | 2022-05-27 | 大连理工大学 | 一种针对集成电路设计的建模验证及代码生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115185486B (zh) | 2023-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6721451B1 (en) | Apparatus and method for reading a document image | |
CN113609820B (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
CN103488482A (zh) | 一种生成测试用例的方法和装置 | |
CN113051885B (zh) | 基于AutoCAD的设计图纸快速排版方法 | |
CN105204860A (zh) | 一种快速生成自定义静态Web页面的方法及装置 | |
CN113934684B (zh) | 一种数据格式自动转换方法、装置、电子设备及存储介质 | |
CN103473056A (zh) | 一种遥测配置文件自动生成方法 | |
CN106598922A (zh) | 一种字符串转换方法及系统 | |
CN104572153A (zh) | 一种用于车辆刷新的刷新数据转换方法 | |
CN105589842A (zh) | 数字出版物的排版方法及装置 | |
US5848263A (en) | File conversion method and apparatus for LSI design data | |
CN116029080A (zh) | 芯片存储装置设计及验证方法、装置及电子设备 | |
CN115185486B (zh) | 用于生成asic结构声明的方法、装置及存储介质 | |
JP2006268661A (ja) | データインポート方法およびデータインポート装置 | |
CN108664505A (zh) | 一种数据库表结构的导出方法及装置 | |
CN114564799A (zh) | 卡件接线图生成方法、系统及存储介质 | |
CN105653549A (zh) | 一种提取文档信息的方法及装置 | |
CN113127408A (zh) | 数据转换方法及装置 | |
CN115268846A (zh) | 一种添加属性信息的方法、装置及计算机可读存储介质 | |
CN111414741B (zh) | 出版物的版式模板制作方法、装置、设备及介质 | |
CN109408873B (zh) | 一种多维阵列信号控制方法、装置及计算机可读存储介质 | |
CN109840080B (zh) | 字符属性比较方法、装置、存储介质及电子设备 | |
CN111753349A (zh) | 结构构件的尺寸修改方法、Revit平台及存储介质 | |
CN105893283A (zh) | 相机参数读写方法、装置和终端设备 | |
CN102902707A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |