本发明涉及数字芯片设计,尤其是一种基于fpga的曲线插值方法。
背景技术:
1、在数学领域中,如果需要实现在两点之间插入多个点,最终由于点数较多而形成一条线,可以有很多种算法公式去实现它。两个点之间的插值方法有三种:常数插值、线性插值和曲线插值。常数插值:在已经知道两点(两点相等)的情况下,在两点之间插入于两点相等的值,最终插入的点数足够多而形成水平线段。线性插值:在已经知道两点坐标的情况下,计算出两点呈线性关系的斜率和常数,通过线性公式在两点之间进行插值,最终插入的点数足够多而形成的线段与插值两点呈线性关系(倾斜直线)。曲线插值:在已经知道两点的情况下,通过一些数学算法公式(如指数插值)进行插值,最终插入的点数足够多而形成的线与插值两点呈曲线关系(曲线)。
2、在fpga领域中(fpga领域:属于数字芯片设计领域,设计使用一种硬件描述语言verilog,是用于芯片设计的一种计算机语言,类似于c语言),涉及的设计流程有代码编写、代码综合(代码综合是通过电子设计自动化软件把verilog代码转化成电路的一个流程)等等步骤,常数插值和线性插值比较容易实现,但是由于verilog语言规则和软件综合规则,因此当需要在fpga领域中设计一条曲线时,绝大多数数学领域的算法公式都无法合适地应用于fpga领域中。
3、现有的曲线插值方法中,具有以下问题:
4、1、埃米尔特插值算法结构过于复杂,对应于fpga领域中的代码编写难度巨大;
5、2、指数插值算法的算法实现较为简单,但是不是所有的verilog代码都可以转化为芯片设计领域中的门级电路,因此,指数对应的verilog语言代码在综合软件中无法综合,指数插值方法在fpga领域中无法使用,无法利用其实现曲线插值。
技术实现思路
1、有鉴于此,本发明实施例提供一种简易且易实现的基于fpga的曲线插值方法。
2、一方面,本发明实施例提供了一种基于fpga的曲线插值方法,包括:
3、确定第一坐标和第二坐标;
4、对所述第一坐标和所述第二坐标进行分段操作得到分段结果;
5、对所述分段结果进行曲线插值操作,得到基于fpga的曲线插值结果。
6、可选地,所述对所述第一坐标和所述第二坐标进行分段操作得到分段结果,包括:
7、所述分段操作包括第一分段操作和第二分段操作;
8、对所述第一坐标和所述第二坐标确定的横轴线段进行第一分段操作,得到分段结果的横坐标;
9、对所述第一坐标和所述第二坐标确定的纵轴线段进行第二分段操作,得到分段结果的纵坐标。
10、可选地,所述对所述第一坐标和所述第二坐标确定的横轴线段进行第一分段操作,包括:
11、对所述横轴线段进行均等分的第一分段操作。
12、可选地,所述对所述第一坐标和所述第二坐标确定的纵轴线段进行第二分段操作,包括:
13、计算所述第一坐标和所述第二坐标的纵坐标之间的差值;
14、将所述差值除以2的正数次幂完成第二分段操作。
15、可选地,所述对所述分段结果进行曲线插值操作,得到基于fpga的曲线插值结果,包括:
16、确定线性公式;
17、确定分段数量;
18、根据所述分段数量,通过所述线性公式对分段操作后的线段之间的点进行插值操作,得到基于fpga的曲线插值结果。
19、可选地,所述确定分段数量这一步骤中,所述分段数量为2的正数次幂。
20、可选地,所述确定线性公式这一步骤中,所述线性公式为y=kx+b;
21、其中,y为分段后过相邻两点直线上点的纵坐标,k为分段后过相邻两点直线的斜率,x为分段后过相邻两点直线上点的横坐标。
22、另一方面,本发明实施例还提供了一种基于fpga的曲线插值装置,包括:
23、分段模块,用于确定第一坐标和第二坐标;对所述第一坐标和所述第二坐标进行分段操作得到分段结果;
24、插值模块,用于对所述分段进行曲线插值操作,得到基于fpga的曲线插值结果。
25、另一方面,本发明实施例还提供了一种电子设备,包括处理器以及存储器;
26、所述存储器用于存储程序;
27、所述处理器执行所述程序实现上述基于fpga的曲线插值的方法。
28、另一方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现上述基于fpga的曲线插值的方法。
29、本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
30、本发明的实施例至少包括以下有益成果:本发明实施例首先确定需要进行曲线插值的两个点的坐标,然后对两个点进行分段操作,本发明实施例的分段操作简单易实现,解决了因数学公式繁杂而无法编写合适的fpga代码的问题,对代码编写十分友好;最后将分段后的结果进行基于fpga的曲线插值,完成了fpga的曲线插值,弥补了fpga领域曲线插值的空缺,又能在芯片设计领域中进行综合。
1.一种基于fpga的曲线插值方法,其特征在于,包括:
2.根据权利要求1所述的一种基于fpga的曲线插值方法,其特征在于,所述对所述第一坐标和所述第二坐标进行分段操作得到分段结果,包括:
3.根据权利要2所述的一种基于fpga的曲线插值方法,其特征在于,所述对所述第一坐标和所述第二坐标确定的横轴线段进行第一分段操作,包括:
4.根据权利要2所述的一种基于fpga的曲线插值方法,其特征在于,所述对所述第一坐标和所述第二坐标确定的纵轴线段进行第二分段操作,包括:
5.根据权利要4所述的一种基于fpga的曲线插值方法,其特征在于,所述对所述分段结果进行曲线插值操作,得到基于fpga的曲线插值结果,包括:
6.根据权利要5所述的一种基于fpga的曲线插值方法,其特征在于,所述确定分段数量这一步骤中,所述分段数量为2的正数次幂。
7.根据权利要5所述的一种基于fpga的曲线插值方法,其特征在于,所述确定线性公式这一步骤中,所述线性公式为y=kx+b;
8.一种基于fpga的曲线插值装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括处理器以及存储器;
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至7中任一项所述的方法。