• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種適于應用程序員設(shè)計FPGA異構(gòu)系統(tǒng)的框架※

      2016-03-20 09:14:39沈鎮(zhèn)柴志雷柴鎮(zhèn)
      關(guān)鍵詞:程序員異構(gòu)框架

      沈鎮(zhèn),柴志雷,柴鎮(zhèn)

      (江南大學物聯(lián)網(wǎng)工程學院,無錫214122)

      一種適于應用程序員設(shè)計FPGA異構(gòu)系統(tǒng)的框架※

      沈鎮(zhèn),柴志雷,柴鎮(zhèn)

      (江南大學物聯(lián)網(wǎng)工程學院,無錫214122)

      本文提供一種適于應用程序員方便使用FPGA平臺的框架。它讓用戶從硬件和系統(tǒng)結(jié)構(gòu)中抽離出來,更關(guān)注算法和應用程序。這個框架綜合了Xilinx ISE和Vivado,可以立即使用。在本文的框架上,一個軟件人員實現(xiàn)了一個廣泛使用的特征提取算法,表明本文的框架的確適用于只有少量硬件知識的應用程序員。

      FPGA;嵌入式系統(tǒng);特征提取;應用程序

      引 言

      眾所周知,在最近的十年,生產(chǎn)商已經(jīng)放棄試圖通過提高單核頻率來提升性能,大多數(shù)主流通用處理器性能增長都借助增加處理器核的數(shù)量。有很多關(guān)于多核的研究調(diào)查[1-2],然而,正如參考文獻[2]中介紹的那樣,現(xiàn)行的并行架構(gòu)在常規(guī)項目(如稠密矩陣計算)上有好的加速效果,但是大多數(shù)在非常規(guī)項目(如計算機視覺)上的表現(xiàn)則差強人意。

      FPGA作為一種可編程邏輯設(shè)備,支持不同類型的細粒度并行,也擅長處理非常規(guī)項目。它的性能和功耗的優(yōu)勢經(jīng)常被得到證明[3-4]。但是,當前在純FPGA上實現(xiàn)應用依然是一個困難的工程,即使是對一個熟練的工程師而言,因為它需要底層VHDL/Verilog硬件語言和硬件細節(jié)的知識,而且在實現(xiàn)應用之前,還需要解決設(shè)備驅(qū)動的問題。

      最近出現(xiàn)了很多針對于FPGA的異構(gòu)SoC,例如Xilinx Zynq-7000[5]和Altera SoC FPGA。異構(gòu)FPGA的一個優(yōu)勢就是通用處理器部分可以使FPGA使用者從復雜的驅(qū)動程序里面解脫出來。另一個優(yōu)勢是異構(gòu)FPGA通過結(jié)合傳統(tǒng)與非傳統(tǒng)的處理器,有潛力達到更好的能效,這已經(jīng)從理論[7]和實踐上[8]進行了研究。另一方面,HLS (High-Level-Synthesis)[6]技術(shù)到今天已經(jīng)足夠成熟,能夠支持C/C++對FPGA的設(shè)計更抽象。例如,Xilinx的Vivado HLS[9]支持程序員使用高級語言C/C++基于Xilinx FPGA設(shè)計系統(tǒng)。Zynq SoC加上HLS是當前一個明顯的發(fā)展選擇。然而,盡管異構(gòu)SoC加上HLS提高了系統(tǒng)設(shè)計的抽象度,并且將用戶從FPGA驅(qū)動問題中解放出來,但它還是更適合系統(tǒng)程序員。這是因為程序員必須掌握算法、架構(gòu)、接口、物理地址分配、軟件驅(qū)動的實現(xiàn)和應用軟件的實現(xiàn)等相關(guān)知識。這種設(shè)計流程的缺點是系統(tǒng)程序員一般有更多硬件架構(gòu)和軟件知識,但是對算法和應用了解較少,反之亦然。

      HLS對于FPGA的設(shè)計,可被視為通用計算機系統(tǒng)的編譯器。顯然,盡管使用了高級語言,HLS用戶還是需要直面FPGA。因此,類似于通用處理器的操作系統(tǒng),FPGA中也需要一個虛擬層通過屏蔽硬件細節(jié)進一步提高用戶的開發(fā)效率。從這個角度看一些工作已經(jīng)展開了。LEAP[11]是一個FPGA操作系統(tǒng),解決高延遲、抽象交互、多片F(xiàn)PGA的內(nèi)存模型和混合算法。RAMP[1]項目為處理器加速。CoRAM[12]項目側(cè)重在應用程序到多級內(nèi)存的接口和可重構(gòu)邏輯的內(nèi)存模型。更多的相關(guān)工作在參考文獻[10]、[13]、[14]中可見。

      本文提出了一個方便應用程序員使用FPGA異構(gòu)平臺的框架,這個框架專為嵌入式系統(tǒng)下計算機視覺應用做了優(yōu)化。它使用Xilinx Vivado,因此可以立即使用,而不是重新實現(xiàn)一套開發(fā)工具。用本文框架開發(fā)應用,在CPU和FPGA上都使用C/C++。程序的主入口在CPU端,FPGA在執(zhí)行期間重新配置和調(diào)用。它讓用戶不用處理硬件和結(jié)構(gòu)細節(jié),讓他們更關(guān)注算法和應用程序。通過實現(xiàn)一個常用的計算機視覺特征檢測算法——SURF (Speeded-Up Robust Features)[15],從一個應用程序員的角度驗證了該框架,顯示了這個框架適用于應用程序員使用FPGA異構(gòu)平臺。

      1 框架結(jié)構(gòu)

      如圖1所示,在FPGA端和CPU端,框架支持應用程序員使用C/C++。在FPGA端,算法或者模塊使用C/C++設(shè)計,接著由硬件并行加速,同時設(shè)計一個接口,其包含AMBA和AXI,然后用HLS工具翻譯,綜合生成IP核。這些包含AXI的IP核可以掛載到合適的位置,來構(gòu)造整個FPGA部分。用戶的IP核是應用程序員面向應用開發(fā)的,其他模塊(如FPGA驅(qū)動I/O和內(nèi)存)都是本文框架提供的一部分。因此,應用程序員可以集中關(guān)注如何更好地實現(xiàn)指定應用的算法和模塊。由于在Vivado HLS中提供了C/C++語言支持和優(yōu)化方案,所以算法或者模塊可以由軟件程序員實現(xiàn)。通過提前分配固定地址,用戶可以避免在不同的應用中每次都要手動掛載IP核,這進一步使得C/C++程序員不需要太多的架構(gòu)知識就能夠為FPGA開發(fā)算法。在CPU端,算法或者模塊也是使用C/C++開發(fā),然后在CPU上執(zhí)行。它們編譯和鏈接生成可執(zhí)行文件,在CPU上執(zhí)行的模塊可以通過帶AXI協(xié)議的接口與FPGA部分進行通信。

      圖1 框架體系結(jié)構(gòu)

      1.1 FPGA端系統(tǒng)設(shè)計

      FPGA端架構(gòu)略——編者注,在當前版本的框架中, AXI用作IP核、I/O、FPGA內(nèi)存和處理器之間的互連協(xié)議,AXI4、AXI stream和AXI-lite在FPGA內(nèi)實現(xiàn)。通過實現(xiàn)這個架構(gòu)和提前分配用戶IP核地址,使IP核、FPGA部分的I/O和內(nèi)存對處理器是可見的,并且可以像資源一樣管理。分配的IP核地址空間可以映射到虛擬地址,由CPU上的操作系統(tǒng)進行管理,使得CPU用戶不用開發(fā)設(shè)備驅(qū)動來實現(xiàn)與IP核的通信,因此,應用程序員可以更好地在CPU端開發(fā)算法。為了實現(xiàn)擴展性,框架設(shè)計成可以包含多個IP核和I/O接口。

      1.2 CPU端系統(tǒng)設(shè)計

      為了方便CPU應用程序員調(diào)用FPGA上實現(xiàn)的功能,本文的框架提供了一系列的API,方便他們使用FPGA模塊而不需要實現(xiàn)一些特定的驅(qū)動程序,包括用特定的功能模塊配置FPGA、設(shè)置FPGA模塊參數(shù)與FPGA通信等。

      Config(lib_name,bin_file,algorithm_info);用指定的比特流配置FPGA和保存算法信息中FPGA資源相關(guān)的信息,以方便后續(xù)CPU的管理

      Algorithm_set(point IPcore,parameter_name,parameter_value);在運行之前為FPGA模塊配置算法參數(shù)

      FPGA_mem_request(point point_name,data_size); FPGA_mem_release(point point name);請求和釋放一塊FPGA內(nèi)存

      ARM_tx(point ARM_source,point FPGA_destination,intncols,intnrows);ARM_rx(point ARM_destination,point FPGA_source,intncols,intnrows);實現(xiàn)CPU和FPGA之間的內(nèi)存拷貝

      Start(point IPcore);參數(shù)配置好之后,啟動FPGA模塊

      reset(point IPcore);重置FPGA模塊

      2 基于框架的設(shè)計流程

      圖2是一個C/C++程序員實現(xiàn)FPGA異構(gòu)系統(tǒng)的設(shè)計流程圖。使用了本文的框架后,只有虛線以上的部分是需要應用者完成的,具體的將在后面介紹。

      2.1 FPGA端用C/C++設(shè)計算法/模塊

      為了方便用戶設(shè)計帶有AXI的算法或者模塊,在本文的框架中提供了一個模板。用戶可以在該模板中嵌入他們的設(shè)計,然后使用#pragma構(gòu)造帶AXI的接口。算法優(yōu)化需要利用更多的并行性,Vivado HLS提供了一些優(yōu)化方案,如果用戶有一些系統(tǒng)架構(gòu)方面的知識,也可以手動進行優(yōu)化。需要說明的是,Vivado HLS中仿真階段的調(diào)試是不在這里討論的。

      圖2 實現(xiàn)FPGA異構(gòu)系統(tǒng)設(shè)計流程圖

      2.2 算法設(shè)計后生成IP核

      用C/C++實現(xiàn)的算法/模塊可以由Vivado生成一個IP核,它在后面可以作為一個組件,然后,這個IP核可以通過AXI掛載在一個合適的位置。因為分配的固定地址列表和總線互連的體系結(jié)構(gòu)是提前實現(xiàn)的,用戶可以在無需了解太多架構(gòu)知識前提下,將他們的IP核掛載在指定的位置。

      2.3 CPU端用C/C++設(shè)計算法/模塊

      算法或者模塊適合在CPU上執(zhí)行,主程序可以使用C/C++在傳統(tǒng)的軟件開發(fā)環(huán)境中實現(xiàn)。正如第1.2節(jié)介紹的那樣,框架提供的API可以讓用戶配置FPGA、設(shè)置參數(shù)和使用FPGA模塊,因此通過使用這些API,程序員能夠操作FPGA模塊和解析數(shù)據(jù)。用戶設(shè)計一個新的FPGA模塊就需要設(shè)計一個API,以方便上層用戶以純軟件的方式調(diào)用FPGA功能。

      2.4 為CPU生成可執(zhí)行文件

      第二部分的項目由Linux GCC編譯和鏈接生成可執(zhí)行文件,它在執(zhí)行時可以重新配置FPGA和調(diào)用FPGA模塊。

      本文框架的用戶可以分為3類:①同時在FPGA和CPU上實現(xiàn)算法;②只在FPGA上實現(xiàn)算法;③只在CPU上實現(xiàn)算法。對于第一種用戶,需要用到上面描述的整個設(shè)計流程;對于第二種用戶,除了實現(xiàn)IP核,還需要為上層用戶提供軟件API,它具有特定的功能,可以根據(jù)需要配置和操作相應的IP核;對于第三種用戶,如同常規(guī)的軟件程序員,他們在CPU上使用由第二種用戶提供的API,甚至不知道已經(jīng)用到FPGA模塊。當更多的IP核被不同的程序員實現(xiàn)時,大量的應用就能夠通過傳統(tǒng)的軟件開發(fā)程序員在CPU上開發(fā)。

      正如圖2所示,用本文的框架開發(fā)FPGA異構(gòu)平臺系統(tǒng),可以省略兩個步驟:構(gòu)造FPGA系統(tǒng)和開發(fā)設(shè)備驅(qū)動。這兩步都是系統(tǒng)層面上的,需要用戶擁有更多的計算機體系結(jié)構(gòu)和操作系統(tǒng)的知識。此外,FPGA的重構(gòu)是本文框架提供的一個內(nèi)置函數(shù),對于一個應用程序員來說,它的實現(xiàn)是極難的。

      3 框架評估

      為了驗證本文框架對于C/C++應用程序員的可用性,在本節(jié)中,將展示使用本文框架的SURF特征提取的實現(xiàn)結(jié)果。

      實驗平臺是一塊用于視覺計算的開發(fā)板,其他使用SoC的異構(gòu)平臺也可以使用本文的框架。如圖3所示,開發(fā)板包含Xilinx Spartan-6 XC6S LX150T FPGA和三星Cortex-A8 S5PV210 1 GHz的處理器。FPGA和ARM通過16位的數(shù)據(jù)總線和16位的地址總線連接,地址總線通過片選信號可以切換到兩個不同的地址空間。4個GPIO用作控制信號,4位SPI和7位GPIO用于處理器配置FPGA,有4個16位的DDR3與FPGA連接,為視覺算法計算提供了高帶寬內(nèi)存訪問,CMOS和Camera Link兩個接口提供視頻輸入。

      圖3 用于視覺計算的ARM--FPGA異構(gòu)開發(fā)板

      3.1 SURF算法簡介

      SURF[15]是一個常用的算法,用于局部特征檢測和描述,它對圖像縮放、旋轉(zhuǎn)和光照等變化不敏感。SURF主要分為3個步驟:初始化、特征提取和特征描述。

      初始化:這一步主要是做一些準備工作,例如加載圖片,得到圖像像素點的大小和積分圖。

      特征提取:這一步檢測圖像或者視頻幀里面的特征點。通過對圖片進行多尺度的縮放,構(gòu)建一個基于尺度空間的Hessian金字塔,然后對它進行分析。因此,特征點是從不同尺度上得到的,保證了算法對尺度變化的魯棒性。尺度空間分析后,用非最大抑制在一個3×3×3的模板里求出最穩(wěn)定點,也就是說,如果某點的值大于模板內(nèi)其他26個點的值,它就被認為是特征點。

      特征描述:在這一步,每一個特征點都求得一個特征向量用于描述這個點。首先計算特征方向以保證算法旋轉(zhuǎn)不變,然后根據(jù)特征方向來計算特征向量,接著每一個特征點都由一個64維的特征向量表示,最后對它進行歸一化來保證光照不變性。

      3.2 在框架上實現(xiàn)SURF特征檢測算法

      因為初始化和檢測階段具有明顯的并行性[16],它們更容易被軟件程序員優(yōu)化。因此,在本文,只在FPGA上實現(xiàn)了初始化和特征檢測兩個步驟。根據(jù)第3部分的設(shè)計流程圖,用本文的方法實現(xiàn)SURF的過程如下:

      ①用C/C++設(shè)計SURF檢測代碼。首先在Xilinx Vivado上建立一個HLS工程,然后定義SURF檢測的實體:

      在本文的框架中提供了實體模板,方便程序員使用。其中hls int32為32位的整型,inout_pix為輸入和輸出緩存的首地址,byte_rdoffset為讀的偏移量,而byte_wroffset為寫的偏移量,rows和cols為圖片的行和列。最后,用C/C++編寫的SURF檢測模塊就完成了。

      ②在SURF檢測模塊中添加AXI4。檢測模板包含AXI4的接口,可以利用Vivado HLS提供的定義。

      下面定義了AXI4-Lite的返回寄存器:

      ③優(yōu)化SURF檢測代碼,實現(xiàn)更好的并行度。軟件人員可以利用Vivado HLS提供的方法優(yōu)化他們的C/C++代碼,而更進一步的優(yōu)化則需要手動進行。

      ④SURF檢測模塊生成Pcore,由Vivado中的EDK將SURF代碼生成Pcore。

      ⑤將Pcore掛載在框架的FPGA端。將上述產(chǎn)生的Pcore掛載到本文框架的FPGA上。由于使用的是Spartan-6的FPGA開發(fā)板,所以采用的是Xilinx ISE。本文的框架在FPGA上是一個已經(jīng)設(shè)計好的工程,SURF算法的Pcore只需要選擇作為一個IP模塊,就可以很容易地連接到框架的一個固定接口上。

      ⑥生成配置FPGA的比特流,并且為上層用戶設(shè)計API。當將用戶的Pcore連接到FPGA的框架上后,整個系統(tǒng)可以合成一個比特流文件,用來配置FPGA。然后,按照第3部分來設(shè)計API,供上層用戶使用。

      ⑦最后一步在CPU上設(shè)計模塊,基于API在異構(gòu)平臺之上構(gòu)建整個應用程序。

      3.3 實驗結(jié)果

      首先對SURF在帶有本文框架的FPGA異構(gòu)平臺、ARM嵌入式平臺和PC三個平臺上的執(zhí)行時間進行了比較,然后比較了SURF算法在帶和不帶有本文框架時,在FPGA上的資源消耗情況,最后驗證了圖片的檢測結(jié)果和帶框架的檢測結(jié)果的準確性。除了之前介紹的開發(fā)板信息,在實驗中,SURF檢測算法的工作頻率為62.5 MHz,PC的CPU為3.1 GHz AMD Athlon(tm)II X4 645,DDR3的頻率為1.6 GHz。SURF檢測算法的相關(guān)參數(shù)如表1所列。需要說明的是,在CPU中使用的是浮點型,而在FPGA中使用的是定點型。

      表1 配置參數(shù)

      3.3.1 運算時間

      為了比較不同平臺上SURF算法的執(zhí)行時間,實驗用的是同一組圖片。圖4(a)所示是不同平臺和不同分辨率時的執(zhí)行時間,圖4(b)是放大后FPGA和PC的運算時間。從圖中可以看出,FPGA的運算速度最快,同時隨著圖片容量的增大,加速的效果越明顯,主要是因為并行計算時間的增加是線性的,這也反映了軟件人員使用FPGA的重要性。

      SURF檢測算法在FPGA異構(gòu)平臺上的總運行時間圖略——編者注,包括圖片從ARM到FPGA的傳輸時間、計算時間和最后把結(jié)果從FPGA傳回ARM的時間。從圖中可以看到,把圖片從ARM傳到FPGA是最耗時的。即使認為計算時間包含這3個部分,它的時間也是遠遠低于ARM的,如果在FPGA上直接加攝像頭捕捉圖片就可以減去從ARM到FPGA傳輸圖片的耗時。此外,要避免頻繁地重配FPGA,因為Spartan-6 XC6SLX150T的重配時間需要2 s左右。

      圖4 不同平臺上SURF檢測執(zhí)行時間

      3.3.2 資源消耗

      帶本文框架和不帶本文框架時,SURF檢測算法的資源消耗情況圖略——編者注。從圖中可以看出,框架只占用了非常少的一部分資源,隨著FPGA集成度不斷增大,系統(tǒng)框架所帶來的資源消耗是可以容忍并且愿意使用的,因為框架可以極大方便程序員使用FPGA異構(gòu)平臺。

      3.3.3 檢測結(jié)果

      圖5所示是帶框架的FPGA異構(gòu)平臺的SURF檢測算法的檢測結(jié)果,顯示了帶框架后計算結(jié)果的準確性。雖然使用定點計算會導致計算結(jié)果與準確結(jié)果有一定偏差,但是通過調(diào)整閾值可以提高結(jié)果的準確性。

      結(jié) 語

      傳統(tǒng)的FPGA的開發(fā)方法,對于軟件程序員來說是非常困難的,尤其是當應用程序員對系統(tǒng)結(jié)構(gòu)知識了解不多的時候。但是,應用程序員又最了解市場和用戶的需求,通用處理器領(lǐng)域,多層結(jié)構(gòu)使應用程序員遠離了底層細節(jié),提高了生產(chǎn)力,縮短了研發(fā)到投放市場的時間。隨著集成度越來越高,FPGA可以容忍來自系統(tǒng)虛擬化的資源消耗,同時,FPGA也需要虛擬化技術(shù)來提高資源管理和生產(chǎn)力。本文設(shè)計的框架可以使得C/C++應用程序員更關(guān)注在FPGA和CPU上實現(xiàn)特定的功能。同時,框架集成到了商業(yè)工具鏈(如Xilinx Vivado)中,可以立即使用。一個軟件人員在包含此框架的基于FPGA的異構(gòu)平臺上成功實現(xiàn)了一個常用的特征檢測算法,表明此框架是可用的。下一步,適合軟件人員的調(diào)試方案也將集成到此框架中,此外,其他虛擬化技術(shù)(如虛擬內(nèi)存、多片F(xiàn)PGA的分區(qū)),在LEAP和CoRAM中研究的一些內(nèi)容也會集成到這個框架中。

      圖5 FPGA加速異構(gòu)平臺的SURF檢測結(jié)果

      編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www. mesnet.com.cn。

      [1]J Wawrzynek M,Oskin C,Kozyrakis D,et al.RAMP:A Research Acceleratorfor Multiple Processors[C]//Technical Report,2006.

      [2]U Vishkin.Is Multicore Hardware for General-purpose Parallel Process-ing Broken[J].Communications of ACM,2014, 57(4):35-39.

      [3]C Pascoe,A Lawande,H Lam,et al.Recon gurable Supercomputing with Scalable Systolic Arrays and In Stream Control for Wavefront Genomics Processing[C]//Proceedings of International Conference on Engineering of Recon gurable Systems and Algorithms,2010.

      [4]X Tian,K Benkrid.High-Performance Quasi-Monte Carlo Financial Simulation:FPGA vs.GPP vs.GPU,ACM Trans. Recong.Techn.Syst.3,4,Article 26(November 2010), 22 pages.

      [5]Xilinx.Zynq-7000 SoC[EB/OL].[2016-05].http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm.

      [6]G Martin,G Smith.High-Level Synthesis:Past,Present,and Future[J].IEEE Design and Test of Computers,2009:18-24.

      [7]E S Chung,P A Milder,J C Hoe,et al.Single-Chip Heterogeneous Computing:Does the Future Include Custom Logic, FPGAs and GPGPUs[C]//Proceedings of IEEE/ACM International Symposium on Microarchitecture,2010:225-236.

      [8]E S Chungy,J D Davisy,J Lee.LINQits:Big Data on Little Clients[C]//Proceedings of ACM/IEEE International Symposium on Computer Architecture,ISCA 2013.

      [9]Xilinx.Vivado Design Suite[EB/OL].[2016-05].http:// www.xilinx.com/products/designtools/vivado/.

      [10]Altera.Altera SDK for OpenCL Programming Guide[EB/ OL].[2016-05].http://http://www.altera.com/literature/hb/opencl-sdk/.

      [11]A Parashar,M Adler,K E Fleming,et al.LEAP:A Virtual Platform Architecture for FPGAs[EB/OL].[2016-05].http://asim.csail.mit.edu/redmine/attachments/76/.

      [12]S T Yamazaki,J C Hoe.PyCoRAM:Yet Another Implementation of CoRAM Memory Architecture for Modern FPGA-based Computing[C]//3rd Workshop on the Intersections of Computer Architecture and Recon gurable Logic,2013.

      [13]H K H So,R Brodersen.A Uni?ed Hardware/Software Runtime Environment for FPGA-Based Recon?gurable Computers using BORPH[J].ACM Transactions on Embedded Computing Systems(TECS),2008,7(2).

      [14]R Kirchgessner,A D George,H Lam.Recon gurable Computing Middleware for Application Portability and Productivity[C]//Proceedings of IEEE International Conference on Application-speci c Systems,Architectures and Processors, 2013:211-218.

      [15]H Bay,T Tuytelaars,L V Gool.Surf:Speeded up robust features[C]//Proceedings of European Conference on Computer Vision.

      [16]Z Fang,D Yang,W Zhang,et al.A Comprehensive Analysis and Parallelization of an Image Retrieval Algorithm[C]// Proceedings of IEEE International Symposium on Performance Analysis of Systems and Software,2011.

      沈鎮(zhèn)(碩士研究生),主要研究方向為嵌入式系統(tǒng)、圖像處理;柴志雷(副教授),主要研究方向為嵌入式系統(tǒng)設(shè)計技術(shù)、機器視覺、FPGA操作系統(tǒng)等;柴鎮(zhèn)(碩士研究生),主要研究方向為嵌入式系統(tǒng)、可重構(gòu)計算。

      A Framework for Application Programmers to Design FPGA-based Systems※

      Shen Zhen,Chai Zhilei,Chai Zhen
      (School of Internet of Things,Jiangnan University,Wuxi 214122,China)

      In the paper,the Open HEC(Open Framework for High-Effciency Computing)framework is proposed to provide a design framework for application-level software programmers to use FPGA-based platform.It frees users from hardware and architectural details to let them focus more on algorithms/applications.This framework is integrated with the commercial Xilinx ISE/Vivado to make it to be used immediately.After implementing a widely-used feature detection algorithm on Open HEC from the perspective of software programmers,it shows that this framework is applicable for application programmers with little hardware knowledge.

      FPGA;embedded system;feature detection;application program

      TP368

      :A

      薛士然

      2016-05-24)

      猜你喜歡
      程序員異構(gòu)框架
      為了讓媽媽看懂地圖,一位“野生程序員”做了個小程序
      消費電子(2022年7期)2022-10-31 06:17:10
      試論同課異構(gòu)之“同”與“異”
      框架
      怎樣成為一名優(yōu)秀程序員
      幼兒100(2020年29期)2020-10-21 06:17:58
      廣義框架的不相交性
      程序員之子
      意林(2017年24期)2018-01-02 22:49:14
      WTO框架下
      法大研究生(2017年1期)2017-04-10 08:55:06
      overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
      電信科學(2016年11期)2016-11-23 05:07:56
      加班
      三月三(2016年6期)2016-06-21 10:25:33
      LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
      潮安县| 彭水| 托克托县| 正镶白旗| 永嘉县| 通许县| 库车县| 礼泉县| 弥勒县| 碌曲县| 阿坝| 阆中市| 义乌市| 南投市| 甘孜县| 晴隆县| 集贤县| 会宁县| 松潘县| 蒲城县| 太仓市| 永福县| 西充县| 南溪县| 乌鲁木齐市| 巫溪县| 鹤庆县| 老河口市| 哈尔滨市| 阿尔山市| 巴彦县| 德安县| 海南省| 武功县| 行唐县| 建瓯市| 汝阳县| 鄱阳县| 宝山区| 黄山市| 雷州市|