一种芯片IP集成方法、装置及电子设备和存储介质与流程

文档序号:22737326发布日期:2020-10-31 09:16阅读:162来源:国知局
一种芯片IP集成方法、装置及电子设备和存储介质与流程

本申请涉及芯片开发技术领域,更具体地说,涉及一种芯片ip集成方法、装置及一种电子设备和一种计算机可读存储介质。



背景技术:

ip是指一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。一个芯片内部通常有多个ip,ip集成是指将ip连接到芯片设计中。ip在一些数字电路中常用,但比较复杂的功能模块,例如调制解调器、sdram控制器、pci接口等可以设计成可修改参数的模块,芯片设计者需要选择合适的ip,并将其集成在一起来搭建芯片。选用ip能够避免重复开发,可以加速产品设计。

芯片ip通常由vhdl或verilog语言开发而成,芯片设计者需要仔细学习ip代码,手工完成ip与现有芯片设计代码的集成。复杂ip的对外接口非常多,手动集成时不仅耗时较长,还容易造成人工失误。

因此,如何解决上述问题是本领域技术人员需要重点关注的。



技术实现要素:

本申请的目的在于提供一种芯片ip集成方法、装置及一种电子设备和一种计算机可读存储介质,在提高工作效率的同时降低了人为失误概率。

为实现上述目的,本申请提供了一种芯片ip集成方法,包括:

获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;

利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;

利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;

基于所述ip集成关系文件中的层级关系对所述接口列表、所述集成顶层和所述ip模块的接口进行连接,自动生成用于芯片集成设计的硬件代码,以完成芯片ip的自动集成。

可选的,所述ip集成关系文件中包括:用于描述芯片集成时ip所处层级的层级关系信息,用于描述ip源代码或待生成中间层代码的模块信息,用于描述与ip相集成的顶层模块接口列表,以及用于描述ip信号之间连接关系的信号连接关系列表。

可选的,所述模块信息包括ip内模块名称、ip源代码的存放位置和源代码文件名,或待生成中间层代码的层模块名称和代码保存路径;

所述顶层模块接口列表包括顶层名称、接口类型、接口方向和接口宽度;

所述信号连接关系列表包括信号名、信号宽度、信号起点和信号终点。

可选的,在所述利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表之后,还包括:

将针对所述集成顶层、所述中间层、所述ip模块和所述接口列表的解析结果保存至内存中。

可选的,在所述利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表之后,还包括:

基于预设连接规则对所述接口列表进行检查;

若所述接口列表中存在同一信号连接宽度不同、方向不一致,或存在未连接的接口、未定义的顶层接口、未使用的已定义信号时,则禁止执行接口连接流程并返回详细的告警提示信息。

可选的,还包括:

获取针对所述ip模块和所述接口列表的解析结果;

根据所述解析结果,利用第二预设脚本自动生成每个ip模块对应的评审报告;所述评审报告中包括各个ip模块的每一个端口在集成时被连接到的输入端口、输出端口、信号线名、信号线宽度。

为实现上述目的,本申请提供了一种芯片ip集成装置,包括:

文件获取模块,用于获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;

文件解析模块,用于利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;

接口识别模块,用于利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;

代码生成模块,用于基于所述ip集成关系文件中的层级关系对所述接口列表、所述集成顶层和所述ip模块的接口进行连接,自动生成用于芯片集成设计的硬件代码,以完成芯片ip的自动集成。

可选的,还包括:

列表检查模块,用于在所述利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表之后,基于预设连接规则对所述接口列表进行检查;

告警提示模块,用于若所述接口列表中存在同一信号连接宽度不同、方向不一致,或存在未连接的接口、未定义的顶层接口、未使用的已定义信号时,则禁止执行接口连接流程并返回详细的告警提示信息。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现前述公开的任一种芯片ip集成方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种芯片ip集成方法的步骤。

通过以上方案可知,本申请提供的一种芯片ip集成方法,包括:获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;基于所述ip集成关系文件中的层级关系对所述接口列表、所述集成顶层和所述ip模块的接口进行连接,自动生成用于芯片集成设计的硬件代码,以完成芯片ip的自动集成。由上可知,本申请中可根据获取到的ip集成关系文件,利用预先编写的脚本自动解析芯片ip的源代码和集成关系,生成所需要的芯片硬件设计代码,无需人工编写芯片的硬件代码,在提高工作效率的同时降低了人为失误概率。

本申请还公开了一种芯片ip集成装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种芯片ip集成方法的流程图;

图2为本申请实施例公开的一种具体的ip集成层级关系示意图;

图3为本申请实施例公开的一种具体的顶层、中间层和ip模块示意图;

图4为本申请实施例公开的一种具体的数据保存方式的流程示意图;

图5、图6为本申请实施例公开的另一种芯片ip集成方法的流程图;

图7为本申请实施例公开的另一种芯片ip集成装置的结构图;

图8为本申请实施例公开的一种电子设备的结构图;

