System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种硬件设计验证方法、装置和存储介质制造方法及图纸_技高网

一种硬件设计验证方法、装置和存储介质制造方法及图纸

技术编号:40834028 阅读:4 留言:0更新日期:2024-04-01 14:58
本公开涉及一种硬件设计验证方法、装置和存储介质。该方法包括:确定针对寄存器传输级RTL模块的用于执行目标功能的混合语言代码,混合语言代码基于RTL模块的硬件设计的参数确定,目标功能包括修改硬件设计或对硬件设计进行验证,混合语言代码中包括初始Python语言代码和至少一种初始RTL相关语言代码;将混合语言代码中的初始Python语言代码和至少一种初始RTL相关语言代码转换为目标RTL相关语言代码;基于目标RTL相关语言代码生成硬件设计验证文件,硬件设计验证文件用于确定门级网表,以对硬件设计实现目标功能。根据本申请实施例,提高了硬件设计验证时的效率,降低了出错率。

【技术实现步骤摘要】

本公开涉及集成电路设计与验证领域,尤其涉及一种硬件设计验证方法、装置和存储介质


技术介绍

1、集成电路可以包括现场可编程门阵列(field programmable gate array,fpga)等其他可编程逻辑电路,以及专用集成电路(application specific integratedcircuit,asic)等计算机辅助设计的集成电路。集成电路的硬件设计或验证中,广泛使用的编写语言是寄存器传输级(register transfer level,rtl)相关的语言,rtl相关语言可以被翻译成门级网表,然后传统物理设计工具可将门级网表处理成真实的硬件实现。

2、在芯片顶层大规模集成等场景中,存在大范围修改硬件设计或者对硬件设计进行验证的需求,然而,现有技术通常只能生成模块的顶层文件,无法自动化生成底层的硬件设计或对硬件设计进行验证,进行硬件设计与验证的复杂度较高,不够灵活且容易出错。因此,亟需一种新型的硬件设计验证方法以减少硬件设计与验证时的工作量,提高效率,降低出错率。


技术实现思路

1、有鉴于此,本公开提出了一种硬件设计验证方法、装置和存储介质。

2、根据本公开的一方面,提供了一种硬件设计验证方法。该方法包括:

3、确定针对寄存器传输级rtl模块的用于执行目标功能的混合语言代码,混合语言代码基于rtl模块的硬件设计的参数确定,目标功能包括修改硬件设计或对硬件设计进行验证,混合语言代码中包括初始python语言代码和至少一种初始rtl相关语言代码;

4、将混合语言代码中的初始python语言代码和至少一种初始rtl相关语言代码转换为目标rtl相关语言代码;

5、基于目标rtl相关语言代码生成硬件设计验证文件,硬件设计验证文件用于确定门级网表,以对硬件设计实现目标功能。

6、在一种可能的实现方式中,硬件设计的参数包括一个或多个包含rtl模块的唯一标识的参数,将混合语言代码中的初始python语言代码和至少一种初始rtl相关语言代码转换为目标rtl相关语言代码,包括:

7、基于包含rtl模块的唯一标识的参数,将混合语言代码中的唯一标识字符串替换为包含唯一标识的参数的值;

8、将混合语言代码中的所述至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代码和所述初始python语言代码作为中间python语言代码;

9、执行中间python语言代码,确定针对模块的目标rtl相关语言代码。

10、在一种可能的实现方式中,混合语言代码基于以下中的一种或多种标识进行配置得到:语言区分标识、保持代码标识、python语言代码开始标识、python语言代码结束标识、缩进标识。

11、在一种可能的实现方式中,确定针对寄存器传输级rtl模块的用于执行目标功能的混合语言代码,包括:

12、在至少一种初始rtl相关语言代码中的预设区域插入初始python语言代码,确定混合语言代码,预设区域包括:至少一种初始rtl相关语言代码中的变量编码所在区域、用于控制变量的编码所在区域。

13、在一种可能的实现方式中,硬件设计的参数还包括模块的数量、模块的顶层名称、模块中信号名称中的可变字符串、模块中信号的位宽参数、指示硬件功能的参数,初始python语言代码包括用于将硬件设计的参数解析至python变量中的代码。

14、在一种可能的实现方式中,混合语言代码还包括一个或多个语言区分标识,语言区分标识用于指示所在代码行是否为python语言代码,将混合语言代码中的至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代码和初始python语言代码作为中间python语言代码,包括:

15、在语言区分标识指示所在代码行为python语言代码的情况下,在中间python语言代码中保留所在代码行中的初始python语言代码。

16、在一种可能的实现方式中,混合语言代码还包括保持代码标识,将混合语言代码中的至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代码和初始python语言代码作为中间python语言代码,包括:

17、在中间python语言代码中保留混合语言代码中保持代码标识所在行的代码。

18、在一种可能的实现方式中,混合语言代码还包括python语言代码开始标识和python语言代码结束标识,将混合语言代码中的至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代码和初始python语言代码作为中间python语言代码,包括:

19、将至少一种初始rtl相关语言代码中python语言代码开始标识至python语言代码结束标识内的初始python语言代码替换为python语言中字符串类型转换函数的参数。

20、在一种可能的实现方式中,混合语言代码还包括缩进标识,将混合语言代码中的至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代码和初始python语言代码作为中间python语言代码,包括:

21、根据缩进标识,在预定行的行首增加或减少预定步长数量的空格。

22、在一种可能的实现方式中,初始python语言代码还包括用于对初始rtl相关语言代码进行批量处理的代码,批量处理包括对初始rtl相关语言代码进行循环复制或批量修改。

23、在一种可能的实现方式中,初始python语言代码还包括用于根据指示硬件功能的参数选择是否在目标rtl相关语言代码中对初始rtl相关语言代码进行展示的代码。

