日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
如何用FPGA實現(xiàn)算法的硬件加速
如何用FPGA實現(xiàn)算法的硬件加速
 更新時間:2008-8-4 4:30:58  點擊數(shù):28
【字體: 字體顏色

表1:各種規(guī)模的數(shù)據(jù)模塊下CRC算法測試比較結(jié)果。

2.采用定制指令方法

CRC 算法由連續(xù)的異或和移位操作構(gòu)成,用很少的邏輯即可在硬件中簡單實現(xiàn)。由于這一硬件模塊僅需幾個周期來計算CRC,采用定制指令來實現(xiàn)CRC計算要比采用外圍電路更好。此外,無須涉及系統(tǒng)中任何其它外圍電路或存儲器。僅需要一個微處理器來支持定制指令即可,一般是指可配置微處理器。

當在硬件中實現(xiàn)時,算法應該每次執(zhí)行16或32位計算,這取決于所采用的CRC標準。如果采用CRC-CCITT標準(16位多項式),最好每次執(zhí)行16位計算。如果使用8位微處理器,效率可能不太高,因為裝載操作數(shù)值及返回CRC值需要額外的周期。圖2示出了用硬件實現(xiàn)16位CRC算法的內(nèi)核。

信號msg(15..0)每次被移入異或/移位硬件一位。列表3示出了在64KB數(shù)據(jù)模塊上計算CRC的一些C代碼例子。該實例是針對Nios嵌入式處理器。

列表3:采用定制指令的CRC計算C代碼。

unsigned short crcCompute(unsigned short *data_block, unsigned int nWords)
{
unsigned short* pointer;
unsigned short word;
/*
* initialize crc reg to 0xFFFF
*/
word = nm_crc (0xFFFF, 1); /* nm_crc() is the CRC custom instruction */
/*
* calculate CRC on block of data
* nm_crc() is the CRC custom instruction
*
*/
for (pointer = data_block; pointer < (data_block + nWords); pointer ++)
word = nm_crc(*pointer, 0) return (word);
}
int main(void)
{
#define data_block_begin (na_onchip_memory)
#define data_block_end (na_onchip_memory + 0xffff)
unsigned short crc_result;
unsigned int data_block_length = (unsigned short *)data_block_end - (unsigned short
*)data_block_begin + 1;
crc_result = crcCompute((unsigned short *)data_block_begin, data_block_length);
}

采用定制指令時,用于計算CRC值的代碼是一個函數(shù)調(diào)用,或宏。當針對Nios處理器實現(xiàn)定制指令時,系統(tǒng)構(gòu)建工具會生成一個宏。在本例中為nm_crc(),可用它來調(diào)用定制指令。

在啟動CRC計算之前,定制指令內(nèi)的CRC寄存器需要先初始化。裝載初始值是CRC標準的一部分,而且每種CRC標準都不一樣。接著,循環(huán)將為數(shù)據(jù)模塊中的每16位數(shù)據(jù)調(diào)用一次CRC定制指令。這種定制指令實現(xiàn)方式要比逐位實現(xiàn)的方法快27倍。

3.CRC外圍電路方法

如果將CRC算法作為硬件外圍電路來實現(xiàn),并利用DMA將數(shù)據(jù)從存儲器轉(zhuǎn)移到外圍電路,這樣還可以進一步提高速度。這種方法將省去處理器為每次計算而裝載數(shù)據(jù)所需要的額外周期。DMA可在此外圍電路完成前一次CRC計算的時鐘周期內(nèi)提供新的數(shù)據(jù)。圖3示出了利用DMA、CRC外圍電路來實現(xiàn)加速的系統(tǒng)模塊示意圖。

在64KB數(shù)據(jù)模塊上,利用帶DMA的定制外圍電路可獲得比逐位計算的純軟件算法快500倍的性能。要知道,隨著數(shù)據(jù)模塊規(guī)模的增加,使用DMA所獲得的性能也隨之提高。這是因為設(shè)置DMA僅需很少的開銷,設(shè)置之后DMA運行得特別快,因為每個周期它都可以傳遞數(shù)據(jù)。因此,若只有少數(shù)字節(jié)的數(shù)據(jù),用DMA并不劃算。

這里所討論的所有采用CRC-CCITT標準(16位多項式)的算法都是在Altera Stratix FPGA的Nios處理器上實現(xiàn)的。表1示出了各種數(shù)據(jù)長度的測試比較結(jié)果,以及大致的硬件使用情況(FPGA中的存儲器或邏輯單元)。

可以看出,算法所用的硬件越多,算法速度越快。這是用硬件資源來換取速度。

FPGA的優(yōu)點

當采用基于FPGA的嵌入式系統(tǒng)時,在設(shè)計周期之初不必為每個模塊做出用硬件還是軟件的選擇。如果在設(shè)計中間階段需要一些額外的性能,則可以利用FPGA中現(xiàn)有的硬件資源來加速軟件代碼中的瓶頸部分。由于FPGA中的邏輯單元是可編程的,可針對特定的應用而定制硬件。因此,僅使用所需要的硬件即可,而不必做出任何板級變動(前提是FPGA中的邏輯單元足夠用)。設(shè)計者不必轉(zhuǎn)換到另一個新的處理器或者編寫匯編代碼,就可做到這一點。

使用帶可配置處理器的FPGA可獲得設(shè)計靈活性。設(shè)計者可以選擇如何實現(xiàn)軟件代碼中的每個模塊,如用定制指令,或硬件外圍電路。此外,還可以通過添加定制的硬件而獲取比現(xiàn)成微處理器更好的性能。

另一點要知道的是,F(xiàn)PGA有充裕的資源,可配置處理器系統(tǒng)可以充分利用這一資源。

算法可以用軟件,也可用硬件實現(xiàn)。出于簡便和成本考慮,一般利用軟件來實現(xiàn)大部分操作,除非需要更高的速度以滿足性能指標。軟件可以優(yōu)化,但有時是不夠的。如果需要更高的速度,利用硬件來加速算法是一個不錯的選擇。

FPGA使軟件模塊和硬件模塊的相互交換更加簡便,不必改變處理器或進行板級變動。設(shè)計者可以在速度、硬件邏輯、存儲器、代碼大小和成本之間做出折衷。利用FPGA可以設(shè)計定制的嵌入式系統(tǒng),以增加新的功能特性及優(yōu)化性能。



  • 上一篇: 一鍵設(shè)計:電機自動設(shè)計新概念
  • 下一篇: Floorplanner工具在基于FPGA的嵌入式系統(tǒng)設(shè)計中的應用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1