用于寄存器代码自动生成的方法、设备、介质及系统技术方案

技术编号:38336919 阅读:13 留言:0更新日期:2023-08-02 09:17
本申请提供用于寄存器代码自动生成的方法、设备、介质及系统。方法包括:获取寄存器信息、配置信息和寄存器间逻辑关系;基于寄存器信息,调用例化寄存器代码生成与寄存器一一对应的寄存器对象,以及,基于寄存器间逻辑关系确定第一命名规则,用于规范化所生成的寄存器对象各自的寄存器名称的前缀和后缀;基于寄存器对象各自的寄存器名称的前缀和后缀,确定用于实现寄存器相关联的逻辑功能的寄存器对象之间的连接关系,然后利用寄存器对象的连接关系、寄存器对象和接口读写逻辑生成寄存器相关联的寄存器代码,其中接口读写逻辑基于配置信息生成。如此有利于寄存器代码的稳定性和提升自动化效率。自动化效率。自动化效率。

【技术实现步骤摘要】
用于寄存器代码自动生成的方法、设备、介质及系统


[0001]本申请涉及计算机
,尤其涉及用于寄存器代码自动生成的方法、设备、介质及系统。

技术介绍

[0002]随着芯片规模扩大和应用场景多样化,需要面临各种类型的芯片与处理器适配等问题,并且需要考虑如何实现各种功能。因此,芯片与处理器之间的适配需要用到大量寄存器,例如芯片通过数据寄存器来进行数据传输,又例如处理器通过芯片的控制寄存器来控制芯片行为。这样就使得寄存器规模越来越大并且寄存器类型也变得多样化。因此导致寄存器访问通路的寄存器转换级(Register Transfer Level,RTL)的实现工作量大,耗时长并且容易出错,并且依赖人工方式来进行寄存器代码开发效率低下。
[0003]为此,本申请提供了一种用于寄存器代码自动生成的方法、设备、介质及系统,用于应对现有技术中的技术难题。

技术实现思路

