【技术实现步骤摘要】
用于寄存器代码自动生成的方法、设备、介质及系统
[0001]本申请涉及计算机
,尤其涉及用于寄存器代码自动生成的方法、设备、介质及系统。
技术介绍
[0002]随着芯片规模扩大和应用场景多样化,需要面临各种类型的芯片与处理器适配等问题,并且需要考虑如何实现各种功能。因此,芯片与处理器之间的适配需要用到大量寄存器,例如芯片通过数据寄存器来进行数据传输,又例如处理器通过芯片的控制寄存器来控制芯片行为。这样就使得寄存器规模越来越大并且寄存器类型也变得多样化。因此导致寄存器访问通路的寄存器转换级(Register Transfer Level,RTL)的实现工作量大,耗时长并且容易出错,并且依赖人工方式来进行寄存器代码开发效率低下。
[0003]为此,本申请提供了一种用于寄存器代码自动生成的方法、设备、介质及系统,用于应对现有技术中的技术难题。
技术实现思路
[0004]第一方面,本申请提供了一种用于寄存器代码自动生成的方法。所述方法包括:获取寄存器信息、配置信息和寄存器间逻辑关系,其中,所述寄存器信息包括至少一个寄存器的访问属性,所述配置信息包括所述至少一个寄存器相关联的接口信息和校验机制,所述寄存器间逻辑关系指示所述至少一个寄存器相关联的逻辑功能;基于所述寄存器信息,调用例化寄存器代码生成与所述至少一个寄存器一一对应的至少一个寄存器对象,以及,基于所述寄存器间逻辑关系确定第一命名规则,所述第一命名规则用于规范化所生成的所述至少一个寄存器对象各自的寄存器名称的前缀和后缀;基于所述至少一个寄存器 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其特征在于,所述方法还包括:通过改变所...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。