图9为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在相关技术中,芯片ip通常由vhdl或verilog语言开发而成,芯片设计者需要仔细学习ip代码,手工完成ip与现有芯片设计代码的集成。复杂ip的对外接口非常多,手动集成时不仅耗时较长,还容易造成人工失误。

因此,本申请实施例公开了一种芯片ip集成方法,在提高工作效率的同时显著降低了人为失误概率。

参见图1所示,本申请实施例公开的一种芯片ip集成方法包括:

s101:获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;

本申请实施例中,首先可以获取用于描述ip集成关系的ip集成关系文件。作为一种可行的实施方式,本实施例可以提供用于配置ip集成关系文件的可视化界面,以便用户根据芯片设计需求通过界面实时配置集成关系文件。作为另外一种可行的实施方式,本实施例可以提供导入接口,用户能够通过该导入接口上传预先编写好的集成关系文件。上述标记格式语言可以具体为yaml标记语言。

需要指出的是,上述集成关系文件中可以包括但不限于:用于描述芯片集成时ip所处层级的层级关系信息,用于描述ip源代码或待生成中间层代码的模块信息,用于描述与ip相集成的顶层模块接口列表,以及用于描述ip信号之间连接关系的信号连接关系列表。

其中,上述层级关系信息可以关键字hierarchy为起始字符,随后每一行代表一个独立的层级的名称,用于描述所有ip在芯片集成时所处的层级,以及上层的层级信息,具体可以缩进表示层级间的包含关系。相同缩进代表相同层级,如图2所示,ip_a、ip_b为两个不同ip在集成时的层级关系。其对应的yaml语言可以如下所示:

由上可知,以关键字hierarchy开始,具体用于描述level_0,其中inst_a和inst_b属于同一层级,均为level_0的子层级。ip_a、ip_b分别为inst_a和inst_b的子ip。

上述模块信息可以关键字module为起始字符,随后的第一级缩进用于描述一个模块的名称,第二级缩进用于描述该模块的属性。具体地,模块信息可以包括ip内模块名称、ip源代码的存放位置和源代码文件名,或待生成中间层代码的层模块名称和代码保存路径。例如,关键字entitycheck:表示此模块为一个ip,冒号后即为该ip的模块名称;关键字entitygenerate表示此模块为一个待生成硬件代码的层模块,冒号后为层模块的模块名;关键字path表示ip源代码的存放路径,或待生成硬件代码的层模块的保存路径;关键字package表示ip代码的文件名。

上述顶层模块接口列表包括顶层名称、接口类型、接口方向和接口宽度。具体地,可以关键字interface为起始字符,随后的第一级缩进描述接口所在层级的名称,名称后的第二级缩进描述该层级接口的类型,例如:pin表示一比特信号,bus表示多比特信号。接口类型后的第三级缩进描述每一接口的属性,包括方向、宽度等,方向可由关键字in、out、inout表示,后面可添加接口名称。对于多比特接口,还需用关键字width来描述接口宽度。

上述信号连接关系列表包括信号名、信号宽度、信号起点和信号终点,用于描述ip与相集成的顶层之间,以及ip信号之间的信号连接关系。具体地,可以关键字connection为起始字符,随后的第一级缩进描述连接关系的信号名,信号名后的第二级缩进描述该信号的属性,包括:宽度、起点、终点等,可分别用关键字width、from、to表示。需要注意的是,每个连接只能有一个起点,但可以有多于一个终点。在用户输入连接关系之后,可基于该规则对输入的连接关系进行判断,以确认是否符合连接规则。

s102:利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;

本申请实施例中,预先编写了用于解析ip集成关系文件的第一预设脚本。利用该脚本,可以在ip集成关系文件的顶层模块接口列表中识别出集成顶层信息,即顶层名称、接口类型、接口方向和接口宽度等,进而可在文件的模块信息中查找到ip模块,根据ip模块的后缀名称确定源文件格式,从而采用对应的代码词法分析算法解析ip内的模块接口信息,得到ip接口列表。

s103:利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;

需要说明的是,在ip集成文件中,仅仅定义了芯片顶层与外接连接的顶层接口、ip与顶层以及ip信号之间的连接关系,而ip与顶层之间、ip与ip之间穿越的中间层所经过的接口,将利用第一预设脚本自动识别推理得出。具体地,中间层的接口列表可以包括但不限于中间层名称、该层的接口类型、接口方向、宽度和连接端点等信息。如图3所示,其中inst_a和inst_b层的接口均由脚本程序自动推理生成。

本申请实施例并不限定上述步骤s102和s103的执行顺序,也即,在实际的实施过程可以先执行步骤s102,也可先执行步骤s103,还可对步骤s102和s103进行并发执行以节省工作时间。

可以理解的是,本申请实施例在分别利用第一预设脚本自动识别出集成顶层信息、ip模块和中间层接口列表之后,可将上述内容对应的解析结果保存至内存中,以便后续直接对解析结果进行分析。参见图4所示,可通过对ip集成关系文件和ip源代码的预处理,分别得到层信息和ip信息,构建各自对应的包括端口列表、端口方向、宽度和端口连接端点的层属性数据以及包括端口列表、端口方向、宽度和端口连接映射的ip端口数据,并按照对应的数据结构保存在内存中。

