一種基于fpga的運(yùn)算電路、示波器和測(cè)量?jī)x器的制造方法
【專(zhuān)利摘要】本申請(qǐng)公開(kāi)的一種基于FPGA的運(yùn)算電路、示波器和測(cè)量?jī)x器,輸出互聯(lián)矩陣模塊,將第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,將第三運(yùn)算模塊輸出的運(yùn)算結(jié)果作為最終輸出,第一運(yùn)算模塊為輸出的運(yùn)算結(jié)果作為其它運(yùn)算模塊輸入量的運(yùn)算模塊,第二運(yùn)算模塊為輸入量是其它運(yùn)算模塊輸出運(yùn)算結(jié)果的運(yùn)算模塊,第三運(yùn)算模塊為輸出運(yùn)算結(jié)果作為最終運(yùn)算輸出的運(yùn)算模塊,同一個(gè)運(yùn)算模塊,在不同的運(yùn)算過(guò)程中可以是第一運(yùn)算模塊、第二運(yùn)算模塊或第三運(yùn)算模塊,保障各個(gè)運(yùn)算模塊之間的多級(jí)任意互聯(lián),使得數(shù)學(xué)運(yùn)算的拆分次數(shù)變少,進(jìn)而,提高了數(shù)學(xué)運(yùn)算速度,并且,F(xiàn)PGA的并行特性,運(yùn)算時(shí)對(duì)系統(tǒng)的其它操作不會(huì)產(chǎn)生影響,進(jìn)而不會(huì)出現(xiàn)系統(tǒng)卡頓的情況。
【專(zhuān)利說(shuō)明】
一種基于FPGA的運(yùn)算電路、示波器和測(cè)量?jī)x器
技術(shù)領(lǐng)域
[0001 ]本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,更具體地說(shuō),涉及一種基于FPGA的運(yùn)算電路、示波器和測(cè)量?jī)x器。
【背景技術(shù)】
[0002]數(shù)學(xué)運(yùn)算裝置是大多測(cè)量?jī)x器的功能單元之一,用于完成數(shù)學(xué)運(yùn)算,傳統(tǒng)的數(shù)學(xué)運(yùn)算裝置由微處理器來(lái)實(shí)現(xiàn),結(jié)構(gòu)如圖1所示,在執(zhí)行數(shù)學(xué)運(yùn)算時(shí),需要從程序存儲(chǔ)器中取指令,用于控制運(yùn)算單元從數(shù)據(jù)存儲(chǔ)器中獲取數(shù)據(jù)進(jìn)行運(yùn)算,以及控制將運(yùn)算單元的運(yùn)算結(jié)果存入數(shù)據(jù)存儲(chǔ)器。
[0003]數(shù)學(xué)運(yùn)算模型可以歸納為y= f [gl(Xl,X2,…,Xn),g2 (Xl,X2,…,Xn),…,gk(Xl,%-,^1)]其中8^1{為子函數(shù),即運(yùn)算函數(shù)7可以拆分為多級(jí)子函數(shù)運(yùn)算,例如7 = &1^1)+ln(X2)可拆分為gi = sin(xi),g2 = ln(X2),y = gi+g2。因此,任意數(shù)學(xué)運(yùn)算都可以通過(guò)拆分、分級(jí)運(yùn)算來(lái)實(shí)現(xiàn)。
[0004]微處理器進(jìn)行數(shù)學(xué)運(yùn)算具有串行迭代特性,即運(yùn)算時(shí)只能等上一次運(yùn)算完成后才能進(jìn)行下一次的運(yùn)算。例如:丫 = 8;[11(11) + 111(12)通過(guò)微處理器需要進(jìn)行三次運(yùn)算,首選運(yùn)算Sin(X1),再進(jìn)行In(X2)的運(yùn)算,最后再將兩個(gè)運(yùn)算結(jié)果相加。假設(shè)一次數(shù)學(xué)參數(shù)運(yùn)算時(shí),微處理器需要執(zhí)行的指令數(shù)目為N,第N條指令需要Kn個(gè)時(shí)鐘周期,每個(gè)時(shí)鐘周期的時(shí)間為T(mén)1,則微處理器完成M次數(shù)學(xué)運(yùn)算需要的時(shí)間的值隨運(yùn)算的復(fù)雜程度增大而增大,至少在幾十的數(shù)量。微處理器進(jìn)行數(shù)學(xué)運(yùn)算的方式,基于指令集進(jìn)行串行操作,需要多次迭代,速度慢,并且,結(jié)構(gòu)單一,運(yùn)算時(shí)會(huì)占用大量微處理器資源,很容易導(dǎo)致系統(tǒng)卡頓的故障。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本申請(qǐng)?zhí)岢鲆环N基于FPGA的運(yùn)算電路、示波器和測(cè)量?jī)x器,欲實(shí)現(xiàn)提高數(shù)學(xué)運(yùn)算速度,以及減少系統(tǒng)卡頓情況發(fā)生目的。
[0006]為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
[0007]一種基于FPGA的運(yùn)算電路,包括:輸入互聯(lián)矩陣模塊、多個(gè)運(yùn)算模塊、以及輸出互聯(lián)矩陣模塊,
[0008]所述輸入互聯(lián)矩陣模塊,用于獲取數(shù)學(xué)參數(shù),并將所述數(shù)學(xué)參數(shù)作為所述運(yùn)算模塊的輸入量,以及獲取第一運(yùn)算模塊輸出的運(yùn)算結(jié)果,并將所述第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,所述第一運(yùn)算模塊為輸出的運(yùn)算結(jié)果作為其它運(yùn)算模塊輸入量的運(yùn)算模塊,所述第二運(yùn)算模塊為輸入量是其它運(yùn)算模塊輸出的運(yùn)算結(jié)果的運(yùn)算模塊;
[0009]所述運(yùn)算模塊,用于對(duì)接收的輸入量進(jìn)行運(yùn)算;
[0010]所述輸出互聯(lián)矩陣模塊,用于將所述第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,以及將第三運(yùn)算模塊輸出的運(yùn)算結(jié)果作為最終運(yùn)算輸出,所述第三運(yùn)算模塊為輸出的運(yùn)算結(jié)果作為最終運(yùn)算輸出的運(yùn)算模塊。
[0011]優(yōu)選的,所述運(yùn)算模塊包括但不限于加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、平方單元、微分單元、積分單元、對(duì)數(shù)單元和/或三角函數(shù)單元。
[0012]優(yōu)選的,所述運(yùn)算模塊的運(yùn)算采用流水線處理方式。
[0013]一種示波器,包括處理器、模擬數(shù)字轉(zhuǎn)換器和顯示器,還包括如上述的基于FPGA的運(yùn)算電路。
[0014]優(yōu)選的,所述示波器的運(yùn)算模塊包括但不限于加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、平方單元、微分單元、積分單元、對(duì)數(shù)單元和/或三角函數(shù)單
J L ο
[0015]優(yōu)選的,所述示波器的運(yùn)算模塊的運(yùn)算采用流水線處理方式。
[0016]—種測(cè)量?jī)x器,包括上述的基于FPGA的運(yùn)算電路。
[0017]優(yōu)選的,所述測(cè)量?jī)x器的運(yùn)算模塊包括但不限于加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、平方單元、微分單元、積分單元、對(duì)數(shù)單元和/或三角函數(shù)單
J L ο
[0018]優(yōu)選的,所述測(cè)量?jī)x器的運(yùn)算模塊的運(yùn)算采用流水線處理方式。
[0019]從上述的技術(shù)方案可以看出,本申請(qǐng)公開(kāi)的一種基于FPGA的運(yùn)算電路、示波器和測(cè)量?jī)x器,輸出互聯(lián)矩陣模塊,用于將第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,以及將第三運(yùn)算模塊輸出的運(yùn)算結(jié)果作為最終輸出,保障各個(gè)運(yùn)算模塊之間的多級(jí)任意互聯(lián),例如,把運(yùn)算模塊I和運(yùn)算模塊2串聯(lián),將運(yùn)算模塊I輸出的運(yùn)算結(jié)果作為運(yùn)算模塊2的輸入量,將運(yùn)算模塊2的輸出作為最終運(yùn)算輸出,y = sin(X1)+ln(X2)通過(guò)基于FPGA的運(yùn)算電路,執(zhí)行一次運(yùn)算就能完成,使得數(shù)學(xué)運(yùn)算的拆分次數(shù)變少,進(jìn)而,提高了數(shù)學(xué)運(yùn)算速度,并且,由于FPGA的并行特性,運(yùn)算時(shí)對(duì)系統(tǒng)的其它操作不會(huì)產(chǎn)生影響,進(jìn)而不會(huì)出現(xiàn)系統(tǒng)卡頓的情況。
【附圖說(shuō)明】
[0020]為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0021 ]圖1為本實(shí)施例公開(kāi)的一種傳統(tǒng)的數(shù)學(xué)運(yùn)算裝置的結(jié)構(gòu)示意圖;
[0022]圖2為本實(shí)施例公開(kāi)的一種基于FPGA的運(yùn)算電路的結(jié)構(gòu)示意圖;
[0023]圖3為本實(shí)施例公開(kāi)的運(yùn)算模塊的運(yùn)算采用流水線和非流水線時(shí)間對(duì)比示意圖。
【具體實(shí)施方式】
[0024]下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0025]本申請(qǐng)公開(kāi)的一種基于FPGA的運(yùn)算電路,實(shí)現(xiàn)數(shù)學(xué)運(yùn)算時(shí)數(shù)據(jù)的運(yùn)算為并行操作,數(shù)據(jù)直接保存在FPGA硬件電路中,可以實(shí)現(xiàn)各個(gè)運(yùn)算模塊之間的多級(jí)任意互聯(lián),使得數(shù)學(xué)運(yùn)算的拆分次數(shù)變少,進(jìn)而提高數(shù)學(xué)運(yùn)算速度,并且,由于FPGA的并行特性,運(yùn)算時(shí)對(duì)系統(tǒng)的其它操作不會(huì)產(chǎn)生影響,進(jìn)而不會(huì)出現(xiàn)系統(tǒng)卡頓的情況。
[0026]本實(shí)施例公開(kāi)一種基于FPGA的運(yùn)算電路,參見(jiàn)圖2所示,該運(yùn)算電路包括:輸入互聯(lián)矩陣模塊、多個(gè)運(yùn)算模塊、以及輸出互聯(lián)矩陣模塊。
[0027]輸入互聯(lián)矩陣模塊,用于獲取數(shù)學(xué)參數(shù)(X1、X2、……xn),并將獲取的數(shù)學(xué)參數(shù)作為運(yùn)算模塊的輸入量,以及獲取第一運(yùn)算模塊輸出的運(yùn)算結(jié)果,并將第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量。一個(gè)運(yùn)算模塊輸出的運(yùn)算結(jié)果作為另一個(gè)運(yùn)算模塊的輸入量時(shí),我們定義前者為第一運(yùn)算模塊,后者為第二運(yùn)算模塊,即第一運(yùn)算模塊和第二運(yùn)算模塊是針對(duì)在一個(gè)運(yùn)算模塊輸出的運(yùn)算結(jié)果作為另一個(gè)運(yùn)算模塊的輸入量時(shí)的名稱(chēng),同一個(gè)運(yùn)算模塊,在不同的運(yùn)算過(guò)程中既可以是第一運(yùn)算模塊,也可以是第二運(yùn)算模塊。
[0028]運(yùn)算模塊,用于對(duì)接收的輸入量進(jìn)行運(yùn)算;
[0029]輸出互聯(lián)矩陣模塊,用于將第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,以及將第三運(yùn)算模塊輸出的運(yùn)算結(jié)果作為最終運(yùn)算輸出(y),我們定義輸出的運(yùn)算結(jié)果作為最終運(yùn)算輸出的運(yùn)算模塊為第三運(yùn)算模塊,同樣的,同一個(gè)運(yùn)算模塊,在不同的運(yùn)算過(guò)程中可以是第一運(yùn)算模塊、第二運(yùn)算模塊或第三運(yùn)算模塊。
[0030]本實(shí)施例公開(kāi)的一種基于FPGA的運(yùn)算電路,輸出互聯(lián)矩陣模塊,將第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,以及將第三運(yùn)算模塊輸出的運(yùn)算結(jié)果作為最終輸出,保障各個(gè)運(yùn)算模塊之間的多級(jí)任意互聯(lián),使得數(shù)學(xué)運(yùn)算的拆分次數(shù)變少,進(jìn)而,提高了數(shù)學(xué)運(yùn)算速度,并且,由于FPGA的并行特性,運(yùn)算時(shí)對(duì)系統(tǒng)的其它操作不會(huì)產(chǎn)生影響,進(jìn)而不會(huì)出現(xiàn)系統(tǒng)卡頓的情況。
[0031 ]運(yùn)算模塊包括但不限于加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、對(duì)數(shù)單元、三角函數(shù)單元、平方單元、微分單元、積分單元等,F(xiàn)PGA是一種現(xiàn)場(chǎng)可編程器件,通過(guò)軟件編程方式來(lái)更改內(nèi)部電路結(jié)構(gòu)實(shí)現(xiàn)不同功能。
[0032]運(yùn)算模塊的運(yùn)算采用非流水線處理方式時(shí),因?yàn)榈贛次運(yùn)算必須等待第M-1次運(yùn)算的完成后才能運(yùn)算。由于基于FPGA的運(yùn)算電路進(jìn)行數(shù)學(xué)運(yùn)算時(shí),為并行操作,數(shù)據(jù)直接保存在FPGA硬件電路中,不會(huì)有取指令、執(zhí)行指令的操作,完成一次數(shù)學(xué)運(yùn)算需要L個(gè)系統(tǒng)時(shí)鐘周期T3,L值一般在5左右,所以基于FPGA的運(yùn)算電路進(jìn)行M次數(shù)學(xué)運(yùn)算,運(yùn)算模塊的運(yùn)算采用非流水線處理方式時(shí),所需要的時(shí)間為M*L*T3,!^與!^相差不大,L遠(yuǎn)小于(Ki+fc+.--+Kn),因此,基于FPGA的運(yùn)算電路進(jìn)行M次數(shù)學(xué)運(yùn)算,運(yùn)算模塊的運(yùn)算采用非流水線處理方式時(shí),運(yùn)算速度較微處理器進(jìn)行數(shù)學(xué)運(yùn)算有較大提高。
[0033]運(yùn)算模塊的運(yùn)算采用流水線處理方式時(shí),因?yàn)榈贛次運(yùn)算不必等待第M-1次運(yùn)算的完成后再運(yùn)算,可以同時(shí)運(yùn)算,參見(jiàn)圖3所示,基于FPGA的運(yùn)算電路進(jìn)行M次數(shù)學(xué)運(yùn)算,運(yùn)算模塊的運(yùn)算采用非流水線處理方式時(shí),完成M次數(shù)學(xué)運(yùn)算需要的時(shí)間為(M+L-1)*T3。進(jìn)一步,提高了數(shù)學(xué)運(yùn)算的速度。
[0034]本實(shí)施例公開(kāi)一種示波器,包括處理器、模擬數(shù)字轉(zhuǎn)換器、顯示器、以及基于FPGA的運(yùn)算電路,使得示波器的數(shù)學(xué)運(yùn)算速度得到很大提升。
[0035]本實(shí)施例公開(kāi)一種測(cè)量?jī)x器,基于FPGA的運(yùn)算電路,使得測(cè)量?jī)x器的數(shù)學(xué)運(yùn)算速度得到很大提升。
[0036]以上所描述的實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0037]在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其它要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0038]本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。
[0039]對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請(qǐng)。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本申請(qǐng)的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請(qǐng)將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種基于FPGA的運(yùn)算電路,其特征在于,包括:輸入互聯(lián)矩陣模塊、多個(gè)運(yùn)算模塊、以及輸出互聯(lián)矩陣模塊, 所述輸入互聯(lián)矩陣模塊,用于獲取數(shù)學(xué)參數(shù),并將所述數(shù)學(xué)參數(shù)作為所述運(yùn)算模塊的輸入量,以及獲取第一運(yùn)算模塊輸出的運(yùn)算結(jié)果,并將所述第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,所述第一運(yùn)算模塊為輸出的運(yùn)算結(jié)果作為其它運(yùn)算模塊輸入量的運(yùn)算模塊,所述第二運(yùn)算模塊為輸入量是其它運(yùn)算模塊輸出的運(yùn)算結(jié)果的運(yùn)算模塊; 所述運(yùn)算模塊,用于對(duì)接收的輸入量進(jìn)行運(yùn)算; 所述輸出互聯(lián)矩陣模塊,用于將所述第一運(yùn)算模塊輸出的運(yùn)算結(jié)果作為第二運(yùn)算模塊的輸入量,以及將第三運(yùn)算模塊輸出的運(yùn)算結(jié)果作為最終運(yùn)算輸出,所述第三運(yùn)算模塊為輸出的運(yùn)算結(jié)果作為最終運(yùn)算輸出的運(yùn)算模塊。2.根據(jù)權(quán)利要求1所述的運(yùn)算電路,其特征在于,所述運(yùn)算模塊包括加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、平方單元、微分單元、積分單元、對(duì)數(shù)單元和/或三角函數(shù)單元。3.根據(jù)權(quán)利要求1或2所述的運(yùn)算電路,其特征在于,所述運(yùn)算模塊的運(yùn)算采用流水線處理方式。4.一種示波器,包括處理器、模擬數(shù)字轉(zhuǎn)換器和顯示器,其特征在于,還包括如權(quán)利要求I所述的基于FPGA的運(yùn)算電路。5.根據(jù)權(quán)利要求4所述的示波器,其特征在于,所述運(yùn)算模塊包括加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、平方單元、微分單元、積分單元、對(duì)數(shù)單元和/或三角函數(shù)單元。6.根據(jù)權(quán)利要求4或5所述的示波器,其特征在于,所述運(yùn)算模塊的運(yùn)算采用流水線處理方式。7.—種測(cè)量?jī)x器,其特征在于,包括如權(quán)利要求1所述的基于FPGA的運(yùn)算電路。8.根據(jù)權(quán)利要求7所述的測(cè)量?jī)x器,其特征在于,所述運(yùn)算模塊包括加法單元、減法單元、除法單元、乘法單元、開(kāi)方單元、指數(shù)單元、平方單元、微分單元、積分單元、對(duì)數(shù)單元和/或三角函數(shù)單元。9.根據(jù)權(quán)利要求7或8所述的測(cè)量?jī)x器,其特征在于,所述運(yùn)算模塊的運(yùn)算采用流水線處理方式。
【文檔編號(hào)】G06F7/57GK105892988SQ201610264757
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年4月26日
【發(fā)明人】周立功
【申請(qǐng)人】廣州致遠(yuǎn)電子股份有限公司