一种自动生成ralf文件的方法及系统
技术领域
本发明涉及数据处理领域,具体涉及一种自动生成ralf文件的方法及系统。
背景技术
目前UVM提供一种RAL机制用于验证寄存器,synopsys提供了一个工具ralgen专门生成RAL机制相关的文件,ralgen需要吃进.ralf为后缀的文件。现有技术中寄存器信息说明包含在不可修改的PDF文档或可以编辑的Word/TXT格式文档,里面包含数量巨大的寄存器,利用人工编写耗时耗力且容易出错。
发明内容
因此,本发明提供一种自动生成ralf文件的方法及系统,克服了现有技术中对芯片验证时,需要人工编写包含数量巨大的寄存器信息说明的相关文件且效率低的不足。
第一方面,本发明实施例提供一种自动生成ralf文件的方法,包括如下步骤:
将寄存器信息的说明文档转化为第一Excel格式文档;根据block字段将所述第一Excel格式文档分为多个sheet列表的第二Excel格式文档;
获取所述第二Excel格式文档中各个sheet列表的寄存器信息并存储为ralf文件格式,生成ralf文件。
在一可选的实施例中,所述第一Excel格式文档包括多个sheet列表,所述多个sheet列表与说明文档的每页内容一一对应;所述将寄存器信息的说明文档转化为第一Excel格式文档的步骤之后还包括:将所述第一Excel格式文档中的各个sheet列表合并为一个sheet列表的Excel格式文档。在一可选的实施例中,所述根据寄存器的block字段将所述第一Excel格式文档分为多个sheet列表的第二Excel格式文档的步骤之后、及获取所述第二Excel格式文档中各个sheet列表的信息并存储为ralf文件格式,生成ralf文件的步骤之前,所述方法还包括:根据ralf文件格式的内容对所述第二Excel格式文档进行信息过滤。
在一可选的实施例中,根据所述block字段命名所述第二Excel格式文档的各个sheet列表。
在一可选的实施例中,所述根据block字段将所述第一Excel格式文档分为多个sheet列表的第二Excel格式文档的步骤,包括:对第一Excel格式文档寄存器层次标识符中的block字段依次搜索,判断各个block字段是否是第一次出现;当block字段是第一次出现时,创建以block字段命名的sheet列表,获取对应的寄存器信息并添加到所述sheet列表中;当block字段不是第一次出现时,获取对应的寄存器信息并添加到以所述block字段命名的sheet列表中,直至将所述第一Excel格式文档的所有寄存器信息按照所述block字段命名的sheet列表进行归类。
在一可选的实施例中,所述获取所述第二Excel格式文档中各个sheet列表的信息并存储为ralf文件格式,生成ralf文件的步骤,包括:获取需处理的block字段的名称、宽度、基地址、路径信息,并按照.ralf文件格式存储到临时文件中;获取表征寄存器唯一身份的关键字;根据所述关键字获取寄存器的个数;搜索匹配所述关键字的寄存器,并获取寄存器的所在行;根据寄存器的所在行及寄存器的格式匹配所述寄存器的硬件代码路径,按照ralf文件格式存储到临时文件中;搜索地址关键字,获取寄存器的基地址及寄存器的偏移地址,并将所述偏移地址按照ralf文件格式存储到临时文件中;逐行获取各个bit的信息,并按照ralf文件格式存储到临时文件中;依次处理各个sheet列表的信息,直至获取各个block字段的信息,并生成包含所有寄存器信息的ralf文件。
在一可选的实施例中,所述表征寄存器唯一身份的关键字为寄存器名称。
在一可选的实施例中,所述逐行获取各个bit的信息的步骤,包括:搜索以数字开头表征bit的行,并逐行提取各个bit的名称、位宽、读取权限和复位值。
第二方面,本发明实施例提供一种自动生成ralf文件的系统,包括:第一Excel格式文档获取模块,用于将寄存器信息的说明文档转化为第一Excel格式文档;第二Excel格式文档获取模块,用于根据block字段将所述第一Excel格式文档分为多个sheet列表的第二Excel格式文档;ralf文件生成模块,用于获取所述第二Excel格式文档中各个sheet列表的寄存器信息并存储为ralf文件格式,生成ralf文件。
第三方面,本发明提供一种计算机设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述第一方面所述的自动生成ralf文件的方法。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述第一方面所述的自动生成ralf文件的方法。
本发明技术方案,具有如下优点:
本发明提供的自动生成ralf文件的方法及系统,首先利用转换工具将寄存器PDF格式的说明文档转换成Excel格式的文档,或者利用脚本将Word格式或TXT格式的说明文档转换成Excel格式的文档,根据寄存器的block字段将sheet列表分为多个sheet列表,然后根据ralf文件格式的要求,依次获取Excel格式文档中各个sheet列表中的寄存器信息,自动生成最终的ralf文件,其生成过程快速,进而方便利用ralgen来生成RAL机制的文件,利用RAL机制的文件对芯片进行验证。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的自动生成ralf文件的方法一个具体示例的流程图;
图2为本发明实施例提供的自动生成ralf文件的方法另一个具体示例的流程图;
图3为本发明实施例提供的自动生成ralf文件的方法另一个具体示例的流程图;
图4为本发明实施例提供的Excel文档列表一个具体示例的示意图;
图5为本发明实施例提供的Excel文档列表一个具体示例的示意图;
图6为本发明实施例提供的脚本工具一个具体示例的示意图;
图7为本发明实施例提供的自动生成ralf文件的系统一个具体示例的流程图;
图8为本发明实施例提供的计算机终端一个具体示例的组成图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供一种自动生成ralf文件的方法,如图1所示,该自动生成ralf文件的方法包括如下步骤:
步骤S1:将寄存器信息的说明文档转化为第一Excel格式文档。
在本发明实施例中,寄存器信息的说明文档可以为PDF格式的文件,也可以为Word格式或TXT格式的文件,说明文档里均包含数量巨大的寄存器信息。
当寄存器信息的说明文档为PDF格式的文件时,在一实施例中,可以利用转换工具将PDF格式文件转化为Excel格式文档,该Excel格式的文件按照PDF文档的每页内容生成,包括多个sheet列表,即PDF格式的每页内容与Excel格式文档的sheet列表中的内容一一对应。为了方便后续整理寄存器信息,需要将按照PDF文档的每页内容生成各个sheet列表并为一个sheet列表的Excel格式文档。在一实施例中,也可以先将PDF格式的文件转换成Word格式或TXT格式的文件,通过脚本读取Word/TXT格式的文件的内容,写入到Excel格式的文档中。当寄存器信息的说明文档为Word格式或TXT格式的文件时,通过脚本读取Word格式或TXT格式的文件内容,写入到创建的Excel格式的文档中。
步骤S2:根据寄存器的block字段将第一Excel格式文档分为多个sheet列表的第二Excel格式文档。
在本发明实施例中,利用第一Excel格式文档利用寄存器的层次结构Mnemonic(寄存器层次标识符)中block(功能模块)字段依次进行搜索匹配,根据block字段分为多个sheet列表的第二Excel格式文档,并根据block字段命名第二Excel格式文档的各个sheet列表。
步骤S3:获取第二Excel格式文档中各个sheet列表的信息并存储为ralf文件格式,生成ralf文件。
本发明实施例中,根据ralf文件格式的要求,依次获取第二文档中各个sheet列表中的寄存器信息,生成最终的.ralf文件,进而利用ralgen来生成RAL机制的文件,利用RAL机制的文件对芯片进行验证。
本发明实施例提供的一种自动生成ralf文件的方法,首先利用转换工具将寄存器PDF格式的说明文档转换成Excel格式的文档,或者利用脚本将Word格式或TXT格式的说明文档转换成Excel格式的文档,根据block字段将sheet列表分为多个sheet列表,然后根据ralf文件格式的要求,依次获取第二文档中各个sheet列表中的寄存器信息,自动生成最终的.ralf文件,生成过程快速,进而方便利用脚本ralgen来生成RAL机制的文件,利用RAL机制的文件对芯片进行验证。
在一可选的实施例中,在执行步骤S2的步骤之后、及S3的步骤之前,所述方法还包括:根据ralf文件格式的内容对第二Excel格式文档进行信息过滤,从而去掉无效的信息,提高后续信息提取的效率。
在一可选的实施例中,执行步骤S2中的过程,如图2所示,具体包括:
步骤S21:对第一Excel格式文档寄存器层次标识符中的block字段依次搜索。
步骤S22:判断各个block字段是否是第一次出现。
步骤S23:当block字段是第一次出现时,创建以block字段命名的sheet列表,获取对应的寄存器信息并添加到sheet列表中。
步骤S24:当block字段不是第一次出现时,获取对应的寄存器信息并添加到以block字段命名的sheet列表中;
步骤S25:判断block字段是否全部完成搜索,当没有全部完成搜索时返回到步骤S21,直至将第一Excel格式文档的所有寄存器信息按照所述block字段命名的sheet列表进行归类。
本发明实施例中,将第一Excel格式文档利用寄存器的层次结构Mnemonic中block字段依次进行搜索匹配,若是该block字段第一次出现,则新建以该block命名的sheet列表,并将寄存器信息读取并写入到此新建的sheet列表中,若是新搜索到的block字段与此前搜索到的block字段匹配,则直接将寄存器的信息读取并写入到此前以该block命名的sheet列表中,重复进行,直到对所有的sheet列表搜索完成。
在一可选的实施例中,执行步骤S3中的过程,如图3所示,具体包括:
步骤S31:获取需处理的block字段的名称、宽度、基地址、路径信息,并按照.ralf文件格式存储到临时文件中。
在本发明实施例中,在如图4所示的Excel文档中,利用脚本工具根据正在处理的block sheet名称,读取block名称、宽度、基地址、block_path信息,并按照.ralf文件格式存储到临时文件中。
步骤S32:获取表征寄存器唯一身份的关键字。
在本发明实施例中,优选表征寄存器唯一身份的关键字为寄存器名称RegisterName,但是并不以此为限,在其他实施例中,可以采用其他信息表征寄存器唯一身份的关键字。
步骤S33:根据关键字获取寄存器的个数。
在本发明实施例中,根据Register Name关键字进行统计,记录所处理的blocksheet中寄存器的个数。
步骤S34:搜索匹配关键字的寄存器,并获取寄存器的所在行。
在本发明实施例中,依次搜索Register Name关键字,并记录当前所在行。
步骤S35:根据寄存器的所在行及寄存器的格式匹配所述寄存器的硬件代码路径,按照ralf文件格式存储到临时文件中。
在本发明实施例中,按照如图5所示Excel文档中sheet列表中的格式,根据寄存器的所在行及寄存器的格式搜索hdl_path关键字,并将内容按照.ralf文件格式存储到临时文件中。
步骤S36:搜索地址关键字,获取寄存器的基地址及寄存器的偏移地址,并将偏移地址按照ralf文件格式存储到临时文件中。
在本发明实施例中,利用例如是如图6所示的代码搜索Address关键字,并根据所处理block字段的base_addr(基地址)算出该寄存器的offset_addr(偏移地址),并将其按照.ralf文件格式存储到临时文件中。
步骤S37:逐行获取各个bit的信息,并按照ralf文件格式存储到临时文件中。
本发明实施例中,通过搜索以数字开头表征bit的行,并逐行提取各个bit的名称、位宽、读取权限和复位值。
步骤S48:依次处理各个sheet列表的信息,直至获取各个block字段的信息,并生成包含所有寄存器信息的ralf文件。
本发明实施例中,当所有Block处理完成后,即生成最终的ralf文件,进而利用脚本ralgen来生成RAL机制的文件。
实施例2
本发明实施例提供一种自动生成ralf文件的系统,如图7所示,该自动生成ralf文件的系统包括:
第一Excel格式文档获取模块1,用于将寄存器信息的说明文档转化为第一Excel格式文档。此模块执行实施例1中的步骤S1所描述的方法,在此不再赘述。
第二Excel格式文档获取模块2,
用于根据block字段将所述第一Excel格式文档分为多个sheet列表的第二Excel格式文档。此模块执行实施例1中的步骤S2所描述的方法,在此不再赘述。
ralf文件生成模块3,用于获取所述第二Excel格式文档中各个sheet列表的信息并存储为ralf文件格式,生成ralf文件。此模块执行实施例1中的步骤S3所描述的方法,在此不再赘述。
本发明实施例提供的自动生成ralf文件的系统,首先利用转换工具将寄存器PDF格式的说明文档转换成Excel格式的文档,或者利用脚本将Word格式或TXT格式的说明文档转换成Excel格式的文档,根据寄存器的block字段将Excel格式文件的sheet列表分为多个sheet列表,然后根据ralf文件格式的要求,依次获取Excel格式文档中各个sheet列表中的寄存器信息,自动生成最终的ralf文件,其生成过程快速,进而方便利用工具ralgen来生成RAL机制的文件,利用RAL机制的文件对芯片进行验证。
实施例3
本发明实施例提供一种计算机设备,如图8所示,包括:至少一个处理器401,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口403,存储器404,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,通信接口403可以包括显示屏(Display)、键盘(Keyboard),可选通信接口403还可以包括标准的有线接口、无线接口。存储器404可以是高速RAM存储器(Ramdom Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。其中处理器401可以执行图1至图3描述的自动生成ralf文件的方法,存储器404中存储一组程序代码,且处理器401调用存储器404中存储的程序代码,以用于执行实施例1中的自动生成ralf文件的方法。
其中,通信总线402可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器404还可以包括上述种类的存储器的组合。
其中,处理器401可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器404还用于存储程序指令。处理器401可以调用程序指令,实现如本申请实施例1中提供的自动生成ralf文件的方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的自动生成ralf文件的方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(HardDisk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。