作为一种优选的实施方式,本申请实施例在识别出中间层接口列表之后,还可以进一步基于预设连接规则对接口列表进行检查。上述预设连接规则可以包括但不限于同一信号连接宽度需相同、方向需保持一致,定义的接口必须连接,定义的信号必须使用等。若检查发现接口列表中存在同一信号连接宽度不同、方向不一致,或存在未连接的接口、未定义的顶层接口、未使用的已定义信号时,则禁止执行后续的接口连接流程并可返回详细的告警提示信息。

s104:基于所述ip集成关系文件中的层级关系对所述接口列表、所述集成顶层和所述ip模块的接口进行连接,自动生成用于芯片集成设计的硬件代码,以完成芯片ip的自动集成。

本步骤中,根据上述解析得到的ip集成顶层的接口列表、ip模块的接口列表,以及自动生成的中间层所需的接口列表,基于ip集成关系文件中定义的层级关系对所有接口进行连接,读取ip源代码,自动集成产生对应的硬件代码,后续即可根据生成的硬件代码进行芯片ip的自动集成。

通过以上方案可知,本申请提供的一种芯片ip集成方法,包括:获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;基于所述ip集成关系文件中的层级关系对所述接口列表、所述集成顶层和所述ip模块的接口进行连接,自动生成用于芯片集成设计的硬件代码,以完成芯片ip的自动集成。由上可知,本申请中可根据获取到的ip集成关系文件,利用预先编写的脚本自动解析芯片ip的源代码和集成关系,生成所需要的芯片硬件设计代码,无需人工编写芯片的硬件代码,在提高工作效率的同时降低了人为失误概率。

本申请实施例公开了另一种芯片ip集成方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图5所示,具体的:

s201:获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;

s202:利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;

s203:利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;

s204:获取针对所述ip模块和所述接口列表的解析结果;

s205:根据所述解析结果,利用第二预设脚本自动生成每个ip模块对应的评审报告;所述评审报告中包括各个ip模块的每一个端口在集成时被连接到的输入端口、输出端口、信号线名、信号线宽度。

本申请实施例中,除了根据ip集成关系文件的解析结果生成硬件设计代码之外,还可根据解析结果生成每个ip模块对应的评审报告。具体地,可利用第二预设脚本根据上述解析结果生成每个ip模块对应的评审报告。参见图6所示,可获取保存在内存中的解析结果,通过对解析结果的进一步分析,验证其中是否存在连接关系错误。若不存在,则可直接基于解析结果按照集成层级关系自动生成对应的硬件设计代码和评审报告,直至内存中数据解析完成。若存在,则返回报警信息以提示用户重新配置ip集成关系文件。

其中,上述评审报告中的内容可包括但不限于ip模块的每一个端口在集成时被连接到的输入端口、输出端口、信号线名、信号线宽度。

可以理解的是,本申请实施例可以自动生成和芯片设计相对应的供评审的文档,有效提高了设计评审的效率。

下面对本申请实施例提供的一种芯片ip集成装置进行介绍,下文描述的一种芯片ip集成装置与上文描述的一种芯片ip集成方法可以相互参照。

参见图7所示,本申请实施例提供的一种芯片ip集成装置包括:

文件获取模块301,用于获取ip集成关系文件;所述ip集成关系文件为根据芯片设计需求,采用标记格式语言编写的用于描述ip集成关系的文件;

文件解析模块302,用于利用第一预设脚本对所述ip集成关系文件进行自动解析,确定集成顶层信息以及指定的ip模块;

接口识别模块303,用于利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表;

代码生成模块304,用于基于所述ip集成关系文件中的层级关系对所述接口列表、所述集成顶层和所述ip模块的接口进行连接,自动生成用于芯片集成设计的硬件代码,以完成芯片ip的自动集成。

关于上述模块301至304的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。

在上述实施例的基础上,作为一种优选实施方式,本申请实施例提供的芯片ip集成装置还可以进一步包括:

列表检查模块,用于在所述利用所述第一预设脚本自动识别所述集成顶层与所述ip模块之间的中间层所需的接口列表之后,基于预设连接规则对所述接口列表进行检查;

告警提示模块,用于若所述接口列表中存在同一信号连接宽度不同、方向不一致,或存在未连接的接口、未定义的顶层接口、未使用的已定义信号时,则禁止执行接口连接流程并返回详细的告警提示信息。

本申请还提供了一种电子设备,参见图8所示,本申请实施例提供的一种电子设备包括:

存储器100,用于存储计算机程序;

处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。

具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的芯片ip集成方法的步骤。

在上述实施例的基础上,作为优选实施方式,参见图9所示,所述电子设备还包括:

输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。

网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

图9仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图9示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的芯片ip集成方法的步骤。

本申请中可根据获取到的ip集成关系文件,利用预先编写的脚本自动解析芯片ip的源代码和集成关系,生成所需要的芯片硬件设计代码,无需人工编写芯片的硬件代码,在提高工作效率的同时降低了人为失误概率。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1