一种模型转换方法及装置、电子设备、存储介质制造方法及图纸

技术编号:36910668 阅读:13 留言:0更新日期:2023-03-18 09:29
本申请公开了一种模型转换方法及装置、电子设备、存储介质,所述方法,包括:获取基于预设编写规则编写的目标数学模型。读取出所述目标数学模型中的各个函数的函数内容数据。其中,函数内容数据主要包括函数名称、函数形参以及函数功能语句。按照设定的约束条件,对函数名称、函数参数、函数功能进行分解和转换,输出可组成VerilogHDL模块的列表信息,即输出模块名称,模块输入和输出接口及对应的位长,模块内寄存器变量或线型变量,状态机流程,浮点数操作符类型和需要实例化的数量等。最后,基于转换得到的列表信息,按照设定的生成模板和厂家浮点运算操作IP信息,生成VerilogHDL文本并输出。并输出。并输出。

【技术实现步骤摘要】
一种模型转换方法及装置、电子设备、存储介质


[0001]本申请涉及模型设计
,特别涉及一种模型转换方法及装置、电子设备、存储介质。

技术介绍

[0002]在通讯系统等领域中,经常需要进行大量的复杂计算模型仿真和定点化设计。而在实现模型设计时,通常会先采用C语言建立数学模型,以能快速进行仿真和测试验证模型的正确性,然后再用VerilogHDL等硬件描述语言,设计为相应的电路模块。
[0003]当前对数学模型进行仿真和验证模型的正确性后,主要由工程师基于先前建立的数学模型,利用VerilogHDL的硬件描述语言,编写出对应的VerilogHDL文本。
[0004]但是这种方式需要工程师间重复的劳动,并且需要编写大量的代码,因此效率相对较低,并且容易出现错误。

技术实现思路