24、在一种可能的实现方式中,基于目标rtl相关语言代码生成硬件设计验证文件,包括:

25、将一个或多个rtl模块的目标rtl相关语言代码写入硬件设计验证文件,对硬件设计验证文件的文件名称进行修改,以生成硬件设计验证文件,硬件设计验证文件的文件名称与以下中的任一项相关:

26、混合语言代码的文件名称、rtl模块的唯一标识、rtl模块的名称、自定义的硬件设计的参数名称。

27、根据本公开的另一方面,提供了一种硬件设计验证装置。该装置包括:

28、确定模块,用于确定针对寄存器传输级rtl模块的用于执行目标功能的混合语言代码,混合语言代码基于rtl模块的硬件设计的参数确定,目标功能包括修改硬件设计或对硬件设计进行验证,混合语言代码中包括初始python语言代码和至少一种初始rtl相关语言代码;

29、转换模块,用于将混合语言代码中的初始python语言代码和至少一种初始rtl相关语言代码转换为目标rtl相关语言代码;

30、生成模块,用于基于目标rtl相关语言代码生成硬件设计验证文件,硬件设计验证文件用于确定门级网表,以对硬件设计实现目标功能。本文档来自技高网...

【技术保护点】

1.一种硬件设计验证方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述硬件设计的参数包括一个或多个包含RTL模块的唯一标识的参数,所述将所述混合语言代码中的所述初始Python语言代码和所述至少一种初始RTL相关语言代码转换为目标RTL相关语言代码,包括:

3.根据权利要求1所述的方法,其特征在于,所述混合语言代码基于以下中的一种或多种标识进行配置得到:语言区分标识、保持代码标识、Python语言代码开始标识、Python语言代码结束标识、缩进标识。

4.根据权利要求1所述的方法,其特征在于,所述确定针对寄存器传输级RTL模块的用于执行目标功能的混合语言代码,包括:

5.根据权利要求1所述的方法,其特征在于,所述硬件设计的参数还包括所述模块的数量、所述模块的顶层名称、所述模块中信号名称中的可变字符串、所述模块中信号的位宽参数、指示硬件功能的参数,所述初始Python语言代码包括用于将所述硬件设计的参数解析至Python变量中的代码。

6.根据权利要求2所述的方法,其特征在于,所述混合语言代码还包括一个或多个语言区分标识,所述语言区分标识用于指示所在代码行是否为Python语言代码,所述将所述混合语言代码中的所述至少一种初始RTL相关语言代码转换为Python语言代码,将转换后的Python语言代码和所述初始Python语言代码作为中间Python语言代码,包括:

7.根据所述权利要求2所述的方法,所述混合语言代码还包括保持代码标识,所述将所述混合语言代码中的所述至少一种初始RTL相关语言代码转换为Python语言代码,将转换后的Python语言代码和所述初始Python语言代码作为中间Python语言代码,包括:

8.根据权利要求2所述的方法,其特征在于,所述混合语言代码还包括Python语言代码开始标识和Python语言代码结束标识,所述将所述混合语言代码中的所述至少一种初始RTL相关语言代码转换为Python语言代码,将转换后的Python语言代码和所述初始Python语言代码作为中间Python语言代码,包括:

9.根据权利要求2所述的方法,其特征在于,所述混合语言代码还包括缩进标识,所述将所述混合语言代码中的所述至少一种初始RTL相关语言代码转换为Python语言代码,将转换后的Python语言代码和所述初始Python语言代码作为中间Python语言代码,包括:

10.根据权利要求2所述的方法,其特征在于,所述初始Python语言代码还包括用于对初始RTL相关语言代码进行批量处理的代码,所述批量处理包括对初始RTL相关语言代码进行循环复制或批量修改。

11.根据权利要求2所述的方法,其特征在于,所述初始Python语言代码还包括用于根据指示硬件功能的参数选择是否在目标RTL相关语言代码中对初始RTL相关语言代码进行展示的代码。

12.根据权利要求1所述的方法,其特征在于,所述基于所述目标RTL相关语言代码生成硬件设计验证文件,包括:

13.一种硬件设计验证装置,其特征在于,所述装置包括:

14.一种硬件设计验证装置,其特征在于,包括:

15.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至12中任意一项所述的方法。

...

【技术特征摘要】

1.一种硬件设计验证方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述硬件设计的参数包括一个或多个包含rtl模块的唯一标识的参数,所述将所述混合语言代码中的所述初始python语言代码和所述至少一种初始rtl相关语言代码转换为目标rtl相关语言代码,包括:

3.根据权利要求1所述的方法,其特征在于,所述混合语言代码基于以下中的一种或多种标识进行配置得到:语言区分标识、保持代码标识、python语言代码开始标识、python语言代码结束标识、缩进标识。

4.根据权利要求1所述的方法,其特征在于,所述确定针对寄存器传输级rtl模块的用于执行目标功能的混合语言代码,包括:

5.根据权利要求1所述的方法,其特征在于,所述硬件设计的参数还包括所述模块的数量、所述模块的顶层名称、所述模块中信号名称中的可变字符串、所述模块中信号的位宽参数、指示硬件功能的参数,所述初始python语言代码包括用于将所述硬件设计的参数解析至python变量中的代码。

6.根据权利要求2所述的方法,其特征在于,所述混合语言代码还包括一个或多个语言区分标识,所述语言区分标识用于指示所在代码行是否为python语言代码,所述将所述混合语言代码中的所述至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代码和所述初始python语言代码作为中间python语言代码,包括:

7.根据所述权利要求2所述的方法,所述混合语言代码还包括保持代码标识,所述将所述混合语言代码中的所述至少一种初始rtl相关语言代码转换为python语言代码,将转换后的python语言代...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1