CN111309302B - 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 - Google Patents

一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 Download PDF

Info

Publication number
CN111309302B
CN111309302B CN202010081543.6A CN202010081543A CN111309302B CN 111309302 B CN111309302 B CN 111309302B CN 202010081543 A CN202010081543 A CN 202010081543A CN 111309302 B CN111309302 B CN 111309302B
Authority
CN
China
Prior art keywords
variables
list
expression
formula
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010081543.6A
Other languages
English (en)
Other versions
CN111309302A (zh
Inventor
黄继业
郭童栋
高明煜
谢尚港
何志伟
杨宇翔
董哲康
林辉品
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202010081543.6A priority Critical patent/CN111309302B/zh
Publication of CN111309302A publication Critical patent/CN111309302A/zh
Application granted granted Critical
Publication of CN111309302B publication Critical patent/CN111309302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法,包括以下步骤:S1,预处理LaTeX数学公式,筛选符合规则的数学公式;S2,处理数学公式,分离参变量与运算步骤,归类输入变量、输出变量、中间变量与参数;S3,将分离的运算步骤排序,得出运算与寄存操作顺序;S4,根据运算与寄存操作顺序生成可综合Verilog代码。本发明为四则运算与三角函数混合运算公式的软件描述到硬件描述转化提供了可行的方案尤其当公式数量庞大时具有转化可靠性高的优势,解决了人工排序与编写代码效率低,易错的问题,缩短开发周期。

Description

一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法
技术领域
本发明涉及工业控制和机器人运动控制领域,尤其涉及一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法。
背景技术
在工业控制和机器人运动控制领域中,需要处理大量四则运算与三角函数混合运算,如何快速生成公式对应的Verilog代码有着较为广泛的应用前景与意义;而实现数学运算公式转换为Verilog代码的关键在于拆分成若干运算步骤并排序,尤其当公式数量庞大且存在嵌套或组合关系时;目前还未有LaTeX转化为Verilog的相关方法,且相比其他语言,LaTeX表达数学公式更加灵活丰富。
发明内容
本发明实施例提供了一种基于混合运算公式转换Verilog代码的方法,可以根据四则运算与三角函数混合运算公式生成Verilog代码,减少人工参与,降低了开发周期。
为了解决上述技术问题,本发明实施例提供的一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法,包括以下步骤:
S1,预处理LaTeX数学公式,筛选符合规则的数学公式;
S2,处理数学公式,分离参变量与运算步骤,归类输入变量、输出变量、中间变量与参数;
S3,将分离的运算步骤排序,得出运算与寄存操作顺序;
S4,根据运算与寄存操作顺序生成可综合Verilog代码。
所述S1,其中筛选出符合规则的数学公式以<Aim><Equal><Expressions>格式保存;
所述S2,处理数学公式,分离参变量与运算步骤,归类输入变量、输出变量、中间变量与参数,包括以下步骤:
S20,依次将合法数学公式的<Aim>,即结果名部分存入Aim_Variables列表,将<Expressions>,即公式部分存入Formulas列表;
S21,取出Formulas列表中一项以运算符号为断点将文本切分成若干项运算参变量与运算符,按原公式顺序存入Normal_Formula列表,并将变量存入 Chg_Variables列表,将参数存入Param_Variables列表;
S22,将Normal_Formula列表中运算参变量与运算符依次取出,根据中缀式转后缀式法则按后缀式顺序存入RPN_Formula列表,将RPN_Formula列表中运算参变量与运算符依次取出,当取出的运算参变量与运算符组成新的运算步骤时,将运算步骤存入Operations列表,并将该操作结果变量存入 Intermediate_Variables列表,直至RPN_Formula列表中元素全部取出;
S23,重复执行S21~S22,直至完成对Formulas列表中所有公式的处理;
S24,归类输入变量、输出变量、中间变量与参数,将Chg_Variables列表内不存在于Aim_Variables列表中的变量存入Input_Variables列表,将 Aim_Variables列表内不存在于Chg_Variables列表中的变量存入 Output_Variables列表,并将同时出现在Chg_Variables列表和Aim_Variables列表中的变量与Intermediate_Variables列表合并为Reg_Variables,参数的Param_Variables列表在S21中已经分类完成。
所述S3,将分离的运算步骤排序,得出运算与寄存操作顺序,包括以下步骤:
S30,给所有变量添加一个“可操作”标签,初始值设置为“无效值”,且所有同名变量共用一个标签,若标签为“有效值”,则表示该变量可参与与其相关的运算;
S31,将Input_Variables列表与Param_Variables列表中变量的“可操作”标签设置为有效值;
S32,遍历Operations列表查找未运算的N1个加法、N2个减法、N3个乘法、N4个除法与N5个三角函数运算步骤,且上述运算步骤中参与运算变量的“可操作”标签为有效值,在第n个时钟执行上述运算步骤,并在n+n1个时钟将加法运算结果变量的“可操作”标签设置为有效值,在第n+n2个时钟将减法运算结果变量的“可操作”标签设置为有效值,在第n+n3个时钟将乘法运算结果变量的“可操作”标签设置为有效值,在第n+n4个时钟将除法运算结果变量的“可操作”标签设置为有效值,在第n+n5个时钟将三角函数运算结果变量的“可操作”标签设置为有效值,其中N1、N2、N3、N4、N5分别为浮点加法器数量、浮点减法器数量、浮点乘法器数量、浮点除法器数量、三角函数运算模块数量,n 表示状态机的时钟状态,n1、n2、n3、n4、n5分别为现有浮点加法器IP输出延迟时钟、现有浮点减法器IP输出延迟时钟、现有浮点乘法器IP输出延迟时钟、现有浮点除法器IP输出延迟时钟、现有三角函数IP延迟时钟;
S33,重复执行S32,时钟状态逐次累加,直至Operations列表中所有运算步骤均被计算后清零。
所述S4,根据运算与寄存操作顺序生成可综合Verilog代码,包括以下步骤:
S40,根据n1、n2、n3、n4、n5,即各运算器延迟时钟调用已有的浮点四则运算与三角函数IP;
S41,生成公式运算Verilog代码,根据Input_Variables列表、Output_Variables列表与Intermediate_Variables列表生成模块输入、输出信号与寄存器代码,根据Param_Variables列表生成参数代码,根据N1、N2、N3、N4、N5即各运算器数量生成例化代码,根据S3中运算与寄存操作排序结果生成状态机代码。
优选地,所述S1,预处理LaTeX数学公式,筛选符合规则的数学公式,包括以下步骤:
S10,根据规则<Start><Aim><Equal><Expressions><End>分离出所有数学公式,其中<Start>为开始表示符,<End>为结束表示符,<Aim>为结果名,<Equal>为赋值符,<Expressions>为数学表达式;
S11,根据规则<Expression><OperatorArithmetic><Expression>即四则运算组成规则,<OperatorCordic><Expression>即三角函数运算组成规则,对<Expressions>即数学表达式进行拆解,其中<OperatorArithmetic>为四则运算运算表示符,<OperatorCordic>为三角函数运算表示符,<Expression>为参与运算对象,可以是<String>即表示变量名、<Parameter>即表示参数名,也可以是一个新的数学表达式,用<Expression>-><Expressions>嵌套规则表示,当<Expression>是一个数学表达式时,使用S11所述规则对其进行词法分析,直到<Expression>不再是一个数学表达式而是<String>或<Parameter>为止,若拆解过程中<Expressions>与<Expression>不满足上述规则或其使用的运算表述符不在<OperatorArithmetic>与<OperatorCordic>包含范围内,该数学公式不合法,相对的,满足上述规则的数学公式合法;
S12,整理所有合法公式,以<Aim><Equal><Expressions>格式保存,预处理完毕。
优选地,所述S40调用已有的浮点四则运算与三角函数IP,可供调用的现有IP包括单精度浮点加法IP核fp_add,输出延迟时钟T_add、单精度浮点减法IP核fp_sub,输出延迟时钟T_sub、单精度浮点乘法IP核fp_mul,输出延迟时钟T_mul、单精度浮点除法IP核fp_div,输出延迟时钟T_div、三角函数 IP核fp_cordic,可配置为正弦、余弦、正切运算,输出延迟时钟T_cordic,相应的,所述S32中,各运算器延迟时钟n1、n2、n3、n4、n5应当对应于T_add、 T_sub、T_mul、T_div、T_cordic。
本发明的有益效果如下:
根据需求编写LaTeX数学公式,自动转换成可综合Verilog代码。避免人工排序与编写代码带来的耗时久、效率低问题,缩短开发周期。首先,本发明可以用于解决LaTeX编写的公式转换成Verilog代码的问题,当所编写的公式不同时,转换过程产生的列表与步骤排序也将完全不同。本发明尤其针对多且复杂的组合公式,当然即使公式数量不多或不复杂时,也可以使用本方法快速生成Verilog代码。
附图说明
图1为本发明实施例的基于混合运算公式转换Verilog代码的方法的步骤流程图;
图2为本发明具体实施例的基于混合运算公式转换Verilog代码的方法中 S2步骤流程图;
图3为本发明具体实施例的基于混合运算公式转换Verilog代码的方法中 S3步骤流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
首先,需要了解的是本发明所述一种基于LaTeX的四则运算与三角函数混合运算公式转换为Verilog代码的方法,在本实施例中是用于解决LaTeX编写的公式转换成Verilog代码的问题,当所编写的公式不同时,转换过程产生的列表与步骤排序也将完全不同。本发明尤其针对多且复杂的组合公式,当然即使公式数量不多或不复杂时,也可以使用本方法快速生成Verilog代码。
参见图1,为本发明实施例的基于混合运算公式转换Verilog代码的方法的步骤流程图,包括以下步骤:
S1,预处理LaTeX数学公式,筛选符合规则的数学公式;
S2,处理数学公式,分离参变量与运算步骤,归类输入变量、输出变量、中间变量与参数;
S3,将分离的运算步骤排序,得出运算与寄存操作顺序;
S4,根据运算与寄存操作顺序生成可综合Verilog代码。
具体实施例中
所述S1,预处理LaTeX数学公式,筛选符合规则的数学公式,筛选规则如下:
S10,根据规则<Start><Aim><Equal><Expressions><End>分离出所有数学公式,其中<Start>为开始表示符,<End>为结束表示符,<Aim>为结果名,<Equal>为赋值符,<Expressions>为数学表达式;
S11,根据规则<Expression><OperatorArithmetic><Expression>(四则运算组成规则),<OperatorCordic><Expression>(三角函数运算组成规则),对<Expressions>(数学表达式)进行拆解,其中<OperatorArithmetic>为四则运算运算表示符,<OperatorCordic>为三角函数运算表示符,<Expression>为参与运算对象,可以是<String>(表示变量名)、<Parameter>(表示参数名),也可以是一个新的数学表达式,用<Expression>-><Expressions>嵌套规则表示,当<Expression>是一个数学表达式时,使用S11所述规则对其进行词法分析,直到<Expression>不再是一个数学表达式而是<String>或<Parameter>为止,若拆解过程中<Expressions>与<Expression>不满足上述规则或其使用的运算表述符不在<OperatorArithmetic>与<OperatorCordic>包含范围内,该数学公式不合法,相对的,满足上述规则的数学公式合法,特别的,在本实施例中,规定开始表示符<Start>为$,结束表示符<End>为$\\,赋值符<Equal>为=,四则运算表示符<OperatorArithmetic>为+(加法)、-(减法)、\times(乘法)、\div(除法),三角函数运算表示符<OperatorCordic>为\sin(正弦函数)、\cos(余弦函数)、\tan (正切函数),参数表示符<Parameter>为所有单精度浮点数,变量名<String>为英文字母开头并由英文字母、数字、下划线组成的字符串;
S12,整理所有合法公式,以<Aim><Equal><Expressions>格式保存,预处理完毕。
参见图2,为本发明实施例的一种基于LaTeX的四则运算与三角函数混合运算公式转换为Verilog代码的方法中S2步骤流程图,且已给出了S1预处理合法公式,包括以下步骤:
S20,依次将合法数学公式的<Aim>(结果名)部分存入Aim_Variables列表,将<Expressions>(公式部分)存入Formulas列表,得到Aim_Variables列表与Formulas列表;
S21,取出Formulas列表中一项以运算符号为断点将文本切分成若干项运算参变量与运算符,按原公式顺序存入Normal_Formula列表,并将变量存入 Chg_Variables列表,将参数存入Param_Variables列表,得到Normal_Formula 列表、Chg_Variables列表与Param_Variables列表;
S22,将Normal_Formula列表中运算参变量与运算符依次取出,根据中缀式转后缀式法则按后缀式顺序存入RPN_Formula列表,将RPN_Formula列表中运算参变量与运算符依次取出,当取出的运算参变量与运算符组成新的运算步骤时,将运算步骤存入Operations列表,并将该操作结果变量存入 Intermediate_Variables列表,直至RPN_Formula列表中元素全部取出,得到 Operations列表与Intermediate_Variables列表;
S23,重复执行S21~S22步骤,直至完成对Formulas列表中所有公式的处理;
S24,归类输入变量、输出变量、中间变量与参数,将Chg_Variables列表内不存在于Aim_Variables列表中的变量存入Input_Variables列表,将 Aim_Variables列表内不存在于Chg_Variables列表中的变量存入 Output_Variables列表,并将同时出现在Chg_Variables列表和Aim_Variables列表中的变量与Intermediate_Variables列表合并为Reg_Variables,得到Input_Variables列表、Output_Variables列表与Reg_Variables列表。
参见图3,为本发明实施例的一种基于LaTeX的四则运算与三角函数混合运算公式转换为Verilog代码的方法中S3步骤流程图,其中以变量左上标表示“可操作”标签,“1”为“有效值”,“0”为“无效值”,包括以下步骤:
S30,给所有变量添加一个“可操作”标签,初始值设置为“无效值”,且所有同名变量共用一个标签,若标签为“有效值”,则表示该变量可参与与其相关的运算;
S31,将Input_Variables列表与Param_Variables列表中变量的“可操作”标签设置为有效值;
S32,遍历Operations列表查找未运算的N1个加法、N2个减法、N3个乘法、N4个除法与N5个三角函数运算步骤,且上述运算步骤中参与运算变量的“可操作”标签为有效值,在第n个时钟执行上述运算步骤,并在n+n1个时钟将加法运算结果变量的“可操作”标签设置为有效值,在第n+n2个时钟将减法运算结果变量的“可操作”标签设置为有效值,在第n+n3个时钟将乘法运算结果变量的“可操作”标签设置为有效值,在第n+n4个时钟将除法运算结果变量的“可操作”标签设置为有效值,在第n+n5个时钟将三角函数运算结果变量的“可操作”标签设置为有效值,其中N1、N2、N3、N4、N5分别为浮点加法器数量、浮点减法器数量、浮点乘法器数量、浮点除法器数量、三角函数运算模块数量,本示例中所有模块数量均为1,n表示状态机的时钟状态,n1、n2、 n3、n4、n5分别为现有浮点加法器输出延迟时钟,本示例中为6、现有浮点减法器输出延迟时钟,本示例中为6、现有浮点乘法器输出延迟时钟,本示例中为4、现有浮点除法器输出延迟时钟,本示例中为4、现有三角函数运算模块延迟时钟,本示例中为31;
S33,重复执行S32,时钟状态逐次累加,直至Operations列表中所有步骤均被计算后清零。
S4,根据运算与寄存操作顺序生成Verilog代码与可编译工程,包括以下步骤:
S40,根据n1、n2、n3、n4、n5(各运算器延迟时钟)调用已有的浮点四则运算与三角函数IP,包括单精度浮点加法IP核fp_add,输出延迟时钟 T_add=n1=6、单精度浮点减法IP核fp_sub,输出延迟时钟T_sub=n2=6、单精度浮点乘法IP核fp_mul,输出延迟时钟T_mul=n3=4、单精度浮点除法IP核 fp_div,输出延迟时钟T_div=n4=4、三角函数IP核fp_cordic,可配置为正弦、余弦、正切运算,输出延迟时钟T_cordic=n5=31;
S41,生成公式运算Verilog代码,根据Input_Variables列表、Output_Variables列表与Intermediate_Variables列表生成模块输入、输出信号与寄存器代码,根据N1、N2、N3、N4、N5数量生成加法器等生成例化代码,根据Param_Variables列表生成参数,根据S3中运算与寄存操作排序结果生成状态机代码。
上述图2、3中为方便描述,简化了新变量名的命名方式,省略了操作符,如s1P0_16表示s1*0.16,不同变量名命名方式并不影响S2、S3的实现方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法,其特征在于,包括以下步骤:
S1,预处理LaTeX数学公式,筛选符合规则的数学公式;
S2,处理数学公式,分离参变量与运算步骤,归类输入变量、输出变量、中间变量与参数;
S3,将分离的运算步骤排序,得出运算与寄存操作顺序;
S4,根据运算与寄存操作顺序生成可综合Verilog代码;
所述S1,其中筛选出符合规则的数学公式以<Aim><Equal><Expressions>格式保存;
所述S2,处理数学公式,分离参变量与运算步骤,归类输入变量、输出变量、中间变量与参数,包括以下步骤:
S20,依次将合法数学公式的<Aim>,即结果名部分存入Aim_Variables列表,将<Expressions>,即公式部分存入Formulas列表;
S21,取出Formulas列表中一项以运算符号为断点将文本切分成若干项运算参变量与运算符,按原公式顺序存入Normal_Formula列表,并将变量存入Chg_Variables列表,将参数存入Param_Variables列表;
S22,将Normal_Formula列表中运算参变量与运算符依次取出,根据中缀式转后缀式法则按后缀式顺序存入RPN_Formula列表,将RPN_Formula列表中运算参变量与运算符依次取出,当取出的运算参变量与运算符组成新的运算步骤时,将运算步骤存入Operations列表,并将操作结果变量存入Intermediate_Variables列表,直至RPN_Formula列表中元素全部取出;
S23,重复执行S21~S22,直至完成对Formulas列表中所有公式的处理;
S24,归类输入变量、输出变量、中间变量与参数,将Chg_Variables列表内不存在于Aim_Variables列表中的变量存入Input_Variables列表,将Aim_Variables列表内不存在于Chg_Variables列表中的变量存入Output_Variables列表,并将同时出现在Chg_Variables列表和Aim_Variables列表中的变量与Intermediate_Variables列表合并为Reg_Variables,参数的Param_Variables列表在S21中已经分类完成;
所述S3,将分离的运算步骤排序,得出运算与寄存操作顺序,包括以下步骤:
S30,给所有变量添加一个“可操作”标签,初始值设置为“无效值”,且所有同名变量共用一个标签,若标签为“有效值”,则表示该变量可参与与其相关的运算;
S31,将Input_Variables列表与Param_Variables列表中变量的“可操作”标签设置为有效值;
S32,遍历Operations列表查找未运算的N1个加法、N2个减法、N3个乘法、N4个除法与N5个三角函数运算步骤,且上述运算步骤中参与运算变量的“可操作”标签为有效值,在第n个时钟执行上述运算步骤,并在n+n1个时钟将加法运算结果变量的“可操作”标签设置为有效值,在第n+n2个时钟将减法运算结果变量的“可操作”标签设置为有效值,在第n+n3个时钟将乘法运算结果变量的“可操作”标签设置为有效值,在第n+n4个时钟将除法运算结果变量的“可操作”标签设置为有效值,在第n+n5个时钟将三角函数运算结果变量的“可操作”标签设置为有效值,其中N1、N2、N3、N4、N5分别为浮点加法器数量、浮点减法器数量、浮点乘法器数量、浮点除法器数量、三角函数运算模块数量,n表示状态机的时钟状态,n1、n2、n3、n4、n5分别为现有浮点加法器IP输出延迟时钟、现有浮点减法器IP输出延迟时钟、现有浮点乘法器IP输出延迟时钟、现有浮点除法器IP输出延迟时钟、现有三角函数IP延迟时钟;
S33,重复执行S32,时钟状态逐次累加,直至Operations列表中所有运算步骤均被计算后清零;
所述S4,根据运算与寄存操作顺序生成可综合Verilog代码,包括以下步骤:
S40,根据n1、n2、n3、n4、n5,即各运算器延迟时钟调用已有的浮点四则运算与三角函数IP;
S41,生成公式运算Verilog代码,根据Input_Variables列表、Output_Variables列表与Intermediate_Variables列表生成模块输入、输出信号与寄存器代码,根据Param_Variables列表生成参数代码,根据N1、N2、N3、N4、N5即各运算器数量生成例化代码,根据S3中运算与寄存操作排序结果生成状态机代码。
2.根据权利要求1所述的一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法,其特征在于,所述S1,预处理LaTeX数学公式,筛选符合规则的数学公式,包括以下步骤:
S10,根据规则<Start><Aim><Equal><Expressions><End>分离出所有数学公式,其中<Start>为开始表示符,<End>为结束表示符,<Aim>为结果名,<Equal>为赋值符,<Expressions>为数学表达式;
S11,根据规则<Expression><OperatorArithmetic><Expression>即四则运算组成规则,<OperatorCordic><Expression>即三角函数运算组成规则,对<Expressions>即数学表达式进行拆解,其中<OperatorArithmetic>为四则运算运算表示符,<OperatorCordic>为三角函数运算表示符,<Expression>为参与运算对象,可以是<String>即表示变量名、<Parameter>即表示参数名,也可以是一个新的数学表达式,用<Expression>-><Expressions>嵌套规则表示,当<Expression>是一个数学表达式时,使用S11所述规则对其进行词法分析,直到<Expression>不再是一个数学表达式而是<String>或<Parameter>为止,若拆解过程中<Expressions>与<Expression>不满足上述规则或其使用的运算表述符不在<OperatorArithmetic>与<OperatorCordic>包含范围内,该数学公式不合法,相对的,满足上述规则的数学公式合法;
S12,整理所有合法公式,以<Aim><Equal><Expressions>格式保存,预处理完毕。
3.根据权利要求1所述的一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法,其特征在于,所述S40调用已有的浮点四则运算与三角函数IP,可供调用的现有IP包括单精度浮点加法IP核fp_add,输出延迟时钟T_add、单精度浮点减法IP核fp_sub,输出延迟时钟T_sub、单精度浮点乘法IP核fp_mul,输出延迟时钟T_mul、单精度浮点除法IP核fp_div,输出延迟时钟T_div、三角函数IP核fp_cordic,可配置为正弦、余弦、正切运算,输出延迟时钟T_cordic,相应的,所述S32中,各运算器延迟时钟n1、n2、n3、n4、n5应当对应于T_add、T_sub、T_mul、T_div、T_cordic。
CN202010081543.6A 2020-02-06 2020-02-06 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 Active CN111309302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010081543.6A CN111309302B (zh) 2020-02-06 2020-02-06 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010081543.6A CN111309302B (zh) 2020-02-06 2020-02-06 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法

Publications (2)

Publication Number Publication Date
CN111309302A CN111309302A (zh) 2020-06-19
CN111309302B true CN111309302B (zh) 2023-04-18

Family

ID=71144974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010081543.6A Active CN111309302B (zh) 2020-02-06 2020-02-06 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法

Country Status (1)

Country Link
CN (1) CN111309302B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564354B1 (en) * 2000-06-01 2003-05-13 Hewlett Packard Development Company, L.P. Method for translating conditional expressions from a non-verilog hardware description language to verilog hardware description language while preserving structure suitable for logic synthesis
CN1421004A (zh) * 1999-10-14 2003-05-28 目标储油层公司 利用符号语言翻译器产生软件代码的方法和系统
US6625798B1 (en) * 2000-07-25 2003-09-23 Hewlett-Packard Development Company, L.P. Method for translating conditional expressions from a non-verilog hardware description language to verilog hardware description language while preserving structure suitable for logic synthesis
JP2009268031A (ja) * 2008-04-30 2009-11-12 Sony Corp 算術復号装置
CN101814025A (zh) * 2009-12-07 2010-08-25 西安奇维测控科技有限公司 并行SCRAMBLE算法Verilog HDL代码自动生成器及方法
CN101826011A (zh) * 2009-12-07 2010-09-08 西安奇维测控科技有限公司 并行CRC算法Verilog HDL代码自动生成器及其方法
US8359586B1 (en) * 2007-08-20 2013-01-22 The Mathworks, Inc. Code generation
CN103425773A (zh) * 2013-08-02 2013-12-04 深圳市菁优网络科技有限公司 一种利用原生Html在网页中快速显示数学公式的方法
KR101458581B1 (ko) * 2013-04-25 2014-11-05 서울대학교산학협력단 수식-문자열 변환 시스템 및 이를 이용한 수식-문자열 변환 방법
WO2016095502A1 (zh) * 2014-12-17 2016-06-23 百度在线网络技术(北京)有限公司 数学公式处理方法、装置、设备和计算机存储介质
CN106648635A (zh) * 2016-12-08 2017-05-10 福建天泉教育科技有限公司 跨平台的公式编辑与渲染方法及系统
CN107832270A (zh) * 2017-10-17 2018-03-23 金炜 基于LaTeX的公式编辑方法和公式编辑器
CN108304166A (zh) * 2018-01-18 2018-07-20 北京航空航天大学 一种人工智能程序员根据公式描述书写源程序的方法
CN109190093A (zh) * 2018-08-30 2019-01-11 杭州电子科技大学 一种在线Verilog代码自动判决系统的自动评分方法
US10229096B1 (en) * 2016-05-06 2019-03-12 The Mathworks, Inc. Automatic generation of a presentation from code based on analysis of an intermediate version of the code

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1421004A (zh) * 1999-10-14 2003-05-28 目标储油层公司 利用符号语言翻译器产生软件代码的方法和系统
US6564354B1 (en) * 2000-06-01 2003-05-13 Hewlett Packard Development Company, L.P. Method for translating conditional expressions from a non-verilog hardware description language to verilog hardware description language while preserving structure suitable for logic synthesis
US6625798B1 (en) * 2000-07-25 2003-09-23 Hewlett-Packard Development Company, L.P. Method for translating conditional expressions from a non-verilog hardware description language to verilog hardware description language while preserving structure suitable for logic synthesis
US8359586B1 (en) * 2007-08-20 2013-01-22 The Mathworks, Inc. Code generation
JP2009268031A (ja) * 2008-04-30 2009-11-12 Sony Corp 算術復号装置
CN101826011A (zh) * 2009-12-07 2010-09-08 西安奇维测控科技有限公司 并行CRC算法Verilog HDL代码自动生成器及其方法
CN101814025A (zh) * 2009-12-07 2010-08-25 西安奇维测控科技有限公司 并行SCRAMBLE算法Verilog HDL代码自动生成器及方法
KR101458581B1 (ko) * 2013-04-25 2014-11-05 서울대학교산학협력단 수식-문자열 변환 시스템 및 이를 이용한 수식-문자열 변환 방법
CN103425773A (zh) * 2013-08-02 2013-12-04 深圳市菁优网络科技有限公司 一种利用原生Html在网页中快速显示数学公式的方法
WO2016095502A1 (zh) * 2014-12-17 2016-06-23 百度在线网络技术(北京)有限公司 数学公式处理方法、装置、设备和计算机存储介质
US10229096B1 (en) * 2016-05-06 2019-03-12 The Mathworks, Inc. Automatic generation of a presentation from code based on analysis of an intermediate version of the code
CN106648635A (zh) * 2016-12-08 2017-05-10 福建天泉教育科技有限公司 跨平台的公式编辑与渲染方法及系统
CN107832270A (zh) * 2017-10-17 2018-03-23 金炜 基于LaTeX的公式编辑方法和公式编辑器
CN108304166A (zh) * 2018-01-18 2018-07-20 北京航空航天大学 一种人工智能程序员根据公式描述书写源程序的方法
CN109190093A (zh) * 2018-08-30 2019-01-11 杭州电子科技大学 一种在线Verilog代码自动判决系统的自动评分方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张志伟 ; 孔凡让 ; 柴华 ; .从Postscript格式文献中提取数学公式的方法.数据采集与处理.2008,(04),全文. *

Also Published As

Publication number Publication date
CN111309302A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
Ho et al. Efficient floating point precision tuning for approximate computing
CN106020950A (zh) 基于复杂网络分析的函数调用图关键节点识别和标识方法
CN104820613A (zh) 一种异构多核程序的编译方法
CN109947431B (zh) 一种代码生成方法、装置、设备及存储介质
CN102193993A (zh) 用于确定字符串信息间相似度信息的方法、装置和设备
CN111143038B (zh) Risc-v架构微处理器内核信息模型建模及生成方法
CN101986259A (zh) 无符号定点除法及无符号定点除法器
CN112749522A (zh) 一种rtl输出级数获取方法、装置、设备和存储介质
CN111309302B (zh) 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法
WO2014209292A1 (en) Modifying an analytic flow
CN113609128A (zh) 生成数据库实体类的方法、装置、终端设备及存储介质
CN103270512A (zh) 智能架构创建器
Hanson et al. Numerical computing with modern Fortran
CN112948569A (zh) 基于活动知识图谱的科学工作流图版推送方法及装置
Evans et al. Itanium architecture for programmers: understanding 64-bit processors and EPIC principles
GB2539898B (en) A data handling method
CN116414396A (zh) 一种llvm的目标定义文件生成方法、装置和电子设备
CN117348863B (zh) 工业软件的低代码开发方法、装置、电子设备及存储介质
Dusink et al. Software Re-use, Utrecht 1989: Proceedings of the Software Re-use Workshop, 23–24 November 1989, Utrecht, The Netherlands
Balbaert Julia 1.0 Programming: Dynamic and high-performance programming to build fast scientific applications
Yu Prototyping, Domain Specific Language, and Testing.
Ramamoorthy et al. Compilation techniques for recognition of parallel processable tasks in arithmetic expressions
Huskey et al. A syntactic description of BC NELIAC
CN109799973B (zh) 一种数据驱动的用户透明的可扩展编程方法
CN112951334B (zh) 一种大型压力容器结构料集成计算系统的搭建方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Huang Jiye

Inventor after: Guo Tongdong

Inventor after: Gao Mingyu

Inventor after: Xie Shanggang

Inventor after: He Zhiwei

Inventor after: Yang Yuxiang

Inventor after: Dong Zhekang

Inventor after: Lin Huipin

Inventor before: Huang Jiye

Inventor before: Guo Dongdong

Inventor before: Gao Mingyu

Inventor before: Xie Shanggang

Inventor before: He Zhiwei

Inventor before: Yang Yuxiang

Inventor before: Dong Zhekang

Inventor before: Lin Huipin

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant