一种基于高层次综合工具的坐标旋转数字计算方法及系统

文档序号:1922101 发布日期:2021-12-03 浏览:19次 >En<

阅读说明:本技术 一种基于高层次综合工具的坐标旋转数字计算方法及系统 (Coordinate rotation digital calculation method and system based on high-level comprehensive tool ) 是由 王自鑫 陈家荣 简仲谆 陈弟虎 于 2021-07-26 设计创作,主要内容包括:本发明为克服无法在缺少FPU模块的FPGA上实施cordic算法的缺陷,提出一种基于高层次综合工具的坐标旋转数字计算方法及系统,其中包括以下步骤:采用高级语言构建基于长整型运算的坐标旋转数字计算模型;采用高层次综合工具将所述坐标旋转数字计算模型进行转换;将经过转换的坐标旋转数字计算模型通过FPGA进行仿真,完成坐标旋转数字计算。本发明在将坐标旋转数字计算模型配置到FPGA前,将其三角函数、双曲线、指数、对数的运算操作构建为基于长整型运算的坐标旋转数字计算模型,再通过高层次综合工具将坐标旋转数字计算模型配置在FPGA,能够实现在没有FPU模块的FPGA上进行浮点运算。(The invention provides a coordinate rotation digital calculation method and a system based on a high-level synthesis tool for overcoming the defect that a cordic algorithm cannot be implemented on an FPGA lacking an FPU module, wherein the method comprises the following steps: adopting a high-level language to construct a coordinate rotation digital calculation model based on a long integer operation; converting the coordinate rotation digital calculation model by adopting a high-level comprehensive tool; and simulating the converted coordinate rotation digital calculation model through the FPGA to complete the coordinate rotation digital calculation. Before the coordinate rotation digital calculation model is configured to the FPGA, the operation operations of the trigonometric function, the hyperbolic curve, the exponent and the logarithm are constructed into the coordinate rotation digital calculation model based on the long integer operation, and then the coordinate rotation digital calculation model is configured to the FPGA through a high-level comprehensive tool, so that the floating point operation can be performed on the FPGA without an FPU module.)

一种基于高层次综合工具的坐标旋转数字计算方法及系统

技术领域

本发明涉及数字处理技术领域,更具体地,涉及一种基于高层次综合工具的坐标旋转数字计算方法及系统。

背景技术

cordic算法(Coordinate Rotation Digital Computer,坐标旋转数字计算方法)主要应用于三角函数、双曲线、指数、对数的计算。cordic算法通过将基本的加和移位的计算来替代乘法运算,使得矢量的旋转和定向计算不需要指数、开方、乘法等运算。

对于cordic算法中浮点运算在硬件上的实现,以往是利用FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)上的FPU(Float Point Unit,浮点运算单元),而对于没有FPU模块的FPGA,则无法进行浮点运算。

发明内容

本发明为克服上述现有技术所述的无法在缺少FPU模块的FPGA上实施cordic算法的缺陷,提供一种基于高层次综合工具的坐标旋转数字计算方法及系统。

为解决上述技术问题,本发明的技术方案如下:

一种基于高层次综合工具的坐标旋转数字计算方法,包括以下步骤:

S1:采用高级语言构建基于长整型运算的坐标旋转数字计算模型,所述坐标旋转数字计算模型包括对三角函数、双曲线、指数、对数的运算操作;

S2:采用高层次综合工具将所述坐标旋转数字计算模型进行转换;

S3:将经过转换的坐标旋转数字计算模型通过FPGA进行仿真,完成坐标旋转数字计算。

作为优选方案,构建基于长整型运算的坐标旋转数字计算模型的步骤包括:

1)将浮点数转换为64位长整型数;

2)将浮点运算转化为长整型运算;

3)设置三角函数类型及其输出精度;

4)通过修改枚举类型对目标三角函数类型进行修改并输出,通过修改迭代次数对输出精度进行调整。

作为优选方案,采用高层次综合工具将所述坐标旋转数字计算模型进行转换的步骤包括:将采用高级语言构建的坐标旋转数字计算模型转换为LLVM-IR中间表达式文件,再将LLVM-IR中间表达式文件通过Lua脚本文件进行配置,转换为通过低级语言表达的坐标旋转数字计算模型。

作为优选方案,将LLVM-IR中间表达式文件通过Lua脚本文件进行配置的步骤包括:

对LLVM-IR中间表达式文件进行高层次通用优化;

对优化后的LLVM-IR中间表达式文件进行高层次综合变换,基于行为级时序约束转换为通过寄存器传输级代码语言表达的坐标旋转数字计算模型。

作为优选方案,将经过转换的坐标旋转数字计算模型通过FPGA进行仿真的步骤包括:

根据经过转换的坐标旋转数字计算模型生成相应的比特流文件,下载配置至FPGA中;

对FPGA进行在线调试,并将调试结果与cordic核进行对比,当调试结果与cordic核数据匹配时,则以调试结果作为坐标旋转数字计算结果输出;否则跳转执行S1步骤。

进一步的,本发明还提出了一种基于高层次综合工具的坐标旋转数字计算系统,包括:

模型构建模块,用于采用高级语言构建基于长整型运算的坐标旋转数字计算模型;

高层次综合模块,用于采用高层次综合工具将所述坐标旋转数字计算模型进行转换;

仿真模块,用于对经过转换的坐标旋转数字计算模型进行仿真计算,并输出坐标旋转数字计算结果。

作为优选方案,所述模型构建模块中包括:

浮点运算转换单元,用于将浮点数转换为64位长整型数,将浮点运算转化为长整型运算;

三角函数设置单元,用于设置三角函数类型;所述三角函数类型包括SIN函数、COS函数、TAN函数、COT函数、CSC函数、SEC函数;

精度调整单元,用于修改迭代次数对输出结果的精度进行调整。

作为优选方案,所述系统还包括人机交互模块,所述人机交互模块包括SIN选择按键、COS选择按键、TAN选择按键、COT选择按键、CSC选择按键和SEC选择按键,分别用于选择设置的三角函数类型,以及目标精度输入单元,用于修改输出结果的精度。

作为优选方案,所述高层次综合模块中包括:

LLVM-IR文件转换单元,用于将采用高级语言构建的坐标旋转数字计算模型转换为LLVM-IR中间表达式文件;

配置单元,用于将LLVM-IR中间表达式文件通过Lua脚本文件进行配置,转换为通过低级语言表达的坐标旋转数字计算模型。

作为优选方案,所述配置单元包括依次连接的高层次通用优化层、高层次综合变换层和寄存器传输级代码与行为级时序约束生成层,分别用于对LLVM-IR中间表达式文件进行高层次通用优化,对优化后的LLVM-IR中间表达式文件进行高层次综合变换,基于行为级时序约束转换为通过寄存器传输级代码语言表达的坐标旋转数字计算模型。

与现有技术相比,本发明技术方案的有益效果是:本发明在将坐标旋转数字计算模型配置到FPGA前,将其三角函数、双曲线、指数、对数的运算操作构建为基于长整型运算的坐标旋转数字计算模型,再通过高层次综合工具将坐标旋转数字计算模型配置在FPGA,能够实现在没有FPU模块的FPGA上进行浮点运算。

附图说明

图1为实施例1的基于高层次综合工具的坐标旋转数字计算方法的流程图。

图2为修改cordic算法输出三角函数类型为sin对应的shell脚本示意图。

图3为修改cordic算法迭代次数对应的shell脚本示意图。

图4为实施例2的基于高层次综合工具的坐标旋转数字计算系统的架构图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本实施例提出一种基于高层次综合工具的坐标旋转数字计算方法,如图1所示,为本实施例的基于高层次综合工具的坐标旋转数字计算方法的流程图。

本实施例提出的基于高层次综合工具的坐标旋转数字计算方法中,包括以下步骤:

S1:采用高级语言构建基于长整型运算的坐标旋转数字计算模型,所述坐标旋转数字计算模型包括对三角函数、双曲线、指数、对数的运算操作。

其中,构建基于长整型运算的坐标旋转数字计算模型的步骤包括:

1)将浮点数转换为64位长整型数;

2)将浮点运算转化为长整型运算;

3)设置三角函数类型及其输出精度;

4)通过修改枚举类型对目标三角函数类型进行修改并输出,通过修改迭代次数对输出精度进行调整。

S2:采用高层次综合工具将所述坐标旋转数字计算模型进行转换。其具体步骤如下:

将采用高级语言构建的坐标旋转数字计算模型转换为LLVM-IR中间表达式文件,再将LLVM-IR中间表达式文件通过Lua脚本文件进行配置,转换为通过低级语言表达的坐标旋转数字计算模型。

其中,将LLVM-IR中间表达式文件通过Lua脚本文件进行配置的步骤包括:

对LLVM-IR中间表达式文件进行高层次通用优化;

对优化后的LLVM-IR中间表达式文件进行高层次综合变换,基于行为级时序约束转换为通过寄存器传输级代码语言表达的坐标旋转数字计算模型。

S3:将经过转换的坐标旋转数字计算模型通过FPGA进行仿真,完成坐标旋转数字计算。其具体步骤如下:

根据经过转换的坐标旋转数字计算模型生成相应的比特流文件,下载配置至FPGA中;