[0004]第一方面,本申请提供了一种用于寄存器代码自动生成的方法。所述方法包括:获取寄存器信息、配置信息和寄存器间逻辑关系,其中,所述寄存器信息包括至少一个寄存器的访问属性,所述配置信息包括所述至少一个寄存器相关联的接口信息和校验机制,所述寄存器间逻辑关系指示所述至少一个寄存器相关联的逻辑功能;基于所述寄存器信息,调用例化寄存器代码生成与所述至少一个寄存器一一对应的至少一个寄存器对象,以及,基于所述寄存器间逻辑关系确定第一命名规则,所述第一命名规则用于规范化所生成的所述至少一个寄存器对象各自的寄存器名称的前缀和后缀;基于所述至少一个寄存器对象各自的寄存器名称的前缀和后缀,确定用于实现所述至少一个寄存器相关联的逻辑功能的所述至少一个寄存器对象之间的连接关系,然后利用所述至少一个寄存器对象的连接关系、所述至少一个寄存器对象和接口读写逻辑生成所述至少一个寄存器相关联的寄存器代码,其中,所述接口读写逻辑基于所述配置信息生成。
[0005]通过本申请的第一方面,针对芯片开发过程中寄存器迭代所带来的更新需求,利用了寄存器代码编写中的规律性特别是基于寄存器的访问属性,调用相应的例化寄存器代码,来实例化寄存器对象和域段对象,也即调用例化寄存器代码生成与所述至少一个寄存器一一对应的至少一个寄存器对象,实现了自动化生成寄存器代码并且可以有效地保证寄存器代码的稳定性和正确性;进一步地,将自动化生成寄存器对象的过程与自动化生成寄存器间逻辑及连线的过程进行解耦,通过规范化寄存器名称的前缀和后缀,实现了寄存器逻辑功能的自动化生成并且提升了自动化效率。
[0006]在本申请的第一方面的一种可能的实现方式中,所述寄存器信息、所述配置信息和所述寄存器间逻辑关系按照寄存器表格格式存储在寄存器文件中,其中,获取所述寄存器信息、所述配置信息和所述寄存器间逻辑关系,包括:读取所述寄存器文件并且基于所述
寄存器表格格式获取所述寄存器信息、所述配置信息和所述寄存器间逻辑关系。
[0007]在本申请的第一方面的一种可能的实现方式中,所述方法还包括:在获取所述寄存器信息、所述配置信息和所述寄存器间逻辑关系之后,基于所述寄存器表格格式,将所获取的所述寄存器信息、所述配置信息和所述寄存器间逻辑关系保存到二维数据表,所述二维数据表用于查错纠错。
[0008]在本申请的第一方面的一种可能的实现方式中,通过检查所述二维数据表识别所述寄存器文件的错误,包括:识别基地址是否重复、识别页签名称是否重复、识别页签地址偏移是否重复、识别寄存器名称和域段名称是否重复、识别域段地址是否与预设位宽不一致、识别寄存器类型是否正确、识别同一个寄存器内的域段类型是否正确、识别域段地址是否连续。
[0009]在本申请的第一方面的一种可能的实现方式中,所述寄存器信息还包括:寄存器名称、寄存器地址、域段名称、域段范围、域段访问属性、域段复位值、域段描述,所述配置信息所包括的所述至少一个寄存器相关联的接口信息包括:寄存器基地址、接口类型、接口地址位宽、接口数据位宽、例化数量,所述配置信息所包括的所述至少一个寄存器相关联的校验机制包括所述至少一个寄存器各自是否生成奇偶校验逻辑。
[0010]在本申请的第一方面的一种可能的实现方式中,所述至少一个寄存器的访问属性基于所述至少一个寄存器各自所包括的域段的域段访问属性确定。
[0011]在本申请的第一方面的一种可能的实现方式中,所述例化寄存器代码包括与多个例化寄存器类型一一对应的例化共用模块,第一寄存器是所述至少一个寄存器中的任一寄存器,其中,基于所述寄存器信息,调用所述例化寄存器代码生成与所述至少一个寄存器一一对应的所述至少一个寄存器对象,包括:基于所述寄存器信息所包括的所述第一寄存器的访问属性,选择所述多个例化寄存器类型中的第一例化寄存器类型,然后调用与所述第一例化寄存器类型对应的例化共用模块来利用所述寄存器信息自动化生成与所述第一寄存器对应的寄存器对象的寄存器代码。
[0012]在本申请的第一方面的一种可能的实现方式中,所述多个例化寄存器类型包括:可读可写寄存器类型、只读寄存器类型、读清寄存器类型、可计数可读清寄存器类型、可读可写清零寄存器类型、只写寄存器类型、可读可写逻辑可写寄存器类型。
[0013]在本申请的第一方面的一种可能的实现方式中,所述寄存器间逻辑关系所指示的所述至少一个寄存器相关联的逻辑功能包括中断树功能。
[0014]在本申请的第一方面的一种可能的实现方式中,所述第一命名规则还用于规范化所生成的所述至少一个寄存器对象各自所包括的域段的域段名称的前缀和后缀,针对所述至少一个寄存器中的每一个寄存器,基于该寄存器的寄存器名称的前缀和后缀以及该寄存器所包括的域段的域段名称的前缀和后缀,确定所述至少一个寄存器对象之间的连接关系。
[0015]在本申请的第一方面的一种可能的实现方式中,所述至少一个寄存器对象包括第一寄存器对象,所述第一寄存器对象的寄存器名称的前缀用于指示所述第一寄存器对象所属的第一中断树机制,所述第一寄存器对象的寄存器名称的后缀用于指示所述第一寄存器对象与所述第一中断树机制下的其它寄存器对象之间的连接关系。
[0016]在本申请的第一方面的一种可能的实现方式中,所述至少一个寄存器对象包括第
二寄存器对象,所述第二寄存器对象包括至少两个域段,所述第二寄存器所包括的所述至少两个域段各自的域段名称的前缀分别用于指示所述至少两个域段各自所属的中断树机制,所述第二寄存器所包括的所述至少两个域段各自的域段名称的后缀用于指示所述至少两个域段分别与所述至少两个域段各自所属的中断树机制下的其它域段之间的连接关系。
[0017]在本申请的第一方面的一种可能的实现方式中,所述方法还包括:通过改变所述第二寄存器所包括的所述至少两个域段各自的域段名称的后缀,从而改变所生成的所述至少一个寄存器相关联的寄存器代码的中断树功能。
[0018]在本申请的第一方面的一种可能的实现方式中,基于所述至少一个寄存器对象各自的寄存器名称的前缀和后缀确定所述至少一个寄存器对象的连接关系的过程与基于所述寄存器信息本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于寄存器代码自动生成的方法,其特征在于,所述方法包括:获取寄存器信息、配置信息和寄存器间逻辑关系,其中,所述寄存器信息包括至少一个寄存器的访问属性,所述配置信息包括所述至少一个寄存器相关联的接口信息和校验机制,所述寄存器间逻辑关系指示所述至少一个寄存器相关联的逻辑功能;基于所述寄存器信息,调用例化寄存器代码生成与所述至少一个寄存器一一对应的至少一个寄存器对象,以及,基于所述寄存器间逻辑关系确定第一命名规则,所述第一命名规则用于规范化所生成的所述至少一个寄存器对象各自的寄存器名称的前缀和后缀;基于所述至少一个寄存器对象各自的寄存器名称的前缀和后缀,确定用于实现所述至少一个寄存器相关联的逻辑功能的所述至少一个寄存器对象之间的连接关系,然后利用所述至少一个寄存器对象的连接关系、所述至少一个寄存器对象和接口读写逻辑生成所述至少一个寄存器相关联的寄存器代码,其中,所述接口读写逻辑基于所述配置信息生成。2.根据权利要求1所述的方法,其特征在于,所述寄存器信息、所述配置信息和所述寄存器间逻辑关系按照寄存器表格格式存储在寄存器文件中,其中,获取所述寄存器信息、所述配置信息和所述寄存器间逻辑关系,包括:读取所述寄存器文件并且基于所述寄存器表格格式获取所述寄存器信息、所述配置信息和所述寄存器间逻辑关系。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在获取所述寄存器信息、所述配置信息和所述寄存器间逻辑关系之后,基于所述寄存器表格格式,将所获取的所述寄存器信息、所述配置信息和所述寄存器间逻辑关系保存到二维数据表,所述二维数据表用于查错纠错。4.根据权利要求3所述的方法,其特征在于,通过检查所述二维数据表识别所述寄存器文件的错误,包括:识别基地址是否重复、识别页签名称是否重复、识别页签地址偏移是否重复、识别寄存器名称和域段名称是否重复、识别域段地址是否与预设位宽不一致、识别寄存器类型是否正确、识别同一个寄存器内的域段类型是否正确、识别域段地址是否连续。5.根据权利要求1所述的方法,其特征在于,所述寄存器信息还包括:寄存器名称、寄存器地址、域段名称、域段范围、域段访问属性、域段复位值、域段描述,所述配置信息所包括的所述至少一个寄存器相关联的接口信息包括:寄存器基地址、接口类型、接口地址位宽、接口数据位宽、例化数量,所述配置信息所包括的所述至少一个寄存器相关联的校验机制包括所述至少一个寄存器各自是否生成奇偶校验逻辑。6.根据权利要求5所述的方法,其特征在于,所述至少一个寄存器的访问属性基于所述至少一个寄存器各自所包括的域段的域段访问属性确定。7.根据权利要求1所述的方法,其特征在于,所述例化寄存器代码包括与多个例化寄存器类型一一对应的例化共用模块,第一寄存器是所述至少一个寄存器中的任一寄存器,其中,基于所述寄存器信息,调用所述例化寄存器代码生成与所述至少一个寄存器一一对应的所述至少一个寄存器对象,包括:基于所述寄存器信息所包括的所述第一寄存器的访问属性,选择所述多个例化寄存器类型中的第一例化寄存器类型,然后调用与所述第一例化寄存器类型对应的例化共用模块来利用所述寄存器信息自动化生成与所述第一寄存器对应的寄存器对象的寄存器代码。8.根据权利要求7所述的方法,其特征在于,所述多个例化寄存器类型包括:可读可写寄存器类型、只读寄存器类型、读清寄存器类型、可计数可读清寄存器类型、可读可写清零
寄存器类型、只写寄存器类型、可读可写逻辑可写寄存器类型。9.根据权利要求1所述的方法,其特征在于,所述寄存器间逻辑关系所指示的所述至少一个寄存器相关联的逻辑功能包括中断树功能。10.根据权利要求9所述的方法,其特征在于,所述第一命名规则还用于规范化所生成的所述至少一个寄存器对象各自所包括的域段的域段名称的前缀和后缀,针对所述至少一个寄存器中的每一个寄存器,基于该寄存器的寄存器名称的前缀和后缀以及该寄存器所包括的域段的域段名称的前缀和后缀,确定所述至少一个寄存器对象之间的连接关系。11.根据权利要求9所述的方法,其特征在于,所述至少一个寄存器对象包括第一寄存器对象,所述第一寄存器对象的寄存器名称的前缀用于指示所述第一寄存器对象所属的第一中断树机制,所述第一寄存器对象的寄存器名称的后缀用于指示所述第一寄存器对象与所述第一中断树机制下的其它寄存器对象之间的连接关系。12.根据权利要求10所述的方法,其特征在于,所述至少一个寄存器对象包括第二寄存器对象,所述第二寄存器对象包括至少两个域段,所述第二寄存器所包括的所述至少两个域段各自的域段名称的前缀分别用于指示所述至少两个域段各自所属的中断树机制,所述第二寄存器所包括的所述至少两个域段各自的域段名称的后缀用于指示所述至少两个域段分别与所述至少两个域段各自所属的中断树机制下的其它域段之间的连接关系。13.根据权利要求12所述的方法,其特征在于,所述方法还包括:通过改变所...

【专利技术属性】
技术研发人员:仇露青周欢欢
申请(专利权)人:芯耀辉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1