[0005]基于上述现有技术的不足,本申请提供了一种模型转换方法及装置、电子设备、存储介质,以解决现有转换方式效率较低,且容易出现错误的问题。
[0006]为了实现上述目的,本申请提供了以下技术方案:
[0007]本申请第一方面提供了一种模型转换方法,包括:
[0008]获取基于预设编写规则编写的目标数学模型;
[0009]读取出所述目标数学模型中的各个函数的函数内容数据;其中,所述函数内容数据至少包括函数名称、函数形参以及函数功能语句;
[0010]基于各个所述函数的函数名称,转换得到各个所述函数对应的模块单元;
[0011]分别针对每个所述函数,基于所述函数的各个所述函数形参的类型,将各个所述函数形参转换为所述函数对应的模块单元的输入接口或输出接口;
[0012]基于各个所述函数中的变量的类型,将各个所述函数中的变量解析为寄存器型的变量,以及将各个所述函数中的常量转换为对应的标识符;
[0013]解析出所述函数的各个所述函数功能语句中的操作符以及所述操作符中的输入变量和输出变量;
[0014]基于预先设定的约束条件,分配各个所述操作符的操作资源,并基于各个所述操作符的操作资源以及各个所述操作符中的输入变量以及输出变量生成状态机信息;
[0015]基于所述状态机信息、各个所述函数对应的模块单元的基础信息以及各个所述函数对应的模块单元的接口的信息,按照预设的生成模板以及厂家浮点运算操作IP信息,生成所述目标数学模型对应的VerilogHDL文本。
[0016]可选地,在上述的模型转换方法中,所述获取基于预设编写规则编写的目标数学模型之后,还包括:
[0017]读取出所述目标数学模型中函数内的各个目标数值及其相关信息,并利用各个所
述数值及其相关信息,分别组成各个目标数值字典集合;其中,所述目标数值字典集合包括常量字典集合、变量字典集合、结构体字典集合以及数组字典集合;所述常量字典集合中的键值对的键为常量名称,值为数值类型以及数值;所述变量字典集合中的键值对的键为变量名称,值为数值类型以及数值;所述结构体字典集合中的键值对的键为结构体名称,值为数值类型、结构体内变量名称以及对应的数值;所述数组字典集合中的键值对的键为数组名称,值为数组长度、数组类型以及数组值。
[0018]可选地,在上述的模型转换方法中,所述基于各个所述函数中的变量的类型,将各个所述函数中的变量解析为寄存器型的变量,以及将各个所述函数中的常量转换为对应的标识符,包括:
[0019]分别针对各个所述函数中的每个所述变量,根据所述变量的名称从所述目标数值字典集中查找出所述变量对应数值以及所属类型;
[0020]将所述变量对应的数值转换为所述变量所属类型对应的位长的寄存器型的变量;
[0021]若所述变量为局部变量,则将转换后的所述变量放置于所述变量所属的所述函数对应的模块单元中;
[0022]若所述变量为全局变量,则将转换后的所述变量放置于顶层模块单元中;
[0023]根据各个所述函数中的各个所述常量的名称,从所述目标数值字典集中查找出所述常量对应的数值;
[0024]基于各个所述常量的名称以及对应的数值,通过对所述常量进行宏定义,将所述常量转换为对应的标识符,并存储至独立的可调用文件中。
[0025]可选地,在上述的模型转换方法中,所述分别针对每个所述函数,基于所述函数的各个所述函数形参的类型,将各个所述函数形参转换为所述函数对应的模块单元的输入接口或输出接口,包括:
[0026]分别针对每个所述函数中的每个所述函数形参,若所述函数形参为只读输入参数,则按照所述函数形参的类型对应的长度,将所述函数形参转换为所述函数对应的模块单元的线网型的输入接口;其中,数组类型的所述函数形参对应接口的长度为数组长度乘以数组中的数据的类型对应的位长;
[0027]若所述函数形参为只写输出参数,则按照所述函数形参的类型对应的长度,将所述函数形参转换为所述函数对应的模块单元的寄存器型的输出接口;
[0028]若所述函数形参为可读且可写参数,则分别按照所述函数形参的类型对应的长度,将所述函数形参转换为所述函数对应的模块单元的输出接口以及输入接口。
[0029]可选地,在上述的模型转换方法中,所述基于各个所述函数的函数名称,转换得到各个所述函数对应的模块单元,包括:
[0030]分别针对每个所述函数,若所述函数的函数名字的前缀为顶层字符,则将所述函数转换为所述函数对应的顶层模块单元;
[0031]若所述函数的函数名字的前缀为函数字符,则将所述函数转换为所述函数对应的一般模块单元。
[0032]可选地,在上述的模型转换方法中,所述约束条件包括资源最大化、资源最小化以及定向资源最小化,所述基于预先设定的约束条件,分配各个所述操作符的操作资源,包括:
[0033]若预设设定的所述约束条件为资源最大化,则为不存在耦合关系的不同所述函数功能语句中的各个所述操作符,以及单个所述函数功能语句中不存在耦合关系的各个所述操作符,分别分配对应的操作资源;
[0034]为存在耦合关系的不同所述函数功能语句中相同类型的各个所述操作符,分配一个对应的操作资源,以及为单个所述函数功能语句中存在耦合关系的相同类型的各个所述操作,分配一个对应的操作资源;
[0035]若预设设定的所述约束条件为资源最小化,则分别为所有所述函数功能语句中的每个类型的各个所述操作符,分配一个对应的操作资源;
[0036]若预设设定的所述约束条件为定向资源最大化,则为所有所述函数功能语句中的定向类型的各个所述操作符,分配一个对应的操作资源,并基于所述资源最大化,为不属于所述定向类型的各个所述操作符分配对应的操作资源。
[0037]可选地,在上述的模型转换方法中,还包括:
[0038]基于所述目标数学模型对应的VerilogHDL文本,生成综合资源使用报告文件。
[0039]本申请第二方面提供了一种模型转换装置,包括:
[0040]模型获取单元,用于获取基于预设编写规则编写的目标数学本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型转换方法,其特征在于,包括:获取基于预设编写规则编写的目标数学模型;读取出所述目标数学模型中的各个函数的函数内容数据;其中,所述函数内容数据至少包括函数名称、函数形参以及函数功能语句;基于各个所述函数的函数名称,转换得到各个所述函数对应的模块单元;分别针对每个所述函数,基于所述函数的各个所述函数形参的类型,将各个所述函数形参转换为所述函数对应的模块单元的输入接口或输出接口;基于各个所述函数中的变量的类型,将各个所述函数中的变量解析为寄存器型的变量,以及将各个所述函数中的常量转换为对应的标识符;解析出所述函数的各个所述函数功能语句中的操作符以及所述操作符中的输入变量和输出变量;基于预先设定的约束条件,分配各个所述操作符的操作资源,并基于各个所述操作符的操作资源以及各个所述操作符中的输入变量以及输出变量生成状态机信息;基于所述状态机信息、各个所述函数对应的模块单元的基础信息以及各个所述函数对应的模块单元的接口的信息,按照预设的生成模板以及厂家浮点运算操作IP信息,生成所述目标数学模型对应的VerilogHDL文本。2.根据权利要求1所述的方法,其特征在于,所述获取基于预设编写规则编写的目标数学模型之后,还包括:读取出所述目标数学模型中函数内的各个目标数值及其相关信息,并利用各个所述数值及其相关信息,分别组成各个目标数值字典集合;其中,所述目标数值字典集合包括常量字典集合、变量字典集合、结构体字典集合以及数组字典集合;所述常量字典集合中的键值对的键为常量名称,值为数值类型以及数值;所述变量字典集合中的键值对的键为变量名称,值为数值类型以及数值;所述结构体字典集合中的键值对的键为结构体名称,值为数值类型、结构体内变量名称以及对应的数值;所述数组字典集合中的键值对的键为数组名称,值为数组长度、数组类型以及数组值。3.根据权利要求2所示的方法,其特征在于,所述基于各个所述函数中的变量的类型,将各个所述函数中的变量解析为寄存器型的变量,以及将各个所述函数中的常量转换为对应的标识符,包括:分别针对各个所述函数中的每个所述变量,根据所述变量的名称从所述目标数值字典集中查找出所述变量对应数值以及所属类型;将所述变量对应的数值转换为所述变量所属类型对应的位长的寄存器型的变量;若所述变量为局部变量,则将转换后的所述变量放置于所述变量所属的所述函数对应的模块单元中;若所述变量为全局变量,则将转换后的所述变量放置于顶层模块单元中;根据各个所述函数中的各个所述常量的名称,从所述目标数值字典集中查找出所述常量对应的数值;基于各个所述常量的名称以及对应的数值,通过对所述常量进行宏定义,将所述常量转换为对应的标识符,并存储至独立的可调用文件中。4.根据权利要求1所述的方法,其特征在于,所述分别针对每个所述函数,基于所述函
数的各个所述函数形参的类型,将各个所述函数形参转换为所述函数对应的模块单元的输入接口或输出接口,包括:分别针对每个所述函数中的每个所述函数形参,若所述函数形参为只读输入参数,则按照所述函数形参的类型对应的长度,将所述函数形参转换为所述函数对应的模块单元的线网型的输入接口;其中,数组类型的所述函数形参对应接口的长度为数组长度乘以数组中的数据的类型对应的位长;若所述函数形参为只写输出参数,则按照所述函数形参的类型对应的长度,将所述函数形参转换为所述函数对应的模块单元的寄存器型的输出接口;...

【专利技术属性】
技术研发人员:宋佩魏琼赵健周国鹏蔡宗霖严晓赵恩海吴运凯马妍冯洲武
申请(专利权)人:上海玫克生储能科技有限公司
类型:发明
国别省市:

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

1