对FPGA进行在线调试,并将调试结果与cordic核进行对比,当调试结果与cordic核数据匹配时,则以调试结果作为坐标旋转数字计算结果输出;否则跳转执行S1步骤。

在具体实施过程中,对构建的坐标旋转数字计算模型经visual studio 2015采用C语言编写相应的算法,并验证算法功能的正确性。具体的,采用C语言将坐标旋转数字计算模型中涉及到的浮点数转化为64位的长整型数,将坐标旋转数字计算模型中涉及到的浮点运算转化为长整型的运算,通过对长整型的运算来实现浮点的运算,以及判断需要输出三角函数类型,包括以下六种:sin、cos、tan、cot、csc、sec及其输出的精度,并通过修改枚举类型来修改输出三角函数的类型,通过修改for循环的循环次数来改变迭代次数从而影响精度。本实施例中,通过shell脚本来改变输出参数类型和迭代的次数从而影响输出结果的精度。CORDIC算法是一种对目标值进行逼近的迭代算法,且迭代次数越多精度越高。如图2、3所示,分别为本实施例修改cordic算法输出三角函数类型为sin对应的shell脚本,以及修改cordic算法迭代次数对应的shell脚本,本实施例中通过替换for循环来改变迭代次数。

采用高层次综合工具将通过验证正确性的坐标旋转数字计算模型转换为Verilog代码。具体的,将C语言在Linux系统下通过SHANG前端生成LLVM-IR中间表达式文件,然后将转出来的LLVM-IR中间表达式文件在Windows系统下通过SHANG后端,通过Lua脚本文件进行配置,最终将LLVM-IR中间表达式文件转成Verilog代码。

最后将经过转换的坐标旋转数字计算模型通过FPGA进行仿真,本实施例中采用Xilinx Vivado的ILA在线调试,先生成的RTL代码生成比特流文件下载配置到FPGA,然后经ILA在线调试,并将其调试结果与Xilinx的cordic核进行对比,当调试结果与cordic核数据匹配时,则以调试结果作为坐标旋转数字计算结果输出。

本实施例在将坐标旋转数字计算模型配置到FPGA前,通过将浮点运算转化为长整型的运算,再进一步采用高层次综合工具将坐标旋转数字计算模型进行转换,经过转换后的坐标旋转数字计算模型配置在FPGA,从而实现在没有FPU模块的FPGA上进行浮点运算。

实施例2

本实施例提出一种基于高层次综合工具的坐标旋转数字计算系统,应用于实施例1提出的基于高层次综合工具的坐标旋转数字计算方法。如图4所示,为本实施例的基于高层次综合工具的坐标旋转数字计算系统的架构图。

本实施例提出的基于高层次综合工具的坐标旋转数字计算系统中,包括:

模型构建模块1,用于采用高级语言构建基于长整型运算的坐标旋转数字计算模型;

高层次综合模块2,用于采用高层次综合工具将所述坐标旋转数字计算模型进行转换;

仿真模块3,用于对经过转换的坐标旋转数字计算模型进行仿真计算,并输出坐标旋转数字计算结果。

其中,本实施例中的模型构建模块1中包括:

浮点运算转换单元11,用于将浮点数转换为64位长整型数,将浮点运算转化为长整型运算;

三角函数设置单元12,用于设置三角函数类型;所述三角函数类型包括SIN函数、COS函数、TAN函数、COT函数、CSC函数、SEC函数;

精度调整单元13,用于修改迭代次数对输出结果的精度进行调整。

进一步的,本实施例中的坐标旋转数字计算系统还包括人机交互模块4,所述人机交互模块4包括SIN选择按键、COS选择按键、TAN选择按键、COT选择按键、CSC选择按键和SEC选择按键,分别用于选择设置的三角函数类型,以及目标精度输入单元,用于修改输出结果的精度。

本实施例中的高层次综合模块2中包括:

LLVM-IR文件转换单元21,用于将采用高级语言构建的坐标旋转数字计算模型转换为LLVM-IR中间表达式文件;

配置单元22,用于将LLVM-IR中间表达式文件通过Lua脚本文件进行配置,转换为通过低级语言表达的坐标旋转数字计算模型。

进一步的,本实施例中的配置单元22包括依次连接的高层次通用优化层(GenericTransformations with Lowlevel information)、高层次综合变换层(HLS-specificTransformations)和寄存器传输级代码与行为级时序约束生成层(RTL Synthesis withBehaviorlevel information),分别用于对LLVM-IR中间表达式文件进行高层次通用优化,对优化后的LLVM-IR中间表达式文件进行高层次综合变换,基于行为级时序约束转换为通过寄存器传输级代码语言表达的坐标旋转数字计算模型。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据组合方法、芯片及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类