基于fpga的可配置浮點向量范數(shù)求解ip核的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及數(shù)字信號處理技術(shù)領(lǐng)域,特別是一種基于FPGA的可配置浮點向量范 數(shù)求解IP核。
【背景技術(shù)】
[0002] 浮點向量范數(shù)求解是數(shù)據(jù)規(guī)范化中的重要運算,其基本作用是在不改變同一向量 內(nèi)部數(shù)據(jù)間關(guān)系的條件下,將向量數(shù)據(jù)子空間進(jìn)行伸縮變換得到特定的子空間上的投影, 范數(shù)即是一組向量的伸縮量。子空間投影的方式對算法的收斂性有一定的影響。范數(shù)計 算在信號處理、機(jī)器學(xué)習(xí)、智能控制及圖像處理領(lǐng)域都有著廣泛的應(yīng)用,比如支持向量機(jī) (SVM)中的正則化計算、獨立源分量分析(ICA)中的單位化計算等。
[0003] 在解決實際問題的過程中,實時處理大數(shù)據(jù)需要越來越高的處理能力,通用的處 理器及CPU已經(jīng)不能滿足當(dāng)下的計算要求,而且通用的CPU處理器成本高,不適合小型的硬 件計算系統(tǒng)。因此,需要一種新型的硬件來完成運樣的工作。
[0004] 當(dāng)前在數(shù)字信號處理應(yīng)用中已經(jīng)有很多的硬件設(shè)計采用FPGA實現(xiàn)設(shè)計的運算模 塊,并具有很成熟的技術(shù),運充分證明了在使用FPGA實現(xiàn)硬件運算設(shè)計是可行的,并且應(yīng) 用廣泛。然而,當(dāng)前的硬件運算設(shè)計多采用模塊化設(shè)計,對于范數(shù)求解的模塊設(shè)計缺乏可廣 泛應(yīng)用的成果。主要存在W下原因,多數(shù)硬件設(shè)計中的范數(shù)求解模塊與其他運算模塊聯(lián)系 緊密,脫離系統(tǒng)模塊后,不可獨立應(yīng)用,靈活性較差;多數(shù)硬件設(shè)計中的范數(shù)求解模塊只針 對其設(shè)計系統(tǒng),針對特定深度的數(shù)據(jù),無法應(yīng)用到其他的FPGA硬件系統(tǒng)中,可移植性差;多 數(shù)硬件設(shè)計中的范數(shù)求解模塊只設(shè)及一種求解方法,無法應(yīng)用于多種計算場合,可配置性 差;EDA第Ξ方提供的IP核庫缺乏具有綜合性能的浮點范數(shù)求解IP核。 陽0化]近年來,隨著硬件嵌入式系統(tǒng)的迅猛發(fā)展,系統(tǒng)級設(shè)計W其軟硬協(xié)同工作的優(yōu)勢 成為了邸A設(shè)計的主流技術(shù)。系統(tǒng)級設(shè)計區(qū)別于之前的FPGA系統(tǒng)級設(shè)計,它主要WIP核 為底層設(shè)計。然而,現(xiàn)有的硬件設(shè)計的底層抽象設(shè)計多停留在模塊設(shè)計,具備通用性的浮點 范數(shù)求解IP核嚴(yán)重缺乏。
[0006] 綜上所述,現(xiàn)有的浮點范數(shù)求解硬件實現(xiàn)具有W下缺陷:獨立性弱,可移植性差, 可配置性差,不適合當(dāng)下基于IP核的系統(tǒng)及設(shè)計。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的在于,提供一種基于FPGA的可配置浮點向量范數(shù)求解IP核,具有獨 立性強(qiáng)、可移植性強(qiáng)、可配置性強(qiáng)、精度高的優(yōu)點。
[0008] 本發(fā)明提供了一種一種基于FPGA的可配置浮點向量范數(shù)求解IP核,包括:
[0009] 一總線接口,用于系統(tǒng)與外部進(jìn)行數(shù)據(jù)通信;
[0010] 一浮點向量范數(shù)求解電路,該浮點向量范數(shù)求解電路與總線接口連接,實現(xiàn)范數(shù) 求解。
[0011] 本發(fā)明的有益效果是:
[0012] 1、浮點向量1范數(shù)求解電路22、浮點向量2范數(shù)求解電路23及浮點向量無窮范數(shù) 求解電路24,可實現(xiàn)對任意深度的數(shù)據(jù)進(jìn)行范數(shù)求解。
[0013] 2、將浮點向量1范數(shù)求解電路22、浮點向量2范數(shù)求解電路23及浮點向量無窮范 數(shù)求解電路24,采用FPGA選擇性生成技術(shù),具有節(jié)省資源的同時具備范數(shù)求解的多功能性 的特性。
[0014] 3、對浮點向量1范數(shù)求解電路22、浮點向量2范數(shù)求解電路23及浮點向量無窮范 數(shù)求解電路24,采用參數(shù)化設(shè)計技術(shù),實現(xiàn)了用戶可配置的功能。
[0015] 4、將基于FPGA的可配置浮點向量范數(shù)求解電路采用了IP核封裝技術(shù),提高了設(shè) 計的獨立性和可移植性,使得基于FPGA的可配置范數(shù)求解IP核可W靈活應(yīng)用到多種嵌入 式系統(tǒng)級設(shè)計環(huán)境中。
【附圖說明】
[0016] 為進(jìn)一步說明本發(fā)明的技術(shù)內(nèi)容,W下結(jié)合附圖及實施案例對本發(fā)明詳細(xì)說明如 后,其中:
[0017] 圖1為本發(fā)明基于FPGA的可配置浮點向量范數(shù)求解IP核的設(shè)計原理結(jié)構(gòu)示意 圖; 陽01引圖2為本發(fā)明浮點乘累加電路內(nèi)部數(shù)據(jù)調(diào)度圖。
【具體實施方式】
[0019] 請參閱圖1所示,本發(fā)明提供一種基于FPGA的可配置浮點向量范數(shù)求解IP核,包 括:
[0020] 一總線接口 10,用于系統(tǒng)與外部進(jìn)行數(shù)據(jù)通信;所述總線接口 10包含輸入總線接 口 11、輸出總線接口 12和參數(shù)設(shè)置接口 13,分別用于數(shù)據(jù)輸入、數(shù)據(jù)輸出及參數(shù)設(shè)置;
[0021] 一浮點向量范數(shù)求解電路20,該浮點向量范數(shù)求解電路20與總線接口 10連接,實 現(xiàn)范數(shù)求解,所述浮點向量范數(shù)求解電路20包括: 陽02引一選擇電路21;
[0023] 一浮點向量1范數(shù)求解電路22,其與選擇電路21的一輸出端連接;
[0024] 一浮點向量2范數(shù)求解電路23,其與選擇電路21的另一輸出端連接;
[0025] 一浮點向量無窮范數(shù)求解電路24,其與選擇電路21的再一輸出端連接; 陽026] -內(nèi)部數(shù)據(jù)總線25,該內(nèi)部數(shù)據(jù)總線25分別與浮點向量1范數(shù)求解電路22、浮點 向量2范數(shù)求解電路23和浮點向量無窮范數(shù)求解電路24的數(shù)據(jù)端連接。
[0027]其中浮點向量1范數(shù)求解電路22,包含浮點累加電路及其控制電路,實現(xiàn)浮點向 量1范數(shù)計算。
[002引其中浮點向量2范數(shù)求解電路23,包含浮點乘累加電路及其控制電路,實現(xiàn)浮點 向量2范數(shù)計算。
[0029] 其中浮點向量無窮范數(shù)求解電路24,包含最大浮點數(shù)求解電路及其控制電路,實 現(xiàn)浮點向量無窮范數(shù)計算。
[0030] 其中浮點向量1范數(shù)求解電路22中的浮點累加電路,包括一個浮點累加IP核,W 及浮點累加電路的內(nèi)部控制電路,實現(xiàn)浮點數(shù)據(jù)累加計算。
[0031] 其中浮點向量2范數(shù)求解電路23中的浮點乘累加電路,包括一個浮點乘法IP核、 4個浮點加法IP核,W及浮點乘累加電路的控制電路,實現(xiàn)浮點數(shù)據(jù)乘累加計算。
[0032] 再參閱圖1所示,其中浮點向量范數(shù)求解電路20與總線接口 10連接,通過將選擇 控制參數(shù)P1與輸入?yún)?shù)組P2連接到參數(shù)設(shè)置接口 13實現(xiàn)參數(shù)傳輸,通過輸入總線接口 11、輸出總線接口 12實現(xiàn)數(shù)據(jù)傳輸。
[003引其中選擇控制參數(shù)P1為范數(shù)選擇參數(shù)Normnum,控制實現(xiàn)選擇電路21的選擇功 能。當(dāng)參Normnum設(shè)置為1時,浮點向量范數(shù)求解電路20內(nèi)部選擇性生成浮點向量1范 數(shù)求解電路22 ;當(dāng)參數(shù)Normnum設(shè)置為2時,選擇性生成浮點向量2范數(shù)求解電路23 ;當(dāng) Normnum設(shè)置為inf時,選擇性產(chǎn)生浮點向量無窮范數(shù)求解電路24。
[0034] 其中輸入?yún)?shù)組P2包括地址寬度參數(shù)、數(shù)據(jù)寬度參數(shù),分別實現(xiàn)用戶配置所發(fā)送 數(shù)據(jù)的地址寬度及數(shù)據(jù)寬度的功能。運一功能使得該總線接口可W靈活連接到不同場合的 應(yīng)用電路中,從而提高了該IP核的可移植性。
[0035] 其中輸入總線接口 11,包括時鐘信號、復(fù)位信號、啟動信號、讀信號、讀地址信號、 讀數(shù)據(jù)信號W及數(shù)據(jù)深度信號。復(fù)位信號用于實現(xiàn)該IP核電路內(nèi)部寄存器清零功能;啟 動信號用于實現(xiàn)該IP核電路使能功能,可采用脈沖式啟動和電平置位啟動兩種方式;讀信 號、讀地址信號、讀數(shù)據(jù)信號組成標(biāo)準(zhǔn)的讀數(shù)據(jù)接口,可實現(xiàn)與標(biāo)準(zhǔn)存儲器之間直接進(jìn)行無 縫數(shù)據(jù)讀??;數(shù)據(jù)深度信號為32位無符號定點數(shù)據(jù)輸入信號,用于輸入要輸入的數(shù)據(jù)個 數(shù)。數(shù)據(jù)深度信號的設(shè)定使該IP可W按預(yù)定的數(shù)據(jù)深度進(jìn)行計算,從而使得該IP核計算 功能的靈活性大大提高。
[0036] 其中輸出總線接口12包括輸出有效信號W及輸出數(shù)據(jù)信號。運兩個信號具有同 步性;當(dāng)輸出有效信號置高時,輸出數(shù)據(jù)有效;當(dāng)輸出有效信號置零時,輸出數(shù)據(jù)無效。運 一功能便于該IP核靈活地應(yīng)用到其他電路中,輸出有效信號可作為下一級電路的控制信 號,使得下一級電路可W準(zhǔn)確監(jiān)測并控制接收該IP核的輸出數(shù)據(jù)。
[0037] 此外,選擇電路21采用狀態(tài)機(jī)機(jī)制由脈沖式啟動控制產(chǎn)生內(nèi)部系統(tǒng)置位信號,通 過輸出有效脈沖信號及系統(tǒng)復(fù)位信號控制系統(tǒng)內(nèi)部使能信號置零。 陽03引 3、浮點向量1范數(shù)求解電路22,按如下公式求解浮點向量1范數(shù):
[0039]
W40] 該浮點向量1范數(shù)求解電路22內(nèi)部使用了XilinxIP庫中的FloatingPointIP核生成了浮點累加IP核;其控制電路W增量方式產(chǎn)生讀地址信號,并將讀到的數(shù)據(jù)采用首 位置零的方式快速求絕對值,然后緩存到浮點累加IP核的輸入端,之后由浮點累加IP核進(jìn) 行累加運算??刂齐娐穬?nèi)部通過對比增量地址與數(shù)據(jù)深度信號,判斷數(shù)據(jù)輸入數(shù)量是否達(dá) 到設(shè)定的數(shù)據(jù)深度。當(dāng)數(shù)據(jù)輸入數(shù)量達(dá)到設(shè)定的數(shù)據(jù)深度時,內(nèi)部使能信號置零,浮點累加 IP核數(shù)據(jù)輸入有效信號置零,控制電路監(jiān)測浮點累加IP核輸出有效信號置零后,脈沖式置 位輸出有效信號,同時將累加結(jié)果送到輸出數(shù)據(jù)信號端。此時,選擇電路21監(jiān)測到輸出有 效脈沖信號后,拉低浮點向量1范數(shù)求解電路22內(nèi)部使能信號,結(jié)束該電路的計算工作。 [0041] 4、浮點向量2范數(shù)求解電路23,按如下公式求解浮點向量2范數(shù):
[0042]
[0043] 該浮點向量2范數(shù)求