一种基于fpga的运算电路、示波器和测量仪器的制造方法

文档序号:10534460阅读:303来源:国知局
一种基于fpga的运算电路、示波器和测量仪器的制造方法
【专利摘要】本申请公开的一种基于FPGA的运算电路、示波器和测量仪器,输出互联矩阵模块,将第一运算模块输出的运算结果作为第二运算模块的输入量,将第三运算模块输出的运算结果作为最终输出,第一运算模块为输出的运算结果作为其它运算模块输入量的运算模块,第二运算模块为输入量是其它运算模块输出运算结果的运算模块,第三运算模块为输出运算结果作为最终运算输出的运算模块,同一个运算模块,在不同的运算过程中可以是第一运算模块、第二运算模块或第三运算模块,保障各个运算模块之间的多级任意互联,使得数学运算的拆分次数变少,进而,提高了数学运算速度,并且,FPGA的并行特性,运算时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
【专利说明】
一种基于FPGA的运算电路、示波器和测量仪器
技术领域
[0001 ]本申请涉及数据处理领域,更具体地说,涉及一种基于FPGA的运算电路、示波器和测量仪器。
【背景技术】
[0002]数学运算装置是大多测量仪器的功能单元之一,用于完成数学运算,传统的数学运算装置由微处理器来实现,结构如图1所示,在执行数学运算时,需要从程序存储器中取指令,用于控制运算单元从数据存储器中获取数据进行运算,以及控制将运算单元的运算结果存入数据存储器。
[0003]数学运算模型可以归纳为y= f [gl(Xl,X2,…,Xn),g2 (Xl,X2,…,Xn),…,gk(Xl,%-,^1)]其中8^1{为子函数,即运算函数7可以拆分为多级子函数运算,例如7 = &1^1)+ln(X2)可拆分为gi = sin(xi),g2 = ln(X2),y = gi+g2。因此,任意数学运算都可以通过拆分、分级运算来实现。
[0004]微处理器进行数学运算具有串行迭代特性,即运算时只能等上一次运算完成后才能进行下一次的运算。例如:丫 = 8;[11(11) + 111(12)通过微处理器需要进行三次运算,首选运算Sin(X1),再进行In(X2)的运算,最后再将两个运算结果相加。假设一次数学参数运算时,微处理器需要执行的指令数目为N,第N条指令需要Kn个时钟周期,每个时钟周期的时间为T1,则微处理器完成M次数学运算需要的时间的值随运算的复杂程度增大而增大,至少在几十的数量。微处理器进行数学运算的方式,基于指令集进行串行操作,需要多次迭代,速度慢,并且,结构单一,运算时会占用大量微处理器资源,很容易导致系统卡顿的故障。

【发明内容】

[0005]有鉴于此,本申请提出一种基于FPGA的运算电路、示波器和测量仪器,欲实现提高数学运算速度,以及减少系统卡顿情况发生目的。
[0006]为了实现上述目的,现提出的方案如下:
[0007]一种基于FPGA的运算电路,包括:输入互联矩阵模块、多个运算模块、以及输出互联矩阵模块,
[0008]所述输入互联矩阵模块,用于获取数学参数,并将所述数学参数作为所述运算模块的输入量,以及获取第一运算模块输出的运算结果,并将所述第一运算模块输出的运算结果作为第二运算模块的输入量,所述第一运算模块为输出的运算结果作为其它运算模块输入量的运算模块,所述第二运算模块为输入量是其它运算模块输出的运算结果的运算模块;
[0009]所述运算模块,用于对接收的输入量进行运算;
[0010]所述输出互联矩阵模块,用于将所述第一运算模块输出的运算结果作为第二运算模块的输入量,以及将第三运算模块输出的运算结果作为最终运算输出,所述第三运算模块为输出的运算结果作为最终运算输出的运算模块。
[0011]优选的,所述运算模块包括但不限于加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、平方单元、微分单元、积分单元、对数单元和/或三角函数单元。
[0012]优选的,所述运算模块的运算采用流水线处理方式。
[0013]一种示波器,包括处理器、模拟数字转换器和显示器,还包括如上述的基于FPGA的运算电路。
[0014]优选的,所述示波器的运算模块包括但不限于加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、平方单元、微分单元、积分单元、对数单元和/或三角函数单
J L ο
[0015]优选的,所述示波器的运算模块的运算采用流水线处理方式。
[0016]—种测量仪器,包括上述的基于FPGA的运算电路。
[0017]优选的,所述测量仪器的运算模块包括但不限于加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、平方单元、微分单元、积分单元、对数单元和/或三角函数单
J L ο
[0018]优选的,所述测量仪器的运算模块的运算采用流水线处理方式。
[0019]从上述的技术方案可以看出,本申请公开的一种基于FPGA的运算电路、示波器和测量仪器,输出互联矩阵模块,用于将第一运算模块输出的运算结果作为第二运算模块的输入量,以及将第三运算模块输出的运算结果作为最终输出,保障各个运算模块之间的多级任意互联,例如,把运算模块I和运算模块2串联,将运算模块I输出的运算结果作为运算模块2的输入量,将运算模块2的输出作为最终运算输出,y = sin(X1)+ln(X2)通过基于FPGA的运算电路,执行一次运算就能完成,使得数学运算的拆分次数变少,进而,提高了数学运算速度,并且,由于FPGA的并行特性,运算时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
【附图说明】
[0020]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0021 ]图1为本实施例公开的一种传统的数学运算装置的结构示意图;
[0022]图2为本实施例公开的一种基于FPGA的运算电路的结构示意图;
[0023]图3为本实施例公开的运算模块的运算采用流水线和非流水线时间对比示意图。
【具体实施方式】
[0024]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0025]本申请公开的一种基于FPGA的运算电路,实现数学运算时数据的运算为并行操作,数据直接保存在FPGA硬件电路中,可以实现各个运算模块之间的多级任意互联,使得数学运算的拆分次数变少,进而提高数学运算速度,并且,由于FPGA的并行特性,运算时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
[0026]本实施例公开一种基于FPGA的运算电路,参见图2所示,该运算电路包括:输入互联矩阵模块、多个运算模块、以及输出互联矩阵模块。
[0027]输入互联矩阵模块,用于获取数学参数(X1、X2、……xn),并将获取的数学参数作为运算模块的输入量,以及获取第一运算模块输出的运算结果,并将第一运算模块输出的运算结果作为第二运算模块的输入量。一个运算模块输出的运算结果作为另一个运算模块的输入量时,我们定义前者为第一运算模块,后者为第二运算模块,即第一运算模块和第二运算模块是针对在一个运算模块输出的运算结果作为另一个运算模块的输入量时的名称,同一个运算模块,在不同的运算过程中既可以是第一运算模块,也可以是第二运算模块。
[0028]运算模块,用于对接收的输入量进行运算;
[0029]输出互联矩阵模块,用于将第一运算模块输出的运算结果作为第二运算模块的输入量,以及将第三运算模块输出的运算结果作为最终运算输出(y),我们定义输出的运算结果作为最终运算输出的运算模块为第三运算模块,同样的,同一个运算模块,在不同的运算过程中可以是第一运算模块、第二运算模块或第三运算模块。
[0030]本实施例公开的一种基于FPGA的运算电路,输出互联矩阵模块,将第一运算模块输出的运算结果作为第二运算模块的输入量,以及将第三运算模块输出的运算结果作为最终输出,保障各个运算模块之间的多级任意互联,使得数学运算的拆分次数变少,进而,提高了数学运算速度,并且,由于FPGA的并行特性,运算时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
[0031 ]运算模块包括但不限于加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、对数单元、三角函数单元、平方单元、微分单元、积分单元等,FPGA是一种现场可编程器件,通过软件编程方式来更改内部电路结构实现不同功能。
[0032]运算模块的运算采用非流水线处理方式时,因为第M次运算必须等待第M-1次运算的完成后才能运算。由于基于FPGA的运算电路进行数学运算时,为并行操作,数据直接保存在FPGA硬件电路中,不会有取指令、执行指令的操作,完成一次数学运算需要L个系统时钟周期T3,L值一般在5左右,所以基于FPGA的运算电路进行M次数学运算,运算模块的运算采用非流水线处理方式时,所需要的时间为M*L*T3,!^与!^相差不大,L远小于(Ki+fc+.--+Kn),因此,基于FPGA的运算电路进行M次数学运算,运算模块的运算采用非流水线处理方式时,运算速度较微处理器进行数学运算有较大提高。
[0033]运算模块的运算采用流水线处理方式时,因为第M次运算不必等待第M-1次运算的完成后再运算,可以同时运算,参见图3所示,基于FPGA的运算电路进行M次数学运算,运算模块的运算采用非流水线处理方式时,完成M次数学运算需要的时间为(M+L-1)*T3。进一步,提高了数学运算的速度。
[0034]本实施例公开一种示波器,包括处理器、模拟数字转换器、显示器、以及基于FPGA的运算电路,使得示波器的数学运算速度得到很大提升。
[0035]本实施例公开一种测量仪器,基于FPGA的运算电路,使得测量仪器的数学运算速度得到很大提升。
[0036]以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0037]在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0038]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0039]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种基于FPGA的运算电路,其特征在于,包括:输入互联矩阵模块、多个运算模块、以及输出互联矩阵模块, 所述输入互联矩阵模块,用于获取数学参数,并将所述数学参数作为所述运算模块的输入量,以及获取第一运算模块输出的运算结果,并将所述第一运算模块输出的运算结果作为第二运算模块的输入量,所述第一运算模块为输出的运算结果作为其它运算模块输入量的运算模块,所述第二运算模块为输入量是其它运算模块输出的运算结果的运算模块; 所述运算模块,用于对接收的输入量进行运算; 所述输出互联矩阵模块,用于将所述第一运算模块输出的运算结果作为第二运算模块的输入量,以及将第三运算模块输出的运算结果作为最终运算输出,所述第三运算模块为输出的运算结果作为最终运算输出的运算模块。2.根据权利要求1所述的运算电路,其特征在于,所述运算模块包括加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、平方单元、微分单元、积分单元、对数单元和/或三角函数单元。3.根据权利要求1或2所述的运算电路,其特征在于,所述运算模块的运算采用流水线处理方式。4.一种示波器,包括处理器、模拟数字转换器和显示器,其特征在于,还包括如权利要求I所述的基于FPGA的运算电路。5.根据权利要求4所述的示波器,其特征在于,所述运算模块包括加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、平方单元、微分单元、积分单元、对数单元和/或三角函数单元。6.根据权利要求4或5所述的示波器,其特征在于,所述运算模块的运算采用流水线处理方式。7.—种测量仪器,其特征在于,包括如权利要求1所述的基于FPGA的运算电路。8.根据权利要求7所述的测量仪器,其特征在于,所述运算模块包括加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、平方单元、微分单元、积分单元、对数单元和/或三角函数单元。9.根据权利要求7或8所述的测量仪器,其特征在于,所述运算模块的运算采用流水线处理方式。
【文档编号】G06F7/57GK105892988SQ201610264757
【公开日】2016年8月24日
【申请日】2016年4月26日
【发明人】周立功
【申请人】广州致远电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1