数据处理方法及装置与流程

文档序号:32487142发布日期:2022-12-10 01:30阅读:76来源:国知局
数据处理方法及装置与流程

1.本公开涉及数据处理领域,尤其涉及一种数据处理方法及装置。


背景技术:

2.当前,现场可编程逻辑门阵列(field programmable gate array,fpga)验证是芯片验证中非常重要的一个环节,对于一个系统级芯片(system on chip,soc)系统来说,内部往往有一块只读存储器(read-only memory,rom)用于芯片的启动的初始化文件的存储。在芯片完成设计后,rom内部的初始化文件是不可更改的,因为一旦文件发生错误,对于芯片启动是致命的。
3.对于芯片生产前的rom的初始化文件的功能可靠性测试而言,该测试主要依赖fpga平台,需要大规模资源的fpga平台,每次更新fpga中rom的coe(xilinx rom ip核可识别的初始化文件格式)文件,rom的知识产权核(intellectual property core,ip核)需要重新生成,综合后的网表层次也会出现变动,进而导致在后续的布局和布线阶段需要重新制作才能形成新的bitfile(fpga的可执行文件)数据流,导致该周期非常久,严重降低了fpga验证的效率。


技术实现要素:

4.本公开实施例提供一种数据理方法及装置,能够解决更新fpga中rom的coe文件耗时过长的问题。所述技术方案如下:
5.根据本公开实施例的第一方面,提供一种数据处理方法,该方法包括:获取寄存器的第一数据,所述寄存器的第一数据为目标文件的只读存储器rom的寄存器数据;将所述寄存器的第一数据的路径修改为包含待验证工程的文件的网表路径,以获得所述寄存器的第二数据;根据所述寄存器的第二数据更新所述包含待验证工程的文件的rom的初始化数据。
6.其中,寄存器的第一数据为目标文件的rom的寄存器数据,目标文件为vivado生成的硬件网表文件(例如,dcp文件)。
7.示例地,在打开目标文件之后,可以通过vivado的指令(例如,report_property[get_cells{.*.simple_prim18.ram}])获取目标文件的rom(即,预设rom或目标rom)中所有寄存器的值(应理解,这里不需要知道寄存器的意义,也不需要知道寄存器的值是如何编码的),将这些寄存器的网表路径修改为待验证工程的网表路径(例如,可以通过“set_property”的指令进行修改),从而获得寄存器的第二数据。
[0008]
以及,打开包含待验证工程的文件(例如,包含待验证工程的dcp文件,且该dcp文件是待验证工程布线后的dcp文件),读入已经修改网表路径的目标文件(此时,目标文件包含寄存器的第二数据)。由此,能够实现待验证工程的rom的初始化文件的更新。
[0009]
应理解,在上述方案中,利用fpga中同一类型的rom硬件结构不变的特性,不需要对rom的初始化寄存器做任何的解析,就可以实现rom初始化寄存器的读写。
[0010]
基于上述方案,通过修改rom的初始化值,可以达到更新rom初始化文件的效果,使
得原本更新一次rom需要综合布局、布线、生成bitfile全流程参与,精简为只需要打开dcp文件和生成bitfile的流程参与,耗费的时间断崖式地减少。举例而言,一个50%资源使用率的vu440器件的fpga工程一次迭代时间从大于4个小时,可以骤减至10分钟左右。
[0011]
应理解,该方法可以应用于终端设备或网络设备。
[0012]
在一些实施例中,所述获取所述寄存器的第一数据,包括:根据是否存在包含预设rom的原始知识产权ip核的工程的文件,获取所述目标文件;根据所述目标文件获取所述寄存器的第一数据。
[0013]
在一些实施例中,所述根据是否存在包含预设rom的原始ip核的工程文件,获取所述目标文件,包括:当存在所述包含预设rom的原始ip核的工程的文件时,通过脱离上下文ooc的方式将所述预设rom的原始ip核替换为所述预设rom的目标ip核,其中,包含所述预设rom的目标ip核的工程的文件为所述目标文件;或当不存在所述包含预设rom的原始ip核的工程文件时,建立包含目标rom的ip核的工程,并根据包含所述目标rom的ip核的可识别初始化文件格式通过ooc的方式生成包含所述目标rom的ip核的初始化文件,其中,所述包含所述目标rom的ip核的初始化文件为所述目标文件。
[0014]
一方面,如果存在包含预设rom的原始ip核的工程的文件(即,xilinx的rom的ip核的工程的文件),只需要通过ooc的方式将预设rom的原始ip核进行重新生成,并将重新生成的预设rom的目标ip核将预设rom的原始ip进行替换,得到的包含预设rom的目标ip核的工程的文件就是目标文件。
[0015]
另一方面,如果不存在包含预设rom的原始ip核的工程文件,则需要新建一个工程,并在该工程中新建一个目标rom的ip核(即,xrom的ip核),且该工程中只包含该目标rom的ip核,然后根据包含目标rom的ip核的可识别初始化文件格式(例如,coe格式)通过ooc的方式生成包含目标rom的ip核的初始化文件(例如,dcp文件)。
[0016]
应理解,在上述方案中,经过ooc处理之后得到的目标文件的结构与包含待验证工程的文件的结构一致。例如,经过ooc处理之后的dcp格式的目标文件,与包含待验证工程的rom的dcp格式的文件结构相同,fpga的这一特性可以有助于解决rom初始化寄存器解析的问题。
[0017]
基于上述方案,如果存在包含预设rom的原始ip核的工程的文件,可以有效的减少工程新建的时间开销。
[0018]
在一些实施例中,所述方法还包括:根据所述目标文件判断所述包含待验证工程的文件的rom的初始化数据是否更新成功。
[0019]
示例地,在将包含待验证工程的文件读入目标文件,并保存之后,再次回读包含待验证工程的文件的rom的数据(例如,该数据可以是包含待验证工程的文件的rom的初始化寄存器数据)与从目标文件的rom(例如,预设rom或目标rom)中获取的寄存器的数据进行对比,如果一致,则说明包含待验证工程的文件的rom的数据更新成功,直接重新生成fpga的可执行文件(例如,bitfile)即可。
[0020]
基于上述方案,可以使得rom的初始化文件验证更加的灵活,芯片的验证迭代更快,极大地提高了验证的效率,解决了debug效率低的问题。
[0021]
在一些实施例中,所述目标文件的结构与所述包含待验证工程的文件的结构一致。
[0022]
根据本公开实施例的第二方面,提供一种数据处理装置,包括存储器和处理器。存储器拥有存储程序。当程序在所述处理器中执行时,处理器用于:获取寄存器的第一数据,所述寄存器的第一数据为目标文件的只读存储器rom的寄存器数据;将所述寄存器的第一数据的路径修改为包含待验证工程的文件的网表路径,以获得所述寄存器的第二数据;根据所述寄存器的第二数据更新所述包含待验证工程的文件的rom的初始化数据。
[0023]
其中,寄存器的第一数据为目标文件的rom的寄存器数据,目标文件为vivado生成的硬件网表文件(例如,dcp文件)。
[0024]
示例地,在打开目标文件之后,可以通过vivado的指令(例如,report_property[get_cells{.*.simple_prim18.ram}])获取目标文件的rom(即,预设rom或目标rom)中所有寄存器的值(应理解,这里不需要知道寄存器的意义,也不需要知道寄存器的值是如何编码的),将这些寄存器的网表路径修改为待验证工程的网表路径(例如,可以通过“set_property”的指令进行修改),从而获得寄存器的第二数据。
[0025]
以及,打开包含待验证工程的文件(例如,包含待验证工程的dcp文件,且该dcp文件是待验证工程布线后的dcp文件),读入已经修改网表路径的目标文件(此时,目标文件包含寄存器的第二数据)。由此,能够实现待验证工程的rom的初始化文件的更新。
[0026]
应理解,在上述方案中,利用fpga中同一类型的rom硬件结构不变的特性,不需要对rom的初始化寄存器做任何的解析,就可以实现rom初始化寄存器的读写。
[0027]
基于上述方案,通过修改rom的初始化值,可以达到更新rom初始化文件的效果,使得原本更新一次rom需要综合布局、布线、生成bitfile全流程参与,精简为只需要打开dcp文件和生成bitfile的流程参与,耗费的时间断崖式地减少。举例而言,一个50%资源使用率的vu440器件的fpga工程一次迭代时间从大于4个小时,可以骤减至10分钟左右。
[0028]
应理解,该装置可以应用于终端设备或网络设备。
[0029]
在一些实施例中,所述处理器具体用于,根据是否存在包含预设rom的原始知识产权ip核的工程的文件,获取所述目标文件;根据所述目标文件获取所述寄存器的第一数据。
[0030]
在一些实施例中,所述处理器具体用于,当存在所述包含预设rom的原始ip核的工程的文件时,通过脱离上下文ooc的方式将所述预设rom的原始ip核替换为所述预设rom的目标ip核,其中,包含所述预设rom的目标ip核的工程的文件为所述目标文件;或当不存在所述包含预设rom的原始ip核的工程文件时,建立包含目标rom的ip核的工程,并根据包含所述目标rom的ip核的可识别初始化文件格式通过ooc的方式生成包含所述目标rom的ip核的初始化文件,其中,所述包含所述目标rom的ip核的初始化文件为所述目标文件。
[0031]
一方面,如果存在包含预设rom的原始ip核的工程的文件(即,xilinx的rom的ip核的工程的文件),只需要通过ooc的方式将预设rom的原始ip核进行重新生成,并将重新生成的预设rom的目标ip核将预设rom的原始ip进行替换,得到的包含预设rom的目标ip核的工程的文件就是目标文件。
[0032]
另一方面,如果不存在包含预设rom的原始ip核的工程文件,则需要新建一个工程,并在该工程中新建一个目标rom的ip核(即,xrom的ip核),且该工程中只包含该目标rom的ip核,然后根据包含目标rom的ip核的可识别初始化文件格式(例如,coe格式)通过ooc的方式生成包含目标rom的ip核的初始化文件(例如,dcp文件)。
[0033]
应理解,在上述方案中,经过ooc处理之后得到的目标文件的结构与包含待验证工
程的文件的结构一致。例如,经过ooc处理之后的dcp格式的目标文件,与包含待验证工程的rom的dcp格式的文件结构相同,fpga的这一特性可以有助于解决rom初始化寄存器解析的问题。
[0034]
基于上述方案,如果存在包含预设rom的原始ip核的工程的文件,可以有效的减少工程新建的时间开销。
[0035]
在一些实施例中,所述处理器还用于,根据所述目标文件判断所述包含待验证工程的文件的rom的初始化数据是否更新成功。
[0036]
示例地,在将包含待验证工程的文件读入目标文件,并保存之后,再次回读包含待验证工程的文件的rom的数据(例如,该数据可以是包含待验证工程的文件的rom的初始化寄存器数据)与从目标文件的rom(例如,预设rom或目标rom)中获取的寄存器的数据进行对比,如果一致,则说明包含待验证工程的文件的rom的数据更新成功,直接重新生成fpga的可执行文件(例如,bitfile)即可。
[0037]
基于上述方案,可以使得rom的初始化文件验证更加的灵活,芯片的验证迭代更快,极大地提高了验证的效率,解决了debug效率低的问题。
[0038]
在一些实施例中,所述目标文件的结构与所述包含待验证工程的文件的结构一致。
[0039]
根据本公开实施例的第三方面,提供一种数据处理的设备,数据处理的处理设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的数据处理方法中所执行的步骤。
[0040]
根据本公开实施例的第四方面,提供一种计算机程序存储介质,其特征在于,所述计算机程序存储介质具有程序指令,当所述程序指令被处理器执行时,使得处理器执行第一方面所述的方法。
[0041]
根据本公开实施例的第五方面,提供一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述至少一个处理器执行第一方面所述的方法。
[0042]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0043]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0044]
图1是本公开实施例提供的一种数据处理方法100的示意图;
[0045]
图2是本公开实施例提供的一种数据处理设备的结构图;
[0046]
图3是本公开实施例提供的一种数据处理装置的结构图。
具体实施方式
[0047]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附
权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0048]
为便于理解本公开实施例,下面首先对本公开实施例涉及的概念进行说明。
[0049]
1.fpga:是在可编程阵列逻辑(pal)、通用阵列逻辑(gal)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
[0050]
fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单元。由于fpga具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。fpga的设计流程包括算法设计、代码仿真以及设计、板机调试,设计者以及实际需求建立算法架构,利用eda建立设计方案或hd编写设计代码,通过代码仿真保证设计方案符合实际要求,最后进行板级调试,利用配置电路将相关文件下载至fpga芯片中,验证实际运行效果。
[0051]
2.soc:soc的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来,soc称为系统级芯片,也可以称为片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
[0052]
soc定义的基本内容主要在两方面:其一是它的构成,其二是它形成过程。系统级芯片的构成可以是系统级芯片控制逻辑模块、微处理器/微控制器cpu内核模块、数字信号处理器dsp模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有adc/dac的模拟前端模块、电源提供和功耗管理模块,对于一个无线soc还有射频前端模块、用户定义逻辑(它可以由fpga或asic实现)以及微电子机械模块,更重要的是一个soc芯片内嵌有基本软件(rdos或cos以及其他应用软件)模块或可载入的用户软件等。
[0053]
3.rom:以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。rom所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存储器能快速方便地改写存储内容。rom所存数据稳定,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。
[0054]
除少数种类的只读存储器(如字符发生器)可通用之外,不同种类的只读存储器功能不同。为便于用户使用和大批量生产,进一步发展出可编程只读存储器(prom)、可擦可编程序只读存储器(eprom)和带电可擦可编程只读存储器(eeprom)等不同的种类。rom应用广泛,诸如apple ii或ibm pc xt/at等早期个人电脑的开机程序(操作系统)或是其他各种微电脑系统中的固件(firmware),所使用的硬件都是rom。
[0055]
4.ip核:也称知识产权模块,在eda技术开发中具有十分重要的地位。美国著名的dataquest咨询公司将半导体产业的ip定义为“用于asic或fpga中的预先设计好的电路功能模块”。ip主要分为软ip、固ip和硬ip。软ip是用verilog/vhdl等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。固ip是完成了综合的功能块。
[0056]
ip核在一些在数字电路中常用,但比较复杂的功能块,如fir滤波器、sdram控制器、pci接口等设计成可修改参数的模块。随着cpld/fpga的规模越来越大,设计越来越复
杂,设计者的主要任务是在规定的时间周期内完成复杂的设计。调用ip核能避免重复劳动,大大减轻工程师的负担,因此使用ip核是一个发展趋势,ip核的重用大大缩短了产品上市时间。
[0057]
5.vivado:是fpga厂商赛灵思公司2012年发布的集成设计环境,包括高度集成的设计环境和新一代从系统到ic级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。这也是一个基于amba axi4互联规范、ip-xact ip封装元数据、工具命令语言(tcl)、synopsys系统约束(sdc)以及其它有助于根据客户需求量身定制设计流程并符合业界标准的开放式环境。赛灵思(xilinx)公司构建的vivado工具把各类可编程技术结合在一起,能够扩展多达1亿个等效asic门的设计。
[0058]
6.脱离上下文(out-of-context,ooc):ooc选项是vivado的默认选项,在ooc模式下,vivado将会把生成的ip当成一个单独的模块来进行综合,生成.dcp(design checkpoint)文件,工程要用到ip的时候,只需从.dcp文件中解析出对应ip的网表文件即可,而不需对ip进行重新综合,这样的方式可以加快综合的速度;而gobal选择则是每次工程综合的时候,ip核都会和工程一起综合,综合时间很长,也不会产生.dcp文件。ooc同时会使用一个只在ooc模式下有用的约束文件“_ooc.xdc”。除了生成.dcp文件,ooc还会生成一个以”stub.v”结尾的hdl文件,是当前ip设计的一个黑盒文件,只有输入输出端口,工程调用这个的时候实际上是在解析.dcp中的网表文件,进而继续综合和布局布线。
[0059]
当前,fpga验证是芯片验证中非常重要的一个环节,对于一个soc系统来说,内部往往有一块rom用于芯片的启动的初始化文件的存储。在芯片完成设计后,rom内部的初始化文件是不可更改的,因为一旦文件发生错误,对于芯片启动是致命的。
[0060]
因此,芯片在生产前需要对rom的初始化文件进行功能可靠性测试,该测试主要依赖于fpga平台。对于soc这种大规模的芯片设计,在fpga上验证也同样需要大规模资源的fpga平台,传统的验证方法是:每次更新fpga中rom的coe文件,rom的ip核需要重新生成,这样对于fpga来说,综合后的网表层次的出现变动,因此在后续的布局和布线阶段需要重新制作才能形成新的bitfile数据流(fpga的设计流程是综合、布局、布线),然而fpga从综合后链接、布局布线到bitfile的生成的周期是非常久的,每次debug的周期代价极大,严重降低了fpga验证的效率。
[0061]
有鉴于此,本公开提供一种数据处理的方法,可以缓解上述问题。
[0062]
本公开实施例提供一种数据处理方法,如图1所示,该数据处理方法包括以下步骤:
[0063]
s101,获取寄存器的第一数据。
[0064]
其中,寄存器的第一数据为目标文件的rom的寄存器数据,目标文件为vivado生成的硬件网表文件(例如,dcp文件)。
[0065]
示例地,可以根据是否存在包含预设rom的原始ip核的工程的文件,获取目标文件,再根据目标文件获取寄存器的第一数据。
[0066]
其中,根据是否存在包含预设rom的原始ip核的工程的文件,获取目标文件的具体方式,可以通过如下两方面实现:
[0067]
一方面,当存在包含预设rom的原始ip核的工程的文件时,通过ooc的方式将预设rom的原始ip核替换为预设rom的目标ip核,其中,包含预设rom的目标ip核的工程的文件为
目标文件。
[0068]
具体地,如果存在包含预设rom的原始ip核的工程的文件(即,xilinx的rom的ip核的工程的文件),只需要通过ooc的方式将预设rom的原始ip核进行重新生成,并将重新生成的预设rom的目标ip核将预设rom的原始ip进行替换,得到的包含预设rom的目标ip核的工程的文件就是目标文件。
[0069]
另一方面,当不存在包含预设rom的原始ip核的工程文件时,建立包含目标rom的ip核的工程,并根据包含目标rom的ip核的可识别初始化文件格式通过ooc的方式生成包含目标rom的ip核的初始化文件,其中,包含目标rom的ip核的初始化文件为目标文件。
[0070]
具体地,如果不存在包含预设rom的原始ip核的工程文件,则需要新建一个工程,并在该工程中新建一个目标rom的ip核(即,xrom的ip核),且该工程中只包含该目标rom的ip核,然后根据包含目标rom的ip核的可识别初始化文件格式(例如,coe格式)通过ooc的方式生成包含目标rom的ip核的初始化文件(例如,dcp文件)。
[0071]
应理解,在上述方案中,经过ooc处理之后得到的目标文件的结构与包含待验证工程的文件的结构一致。例如,经过ooc处理之后的dcp格式的目标文件,与包含待验证工程的rom的dcp格式的文件结构相同,fpga的这一特性可以有助于解决rom初始化寄存器解析的问题。
[0072]
可选地,在s101之前,该方法100还包括:准备包含预设rom的原始ip核的工程的文件,该包含预设rom的原始ip核的工程的文件为fpga可识别的初始化文件(例如,coe文件),且该文件的rom的格式与待验证工程的rom的格式一致。
[0073]
基于上述方案,如果存在包含预设rom的原始ip核的工程的文件,可以有效的减少工程新建的时间开销。
[0074]
此外,由于上述方案采用了linux shell语言和tcl语言编程,执行过程只需要运行shell脚本,等待执行结束即可,避免了gui的繁琐操作。
[0075]
s102,将寄存器的第一数据的路径修改为包含待验证工程的文件的网表路径,以获得寄存器的第二数据。
[0076]
示例地,在打开目标文件之后,可以通过vivado的指令(例如,report_property[get_cells{.*.simple_prim18.ram}])获取目标文件的rom(即,预设rom或目标rom)中所有寄存器的值(应理解,这里不需要知道寄存器的意义,也不需要知道寄存器的值是如何编码的),将这些寄存器的网表路径修改为待验证工程的网表路径(例如,可以通过“set_property”的指令进行修改),从而获得寄存器的第二数据。
[0077]
进一步地,可以将目标文件文件类型改为vivado可以识别的xdc文件。
[0078]
s103,根据寄存器的第二数据更新包含待验证工程的文件的rom的初始化数据。
[0079]
示例地,打开包含待验证工程的文件(例如,包含待验证工程的dcp文件,且该dcp文件是待验证工程布线后的dcp文件),读入已经修改网表路径的目标文件(此时,目标文件包含寄存器的第二数据)。由此,能够实现待验证工程的rom的初始化文件的更新。
[0080]
应理解,在上述方案中,利用fpga中同一类型的rom硬件结构不变的特性,不需要对rom的初始化寄存器做任何的解析,就可以实现rom初始化寄存器的读写。
[0081]
基于上述方案,通过修改rom的初始化值,可以达到更新rom初始化文件的效果,使得原本更新一次rom需要综合布局、布线、生成bitfile全流程参与,精简为只需要打开dcp
文件和生成bitfile的流程参与,耗费的时间断崖式地减少。举例而言,一个50%资源使用率的vu440器件的fpga工程一次迭代时间从大于4个小时,可以骤减至10分钟左右。
[0082]
可选地,在s103之后,该方法100还包括:根据目标初始化文件判断包含待验证工程的文件的rom的初始化数据是否更新成功。
[0083]
示例地,在将包含待验证工程的文件读入目标文件,并保存之后,再次回读包含待验证工程的文件的rom的数据(例如,该数据可以是包含待验证工程的文件的rom的初始化寄存器数据)与从目标文件的rom(例如,预设rom或目标rom)中获取的寄存器的数据进行对比,如果一致,则说明包含待验证工程的文件的rom的数据更新成功,直接重新生成fpga的可执行文件(例如,bitfile)即可。
[0084]
基于上述方案,可以使得rom的初始化文件验证更加的灵活,芯片的验证迭代更快,极大地提高了验证的效率,解决了debug效率低的问题。
[0085]
基于上述图1对应的实施例中所描述的数据处理方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
[0086]
本公开实施例提供一种数据处理设备,如图2所示。数据处理装置200可以是终端设备或者网络设备。该数据处理装置200包括:存储模块201和处理模块202。
[0087]
存储模块201用于存储程序。
[0088]
当所述程序在处理模块202中执行时,所述处理模块202用于执行前文的数据处理方法。
[0089]
处理模块202用于:
[0090]
获取寄存器的第一数据,所述寄存器的第一数据为目标文件的只读存储器rom的寄存器数据;
[0091]
将所述寄存器的第一数据的路径修改为包含待验证工程的文件的网表路径,以获得所述寄存器的第二数据;
[0092]
根据所述寄存器的第二数据更新所述包含待验证工程的文件的rom的初始化数据。
[0093]
可选地,处理模块202具体用于,根据是否存在包含预设rom的原始知识产权ip核的工程的文件,获取所述目标文件;根据所述目标文件获取所述寄存器的第一数据。
[0094]
可选地,所述处理模块202具体用于,当存在所述包含预设rom的原始ip核的工程的文件时,通过脱离上下文ooc的方式将所述预设rom的原始ip核替换为所述预设rom的目标ip核,其中,包含所述预设rom的目标ip核的工程的文件为所述目标文件;或
[0095]
当不存在所述包含预设rom的原始ip核的工程文件时,建立包含目标rom的ip核的工程,并根据包含所述目标rom的ip核的可识别初始化文件格式通过ooc的方式生成包含所述目标rom的ip核的初始化文件,其中,所述包含所述目标rom的ip核的初始化文件为所述目标文件。
[0096]
可选地,所述处理模块202还用于,根据所述目标文件判断所述包含待验证工程的文件的rom的初始化数据是否更新成功。
[0097]
可选地,所述目标文件的结构与所述包含待验证工程的文件的结构一致。
[0098]
本公开实施例提供的数据处理设备,首先通过判断是否存在包含预设rom的原始ip核的工程的文件,获取目标文件,在存在包含预设rom的原始ip核的工程的文件的情况
下,可以有效的减少工程新建的时间开销。
[0099]
其次,利用fpga中同一类型的rom硬件结构不变的特性,不需要对rom的初始化寄存器做任何的解析,就可以实现rom初始化寄存器的读写。
[0100]
此外,使得原本更新一次rom需要综合布局、布线、生成bitfile全流程参与,精简为只需要打开dcp文件和生成bitfile的流程参与,耗费的时间断崖式地减少。举例而言,一个50%资源使用率的vu440器件的fpga工程一次迭代时间从大于4个小时,可以骤减至10分钟左右。
[0101]
最后,可以使得rom的初始化文件验证更加的灵活,芯片的验证迭代更快,极大地提高了验证的效率,解决了debug效率低的问题。
[0102]
基于上述图1对应的实施例中所描述的数据处理方法,本公开实施例还提供一种数据处理装置,如图3所示。
[0103]
数据处理装置300包括存储器301和处理器302。数据处理装置300可以是终端设备或者网络设备。
[0104]
存储器301用于存储程序指令。
[0105]
当所述程序在处理器302中执行时,所述处理器302用于执行前文中的数据处理方法。
[0106]
处理器302用于:
[0107]
获取寄存器的第一数据,所述寄存器的第一数据为目标文件的只读存储器rom的寄存器数据;
[0108]
将所述寄存器的第一数据的路径修改为包含待验证工程的文件的网表路径,以获得所述寄存器的第二数据;
[0109]
根据所述寄存器的第二数据更新所述包含待验证工程的文件的rom的初始化数据。
[0110]
可选地,处理器302具体用于,根据是否存在包含预设rom的原始知识产权ip核的工程的文件,获取所述目标文件;根据所述目标文件获取所述寄存器的第一数据。
[0111]
可选地,处理器302具体用于,当存在所述包含预设rom的原始ip核的工程的文件时,通过脱离上下文ooc的方式将所述预设rom的原始ip核替换为所述预设rom的目标ip核,其中,包含所述预设rom的目标ip核的工程的文件为所述目标文件;或
[0112]
当不存在所述包含预设rom的原始ip核的工程文件时,建立包含目标rom的ip核的工程,并根据包含所述目标rom的ip核的可识别初始化文件格式通过ooc的方式生成包含所述目标rom的ip核的初始化文件,其中,所述包含所述目标rom的ip核的初始化文件为所述目标文件。
[0113]
可选地,处理器302还用于,根据所述目标文件判断所述包含待验证工程的文件的rom的初始化数据是否更新成功。
[0114]
可选地,所述目标文件的结构与所述包含待验证工程的文件的结构一致。
[0115]
基于上述图1对应的实施例中所描述的数据处理方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:read only memory,rom)、随机存取存储器(英文:random access memory,ram)、cd-rom、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例
中所描述的应用于终端设备或服务器的数据处理方法,此处不再赘述。
[0116]
基于上述图1对应的实施例中所描述的数据处理方法,本公开实施例还提供一种芯片系统,该芯片系统包括至少一个处理器,当程序指令在至少一个处理器中执行时,使得至少一个处理器执行上述图1对应的实施例中所描述的应用于终端设备或服务器的数据处理方法,此处不再赘述。
[0117]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0118]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1