本申请涉及芯片数字前端设计,尤指一种硬件描述语言代码生成方法、闪存控制器和集成电路。
背景技术:
1、随着芯片产业的发展,eflash(即闪存器)也在不断地更新迭代,由于不同的芯片对闪存器进行读写操作数据时需要选择是否添加ecc校验、扰码、加解密等功能,从而导致原有闪存控制器在新芯片中无法重用。
2、闪存控制器的设计涉及功能的选择、接口协议、时序控制等多个方面。因此,重新设计闪存控制器的工作量巨大,不仅延长芯片开发时间,还容易忽略设计闪存控制器的细节问题而导致芯片的部分功能失效。例如,闪存器通常用于存储启动代码,当闪存控制器部分功能失效时会导致芯片因无法启动而整体失效。
技术实现思路
1、本发明的目的是提供一种硬件描述语言代码生成方法、闪存控制器和集成电路,实现自动设计闪存控制器硬件电路代码文件,提高了闪存控制器的可重用性,避免了手动编码出错、开发时间长的问题。
2、本发明提供的技术方案如下:
3、本发明提供了一种硬件描述语言代码生成方法,包括以下步骤:
4、基于闪存器的设计参数对闪存控制器所设计的多个功能模块,各个功能模块的第一逻辑关系数据及第一功能参数数据,编辑生成闪存控制器的第一硬件描述语言代码文件;功能模块包括必要功能模块、非必要功能模块。
5、当识别到功能模块的功能发生改变时,从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据;功能参数配置文件是根据芯片对功能模块的功能需求进行设置或修改。
6、根据第二逻辑关系数据、第二功能参数数据,修改第一硬件描述语言代码文件,以重新生成第二硬件描述语言代码文件。
7、具体的,通过本发明提出的硬件描述语言代码生成方法,在原有eflash控制器的第一硬件描述语言代码文件的基础上,解析现有的功能参数配置文件的功能参数数据和逻辑关系数据,将第一功能参数数据、第一逻辑关系数据修改成第二功能参数数据、第二逻辑关系数据而生成第二硬件描述语言代码文件,无需人工干预而自动生成eflash控制器的逻辑电路,可以避免设计疏忽导致的时序、连接等错误。
8、进一步的,在从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据之前,包括:
9、从闪存器的数据手册中提取设计参数,设计闪存控制器的功能模块;从芯片对闪存控制器功能需求的文档中提取功能需求;将功能模块满足功能需求所对应的设计参数写入功能参数配置文件中的一类子文件;一类子文件包括同一个功能模块的逻辑关系和功能参数;将满足功能需求的部分功能所对应的设计参数写入功能参数配置文件中的另一类子文件;另一类子文件包括多个功能模块的逻辑关系和功能参数。
10、具体的,根据闪存器的设计参数和芯片对闪存控制器的功能需求,将功能需求所对应的功能设计参数写入功能参数配置文件中,便于后续解析并提取逻辑关系和功能参数。
11、进一步的,从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据,包括:
12、当识别到非必要功能模块的功能发生改变时,从功能参数配置文件对应类别的子文件中,获取非必要功能模块的第二逻辑关系子数据、第二功能参数子数据;以及获取其他相关功能模块的第二逻辑关系子数据、第二功能参数子数据。
13、将非必要功能模块的第二逻辑关系子数据和其他相关功能模块的第二逻辑关系子数据作为所述第二逻辑关系数据;将非必要功能模块的第二功能参数子数据和其他相关功能模块的第二功能参数子数据所述第二功能参数数据。
14、进一步的,从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据,还包括:
15、当识别到必要功能模块的功能发生改变时,从功能参数配置文件对应类别的子文件中,获取所述必要功能模块的第二逻辑关系数据、第二功能参数数据。
16、进一步的,在从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据之前,还包括:
17、基于第一硬件设计代码文件中定义的非必要功能模块或必要功能模块中部分器件的禁用功能,开启或关闭非必要功能模块或所述必要功能模块中部分器件的禁用功能。
18、具体的,通过禁用功能可以降低生成闪存控制器的复杂性,使得代码文件中的代码更加模块化,提高eflash控制器硬件设计代码文件的可维护性和可读性。
19、进一步的,在从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据之前,还包括:
20、基于功能参数配置文件中发生的修改,来识别功能模块的功能发生改变。
21、进一步的,根据第二逻辑关系数据、第二功能参数数据,修改第一硬件描述语言代码文件,包括:
22、当识别到功能模块的功能需求发生改变时,适配修改功能模块的顶层实例、或修改功能模块的注解;当识别到功能模块的功能需求发生改变时,功能模块的修改超过预设修改范围时,则提示功能模块的修改错误。
23、具体的,在解析过程中,针对每个子文件所执行的修改操作也各有不同,当功能模块对应功能需求发生变化时,通过顶层实例对功能模块之间的联系做出适应化调整,若功能需求不支持修改时,则通过报警通知设计者,以便可以及时干预生成的eflash控制器的硬件描述语言代码文件。
24、进一步的,必要功能模块包括主状态控制模块、总线接口模块、接口时序控制模块、寄存器位及读写控制模块、fbist控制接口;非必要功能模块包括预取控制模块、编程控制模块、扰码模块、错误校正码模块。
25、本发明还提供一种闪存控制器,闪存控制器是上述任意一项所述的硬件描述语言代码生成方法所生成的。
26、本发明还提供一种集成电路,包括上述的闪存控制器,集成电路还包括:
27、芯片和闪存器,芯片通过嵌入式闪存控制器对闪存器进行读写数据。
28、通过本发明提供的一种硬件描述语言代码生成方法、闪存控制器和集成电路,对闪存控制器功能模块标准化及参数化,依据功能参数配置文件自动生成闪存控制器的硬件描述语言代码文件,解决了不同芯片对闪存控制器的不同需求而导致闪存控制器需要重写的问题,提高了闪存控制器的可重用性。
1.一种硬件描述语言代码生成方法,应用于闪存控制器,其特征在于,包括以下步骤:
2.根据权利要求1所述的硬件描述语言代码生成方法,其特征在于,在所述的从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据之前,包括:
3.根据权利要求1所述的硬件描述语言代码生成方法,其特征在于,所述的从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据,包括:
4.根据权利要求1所述的硬件描述语言代码生成方法,其特征在于,所述的从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据,还包括:
5.根据权利要求1所述的硬件描述语言代码生成方法,其特征在于,在所述的从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据之前,还包括:
6.根据权利要求1所述的硬件描述语言代码生成方法,其特征在于,在所述的从功能参数配置文件中获取满足功能改变所需的第二逻辑关系数据、第二功能参数数据之前,还包括:
7.根据权利要求1所述的硬件描述语言代码生成方法,其特征在于,所述的根据所述第二逻辑关系数据、第二功能参数数据,修改所述第一硬件描述语言代码文件,包括:
8.根据权利要求1-7任意一项所述的硬件描述语言代码生成方法,其特征在于:
9.一种闪存控制器,其特征在于:所述闪存控制器是根据权利要求1-8中任意一项所述的硬件描述语言代码生成方法所生成的。
10.一种集成电路,其特征在于,包括:如权利要求9所述的闪存控制器,所述集成电路还包括: