CN114510452A - 片上系统soc集成方法、装置及电子设备 - Google Patents
片上系统soc集成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114510452A CN114510452A CN202210021993.5A CN202210021993A CN114510452A CN 114510452 A CN114510452 A CN 114510452A CN 202210021993 A CN202210021993 A CN 202210021993A CN 114510452 A CN114510452 A CN 114510452A
- Authority
- CN
- China
- Prior art keywords
- soc
- file
- integrated
- intermediate file
- module
- 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
- 230000010354 integration Effects 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004806 packaging method and process Methods 0.000 claims abstract description 34
- 238000006243 chemical reaction Methods 0.000 claims abstract description 12
- 238000004891 communication Methods 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 230000009977 dual effect Effects 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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
- G06F8/37—Compiler construction; Parser generation
Abstract
本申请公开了一种片上系统SOC集成方法、装置及电子设备。其中,该方法包括:获取待集成的SOC的SOC配置文件,SOC配置文件包含有待集成的SOC的配置信息;将配置文件发送至SOC自动集成工具,生成中间文件;其中,中间文件为对第一中间文件和第二中间文件进行集成得到的文件,第一中间文件为对待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,第二中间文件为基于SOC的流水线连接关系将每个SOC模块按预设端口类型的端口进行封装得到的文件;将中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;基于RTL集成文件对待集成的SOC进行集成。本申请解决了相关技术中的SOC集成效率较低的技术问题。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种片上系统SOC集成方法、装置及电子设备。
背景技术
在基于VIVADO高层次综合(High Level Synthesis,HLS)的片上系统(System onChip,SOC)开发设计中,通常会将SOC分为多个模块并行开发设计。在多个模块集成的时候,接口之间相互匹配以及模块和模块流水线工作顺序关系的处理至关重要。
相关技术中的基于VIVADO HLS的SOC集成方法主要包括两种方案,第一种方案是由VIVADO HLS工具自行分析子模块之间的连接关系,由此直接完成SOC集成。第二种方案是编写脚本,通过脚本分析VIVADO HLS工具生成的子模块的寄存器转换级电路(RegisterTransfer Level,RTL)代码的接口并直接生成集成用的RTL代码。但是对于第一种技术方案而言,虽然快捷,但是在SOC规模超过一定程度的时候,工具就无法直接有效完成集成。第二种技术方案,需要逻辑工程师针对不同的SOC系统独立开发模板,识别SOC模块间的连接关系,并插入流水线控制模块,这样会造成脚本易用性和复用性差,而且SOC集成效率较低。
发明内容
本申请实施例提供了一种片上系统SOC集成方法、装置及电子设备,以至少解决相关技术中的SOC集成效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种片上系统SOC集成方法,包括:获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;基于所述RTL集成文件对所述待集成的SOC进行集成。
根据本申请实施例的另一方面,还提供了一种片上系统SOC集成装置,包括:获取单元,获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;第一生成单元,用于将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;处理单元,用于将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;集成单元,用于基于所述RTL集成文件对所述待集成的SOC进行集成。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述的片上系统SOC集成方法。
根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的片上系统SOC集成方法。
在本申请实施例中,通过获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;基于所述RTL集成文件对所述待集成的SOC进行集成。由于通过SOC自动集成工具将SOC模块通过生成中间文件,并基于代码编译工具生成RTL集成文件,可以将不同规模下的SOC模块进行快速集成,不仅提高了SOC集成的效率,而且还能提高SOC集成的复用性,解决了相关技术中的SOC集成效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的片上系统SOC集成方法的应用环境的示意图;
图2是根据本申请实施例的另一种可选的片上系统SOC集成方法的应用环境示意图;
图3是根据相关技术中的一种可选的片上系统SOC集成方法的流程示意图;
图4是根据相关技术中的另一种可选的片上系统SOC集成方法的流程示意图;
图5是根据本申请实施例的一种可选的片上系统SOC集成装置的结构示意图;
图6是根据本申请实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种片上系统SOC集成方法,可选地,作为一种可选的实施方式,上述一种片上系统SOC集成可以但不限于应用于如图1所示的环境中。该应用环境中包括:基于VIVADO HLS的SOC自动集成工具和SCALA代码编译工具,上述集成工具为VIVADO HLS的扩展工具,该扩展工具可以对待集成不同模块的SOC的配置文件生成中间文件,并通过上述SCALA代码编译工具输出RTL代码,基于该RTL代码可以对当前SOC系统模块进行集成。上述中间文件具体包括,对每个SOC模块按照预设端口进行封装的模块黑盒文件,包含各个SOC模块相连接的连接关系的中间文件,将上述模块黑盒文件和各个SOC模块相连接的连接关系的中间文件进行封装得到的顶层集成文件。在得到上述中间文件后,基于VIVADO HLS的SOC自动集成工具生成日志文件,该日志文件报告SOC模块集成过程中的流水线问题、端口不匹配问题与SOC连接悬空(未找到连接模块)情况,供SOC开发人员同步迭代开发。
作为另一种可选的实施方式,本申请上述片上系统SOC集成方法可以应用于图2所示的应用环境中。如图2所示,用户202与用户设备204之间可以进行人机交互。用户设备204中包含有存储器206和处理器208。本实施例中用户设备204可以但不限于参考执行上述终端设备102所执行的操作,以获取目标设备的语音响应时间。
可选地,在本实施例中,上述用户设备204可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile InternetDevices,移动互联网设备)、PAD、台式电脑、智能电视等。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在一个或多个实施例中,如图3所示,上述片上系统SOC集成方法包括:
S302,获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息。
在本发明实施例中,上述SOC配置文件包括但不限于SOC的模块名、SOC模块的例化名、SOC流水线工作相关配置信息,已经SOC模块的RTL顶层文件等,在此不做任何限定。在SOC中,由于会在多个模块名相同的模块,例如两个蓝牙模块具备同样的功能,在集成使用的过程中需要将二者分别配置不同的例化名供系统调用,例如Bluetooth1,Bluetooth2。
S304,将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件。
这里,基于VIVADO HLS的SOC自动集成工具可以配置文件中的每个SOC模块的RTL顶层文件将每个SOC模块按照预设端口进行封装,得到每个SOC模块黑盒文件。这里,预设端口包括但不限于Stream类型端口、AXI4类型端口、AXILite类型端口、双端口RAM类型端口,每个SOC模块黑盒文件中封装了上述类型的端口,不同的SOC模块基于该不同的端口与其他SOC模块建立通信连接。基于所述SOC的流水线连接关系,将所述每个SOC模块按预设端口类型的端口进行封装得到的文件,得到第二中间文件,也就是说,例如当前SOC模块的端口类型为Stream类型,前级SOC模块的端口类型同样为Stream类型。需要说明的是,假设当前SOC系统中前一级SOC模块有一组A_stream_master端口,后一级SOC模块有A_stream_slave端口,这两组就都是stream类型的端口,连接端口名称都为A,一个是master方向一个是slave方向,这两级SOC就能建立通信连接关系。
本发明实施例中,将上述第一中间文件和第二中间文件进行集成并封装为中间文件,该中间文件可以输入到SCALA代码编译工具中,最终可以得到集成RTL代码,通过该RTL代码可以将SOC中的各个模块进行集成。
S306,将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;
本发明实施例中,目标代码编译工具可以为SCALA代码编译工具,也可以为其他能够与VIVADO HLS的SOC自动集成工具相配合使用的代码编译工具,在此不做任何限定。
S308,基于所述RTL集成文件对所述待集成的SOC进行集成。
在本申请实施例中,通过获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;基于所述RTL集成文件对所述待集成的SOC进行集成。由于通过SOC自动集成工具将SOC模块通过生成中间文件,并基于代码编译工具生成RTL集成文件,可以将不同规模下的SOC模块进行快速集成,不仅提高了SOC集成的效率,而且还能提高SOC集成的复用性,解决了相关技术中的SOC集成效率较低的技术问题。
在一个或多个实施例中,所述配置信息包括每个SOC模块的顶层RTL文件和所述待集成的SOC的模块的流水线连接关系;上述步骤S204,所述将所述配置文件发送至SOC自动集成工具,生成中间文件包括:
从所述SOC配置文件中读取所述顶层RTL文件,并基于所述RTL文件按预设端口类型对所述待集成的SOC的每个SOC模块进行封装,得到所述第一中间文件。
这里,VIVADO HLS的SOC自动集成工具从所述SOC配置文件中读取所述顶层RTL文件,上述RTL文件为SOC中不同SOC模块的顶层文件,然后按照Stream类型端口、AXI4类型端口、AXILite类型端口、双端口RAM类型端口等不同类型的端口类型生成每个SOC对应的黑盒中间文件(第一中间文件)。
从所述SOC配置文件中读取所述流水线连接关系;基于所述流水线连接关系生成包括每个所述SOC模块之间通信连接的第二中间文件。
在本发明实施例中,从所述SOC配置文件中读取SOC的各个模块工作交互的流水线连接关系,然后根据该流水线连接关系按照按照Stream类型端口、AXI4类型端口、AXILite类型端口、双端口RAM类型端口等不同类型的连接端口,将具体相同名称的端口类型的模块建立通信连接关系,生成包括每个所述SOC模块之间通信连接的第二中间文件,假设当前SOC系统中前一级SOC模块有一组A_stream_master端口,后一级SOC模块有A_stream_slave端口,这两组就都是stream类型的端口,连接端口名称都为A,一个是master方向一个是slave方向,这两级SOC就能建立通信连接关系。
最后,将所述第一中间文件和所述第二中间文件进行封装,得到供目标代码编译工具调用的所述中间文件。
在一个或多个实施例中,所述配置信息包括所述每个SOC模块的例化名;所述基于所述流水线连接关系生成包括每个所述SOC模块之间通信连接的第二中间文件,包括:
基于所述连接关系为每个所述例化名的SOC模块分配对应的连接端口。例如,两级相邻接的SOC模块,如蓝牙模组中包含两个蓝牙模块,那么这两个蓝牙模块的例化名分别为Bluetooth1,Bluetooth2,另一SOC模块为音频模块,例化名为Audio1。假设当前SOC系统中前一级SOC模块有一组Bluetooth_stream_master端口,后一级SOC模块有Bluetooth_stream_slave端口,这两组就都是stream类型的端口,连接端口名称都为Bluetooth,一个是master方向一个是slave方向,这两级蓝牙模块就能建立通信连接关系。
基于所述连接关系和所述连接端口,生成包括每个所述例化名的SOC模块之间通信连接的上述第二中间文件。
在一个或多个实施例中,上述步骤S206,将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件之后,所述方法还包括以下至少之一:
生成日志报告文件,所述日志报告文件中包括所述待集成的SOC集成过程中的故障信息;在本发明实施例中,故障信息包括但不限于SOC模块集成过程中的流水线问题、模块的端口类型不匹配问题与SOC连接悬空(未找到连接模块)问题等。后续开发人员根据上述故障信息同步迭代开发。
生成所述待集成的SOC的集成代码文件的文件列表。根据该文件列表后续开发人员可以进行综合和仿真等操作。
在一个或个实施例中,上述步骤S206,所述目标代码编译工具包括SCALA代码编译工具,所述将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件,包括:将所述中间文件发送至SCALA代码编译工具,得到所述RTL集成文件。
在一个或个实施例中,所述预设端口类型包括:Stream类型、AXI4类型、AXILite类型、双端口RAM类型。
基于上述实施例,在一个或多个实施例中,如图4所示,上述片上系统SOC集成方法还包括:步骤S402,读取待集成的SOC的配置文件,配置文件中包括了各个模块的模块名,例化名,工作流水线的配置信息;步骤S404,从配置文件中读取待集成模块的顶层RTL文件,并根据预设端口生成每个模块的黑盒中间文件(第一中间文件);步骤S406,从配置文件中读取流水线连接关系,并按照连接端口名完成SOC模块端口连接的中间文件(第二中间文件);步骤S408,完成例化黑盒文件与例化连接的集成顶层中间文件,至此完成所有中间文件产生完毕,并生成日志,报告集成过程中的流水线问题、端口不匹配问题与模块悬空情况,供开发人员同步迭代开发;步骤S410,将中间文件通过支持SCALA语言的编译工具,转化成RTL代码并集成文件列表,供开发人员后续综合和仿真等操作。
通过本发明实施例,不仅对于任意规模的基于VIVADO HLS的SOC集成均可完成;而且可以不使用独立模板,通过与子模块开发者约定端口类型即可完成子模块RTL代码识别并通过简短的配置文件达到完成集成的目的,使得工具拥有较强的易用性和复用性,通过工具生成的日志文件和中间文件清晰,最终使用SCALA语言完成中间文件到RTL代码的转换,能够将集成相关的综合问题全部拦截。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
根据本申请实施例的另一个方面,还提供了一种用于实施上述片上系统SOC集成方法的片上系统SOC集成装置。如图5所示,该装置包括:
获取单元502,获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;
第一生成单元504,用于将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;
处理单元506,用于将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;
集成单元508,用于基于所述RTL集成文件对所述待集成的SOC进行集成。
在本发明实施例中,上述SOC配置文件包括但不限于SOC的模块名、SOC模块的例化名、SOC流水线工作相关配置信息,已经SOC模块的RTL顶层文件等,在此不做任何限定。在SOC中,由于会在多个模块名相同的模块,例如两个蓝牙模块具备同样的功能,在集成使用的过程中需要将二者分别配置不同的例化名供系统调用,例如Bluetooth1,Bluetooth2。
这里,基于VIVADO HLS的SOC自动集成工具可以配置文件中的每个SOC模块的RTL顶层文件将每个SOC模块按照预设端口进行封装,得到每个SOC模块黑盒文件。这里,预设端口包括但不限于Stream类型端口、AXI4类型端口、AXILite类型端口、双端口RAM类型端口,每个SOC模块黑盒文件中封装了上述类型的端口,不同的SOC模块基于该不同的端口与其他SOC模块建立通信连接。基于所述SOC的流水线连接关系,将所述每个SOC模块按预设端口类型的端口进行封装得到的文件,得到第二中间文件,也就是说,例如当前SOC模块的端口类型为Stream类型,前级SOC模块的端口类型同样为Stream类型。需要说明的是,假设当前SOC系统中前一级SOC模块有一组A_stream_master端口,后一级SOC模块有A_stream_slave端口,这两组就都是stream类型的端口,连接端口名称都为A,一个是master方向一个是slave方向,这两级SOC就能建立通信连接关系。
本发明实施例中,将上述第一中间文件和第二中间文件进行集成并封装为中间文件,该中间文件可以输入到SCALA代码编译工具中,最终可以得到集成RTL代码,通过该RTL代码可以将SOC中的各个模块进行集成。目标代码编译工具可以为SCALA代码编译工具,也可以为其他能够与VIVADO HLS的SOC自动集成工具相配合使用的代码编译工具,在此不做任何限定。
在本申请实施例中,通过获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;基于所述RTL集成文件对所述待集成的SOC进行集成。由于通过SOC自动集成工具将SOC模块通过生成中间文件,并基于代码编译工具生成RTL集成文件,可以将不同规模下的SOC模块进行快速集成,不仅提高了SOC集成的效率,而且还能提高SOC集成的复用性,解决了相关技术中的SOC集成效率较低的技术问题。
在一个或多个实施里中,所述配置信息包括每个SOC模块的顶层RTL文件和所述待集成的SOC的模块的流水线连接关系;所述第一生成单元504包括:
第一读取模块,用于从所述SOC配置文件中读取所述顶层RTL文件,并基于所述RTL文件按预设端口类型对所述待集成的SOC的每个SOC模块进行封装,得到生成所述第一中间文件;
第二读取模块,用于从所述SOC配置文件中读取所述流水线连接关系;
生成模块,用于基于所述流水线连接关系生成包括每个所述SOC模块之间通信连接的第二中间文件;
封装模块,用于将所述第一中间文件和所述第二中间文件进行封装,得到供目标代码编译工具调用的所述中间文件。
在一个或多个实施里中,片上系统SOC集成装置中,上述所述配置信息还包括所述每个SOC模块的例化名;所述生成模块,具体包括:
分配子单元,用于基于所述连接关系为每个所述例化名的SOC模块分配对应的连接端口;
生成子单元,用于基于所述所述连接关系和连接端口,生成包括每个所述例化名的SOC模块之间通信连接的上述第二中间文件。
在一个或多个实施例中,所述片上系统SOC集成装置,还包括以下至少之一:
第二生成单元,用于生成日志报告文件,所述日志报告文件中包括所述待集成的SOC集成过程中的故障信息;
第三生成单元,用于生成所述待集成的SOC的集成代码文件的文件列表。
在一个或多个实施里中,所述处理单元,具体包括:处理模块,用于将所述中间文件发送至SCALA代码编译工具,得到所述RTL集成文件。
在一个或多个实施例中,所述预设端口类型包括:Stream类型、AXI4类型、AXILite类型、双端口RAM类型。
根据本申请实施例的又一个方面,还提供了一种用于实施上述片上系统SOC集成方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图6所示,该电子设备包括存储器602和处理器604,该存储器602中存储有计算机程序,该处理器604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取待集成的SOC的SOC配置文件,上述SOC配置文件包含有待集成的SOC的配置信息;
S2,将上述配置文件发送至SOC自动集成工具,生成中间文件;其中,上述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,上述第一中间文件为对上述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,上述第二中间文件为基于上述SOC的流水线连接关系将上述每个SOC模块按预设端口类型的端口进行封装得到的文件;
S3,将上述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;
S4,基于上述RTL集成文件对上述待集成的SOC进行集成。
可选地,本领域普通技术人员可以理解,图6所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图6中所示更多或者更少的组件(如网络接口等),或者具有与图6所示不同的配置。
其中,存储器602可用于存储软件程序以及模块,如本申请实施例中的片上系统SOC集成方法和装置对应的程序指令/模块,处理器604通过运行存储在存储器602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的片上系统SOC集成方法。存储器602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器602可进一步包括相对于处理器604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器602具体可以但不限于用于存储SOC配置文件等信息。作为一种示例,如图6所示,上述存储器602中可以但不限于包括上述片上系统SOC集成装置中的获取单元502、第一生成单元504、处理单元506、及集成单元508。此外,还可以包括但不限于上述片上系统SOC集成装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置606包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置606为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器608,用于显示上述SOC配置文件信息;和连接总线610,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
在一个或多个实施例中,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述片上系统SOC集成方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取待集成的SOC的SOC配置文件,上述SOC配置文件包含有待集成的SOC的配置信息;
S2,将上述配置文件发送至SOC自动集成工具,生成中间文件;其中,上述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,上述第一中间文件为对上述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,上述第二中间文件为基于上述SOC的流水线连接关系将上述每个SOC模块按预设端口类型的端口进行封装得到的文件;
S3,将上述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;
S4,基于上述RTL集成文件对上述待集成的SOC进行集成。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种片上系统SOC集成方法,其特征在于,包括:
获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;
将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;
将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;
基于所述RTL集成文件对所述待集成的SOC进行集成。
2.根据权利要求1所述的方法,其特征在于,所述配置信息包括每个SOC模块的顶层RTL文件和所述待集成的SOC的模块的流水线连接关系;所述将所述配置文件发送至SOC自动集成工具,生成中间文件包括:
从所述SOC配置文件中读取所述顶层RTL文件,并基于所述RTL文件按预设端口类型对所述待集成的SOC的每个SOC模块进行封装,得到所述第一中间文件;
从所述SOC配置文件中读取所述流水线连接关系;
基于所述流水线连接关系生成包括每个所述SOC模块之间通信连接的第二中间文件;
将所述第一中间文件和所述第二中间文件进行集成,得到供所述目标代码编译工具调用的所述中间文件。
3.根据权利要求2所述的方法,其特征在于,所述配置信息包括所述每个SOC模块的例化名;所述基于所述流水线连接关系生成包括每个所述SOC模块之间通信连接的第二中间文件,包括:
基于所述流水线连接关系为每个所述例化名的SOC模块分配对应的连接端口;
基于所述连接关系和所述连接端口,生成包括每个所述例化名的SOC模块之间通信连接的所述第二中间文件。
4.根据权利要求1所述的方法,其特征在于,所述将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件之后,所述方法还包括以下至少之一:
生成日志报告文件,所述日志报告文件中包括所述待集成的SOC集成过程中的故障信息;
生成所述待集成的SOC的集成代码文件的文件列表。
5.根据权利要求1至4中任一项中所述的方法,其特征在于,所述目标代码编译工具包括SCALA代码编译工具,所述将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件,包括:
将所述中间文件发送至SCALA代码编译工具,得到所述RTL集成文件。
6.根据权利要求1所述的方法,其特征在于,所述预设端口类型包括:Stream类型、AXI4类型、AXILite类型、双端口RAM类型。
7.一种片上系统SOC集成装置,其特征在于,包括:
获取单元,获取待集成的SOC的SOC配置文件,所述SOC配置文件包含有待集成的SOC的配置信息;
第一生成单元,用于将所述配置文件发送至SOC自动集成工具,生成中间文件;其中,所述中间文件为对第一中间文件和第二中间文件进行集成得到的文件,所述第一中间文件为对所述待集成的SOC的每个SOC模块按预设端口类型进行封装得到的文件,所述第二中间文件为基于所述SOC的流水线连接关系将所述每个SOC模块按预设端口类型的端口进行封装得到的文件;
处理单元,用于将所述中间文件发送至目标代码编译工具,得到寄存器转换级电路RTL集成文件;
集成单元,用于基于所述RTL集成文件对所述待集成的SOC进行集成。
8.根据权利要求7所述的装置,其特征在于,所述配置信息包括每个SOC模块的顶层RTL文件和所述待集成的SOC的模块的流水线连接关系;所述第一生成单元包括:
第一读取模块,用于从所述SOC配置文件中读取所述顶层RTL文件,并基于所述RTL文件按预设端口类型对所述待集成的SOC的每个SOC模块进行封装,得到所述第一中间文件;
第二读取模块,用于从所述SOC配置文件中读取所述流水线连接关系;
生成模块,用于基于所述流水线连接关系生成包括每个所述SOC模块之间通信连接的第二中间文件;
封装模块,用于将所述第一中间文件和所述第二中间文件进行集成,得到供目标代码编译工具调用的所述中间文件。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210021993.5A CN114510452A (zh) | 2022-01-10 | 2022-01-10 | 片上系统soc集成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210021993.5A CN114510452A (zh) | 2022-01-10 | 2022-01-10 | 片上系统soc集成方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114510452A true CN114510452A (zh) | 2022-05-17 |
Family
ID=81550082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210021993.5A Pending CN114510452A (zh) | 2022-01-10 | 2022-01-10 | 片上系统soc集成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114510452A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115857428A (zh) * | 2023-02-02 | 2023-03-28 | 杭州未名信科科技有限公司 | 一种控制plc设备的方法、装置、存储介质及终端 |
CN116384295A (zh) * | 2023-06-02 | 2023-07-04 | 深圳市航顺芯片技术研发有限公司 | 一种顶层文件生成方法、装置、计算机设备及存储介质 |
CN116737130A (zh) * | 2023-08-15 | 2023-09-12 | 之江实验室 | 面向模态中间表示的编译方法、系统、设备和存储介质 |
-
2022
- 2022-01-10 CN CN202210021993.5A patent/CN114510452A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115857428A (zh) * | 2023-02-02 | 2023-03-28 | 杭州未名信科科技有限公司 | 一种控制plc设备的方法、装置、存储介质及终端 |
CN116384295A (zh) * | 2023-06-02 | 2023-07-04 | 深圳市航顺芯片技术研发有限公司 | 一种顶层文件生成方法、装置、计算机设备及存储介质 |
CN116384295B (zh) * | 2023-06-02 | 2023-09-22 | 深圳市航顺芯片技术研发有限公司 | 一种顶层文件生成方法、装置、计算机设备及存储介质 |
CN116737130A (zh) * | 2023-08-15 | 2023-09-12 | 之江实验室 | 面向模态中间表示的编译方法、系统、设备和存储介质 |
CN116737130B (zh) * | 2023-08-15 | 2023-11-28 | 之江实验室 | 面向模态中间表示的编译方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114510452A (zh) | 片上系统soc集成方法、装置及电子设备 | |
CN108021710B (zh) | 一种动态接口转换方法、装置、终端设备及存储介质 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN105450588A (zh) | 一种基于rdma的数据传输方法及rdma网卡 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN111061678B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN109086147B (zh) | 应用程序的服务接口调用方法、装置及存储介质 | |
CN106407111A (zh) | 终端测试装置、终端测试设备及变量维护方法 | |
CN107885661A (zh) | 移动应用的终端兼容性测试方法和系统、设备、介质 | |
CN113806037A (zh) | 服务的调用方法、装置、存储介质及电子设备 | |
CN115016784B (zh) | 低代码应用复用方法、应用解析系统、设备及存储介质 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、系统、电子设备和介质 | |
CA3178644A1 (en) | Techniques to facilitate a migration process to cloud storage | |
CN115134427B (zh) | 通信协议协调方法、装置、计算机设备和存储介质 | |
CN103561113A (zh) | Web Service接口的生成方法及装置 | |
JP2024501727A (ja) | マルチアダプタ互換ライブラリファイルモジュール、呼び出し方法、呼び出しシステム及びデバイス | |
CN113656152B (zh) | 基于容器云环境的本地模拟方法、系统、介质和电子设备 | |
CN109388406A (zh) | 转换java代码的方法及装置、存储介质、电子装置 | |
CN105703964A (zh) | 一种在线应用系统测试方法与设备 | |
CN107885674A (zh) | 蓝牙设备模拟器及其工作方法、蓝牙设备作业系统 | |
CN113852516B (zh) | 交换机诊断程序生成方法、系统、终端及存储介质 | |
CN111190750A (zh) | 一种数据处理方法以及系统 | |
CN115174461B (zh) | 一种基于网络请求的系统测试方法以及装置 | |
CN110531991A (zh) | 一种通用性烧录平台的实现方法和系统 | |
CN114500302B (zh) | 一种ice服务编排方法、装置、终端设备以及存储介质 |
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 |