<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺(jué)應用開(kāi)發(fā)

用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺(jué)應用開(kāi)發(fā)

作者:Fernando Martinez Vallina 時(shí)間:2014-03-06 來(lái)源:電子產(chǎn)品世界 收藏

HLS加速OPENCV函數

本文引用地址:http://dyxdggzs.com/article/234277.htm

  一旦完成了嵌入式視覺(jué)系統架構的分區,找到了計算強度最大的部分,HLS工具就能幫助您加速這些函數,同時(shí)仍能繼續使用C++編寫(xiě)。 HLSC、C++SystemC代碼生成高效的RTL實(shí)現方案。

  此外,以IP為中心的設計環(huán)境提供豐富的處理IP SmartCORE,能簡(jiǎn)化到圖像傳感器、網(wǎng)絡(luò )及其它必要I/O接口的連接,簡(jiǎn)化庫中這些函數的實(shí)現。這相對于其它實(shí)現方案而言是一種明顯的優(yōu)勢,因為其它方案哪怕是最基本的 I/O功能都需要加速。

為什么需要高層次綜合?

  推出的 HLS是一款軟件編譯器,旨在將C、C++SystemC編寫(xiě)的算法轉變?yōu)獒槍τ脩?hù)定義時(shí)鐘頻率和產(chǎn)品系列器件優(yōu)化的RTL。在C/C++程序解釋、分析和優(yōu)化方面,它與x86處理器的編譯器具有相同的核心技術(shù)基礎。這種相似性有助于從臺式機開(kāi)發(fā)環(huán)境快速移植到FPGA實(shí)現。您選擇目標時(shí)鐘頻率和器件后,無(wú)需用戶(hù)輸入,Vivado HLS會(huì )默認生成RTL實(shí)現。此外,Vivado HLS與其它任何編譯器一樣,也分不同的優(yōu)化級別。由于算法最終執行目標是定制的微型架構,因此Vivado HLS可實(shí)現的優(yōu)化級別比傳統的編譯器具有更精細的粒度。傳統的針對處理器的軟件設計O1 – O3優(yōu)化理念被架構探索要求所取代,這些要求與用戶(hù)技術(shù)相結合,指導Vivado HLS創(chuàng )建盡可能出色的實(shí)現方案,滿(mǎn)足特定算法的功耗、面積占用和性能要求。

  圖4 Zynq上采用ARM處理器的運動(dòng)檢測

  圖2給出了HLS編譯器的用戶(hù)設計流程。從理念上講,用戶(hù)提供C/C++/SystemC算法描述,編譯器就能生成RTL實(shí)現。程序代碼轉化為RTL的過(guò)程分為四大階段:算法規范、微型架構探索、RTL實(shí)現和IP封裝。

  算法規范階段是指將針對FPGA架構的軟件應用開(kāi)發(fā)。該規范可在標準桌面軟件開(kāi)發(fā)環(huán)境中,全面利用提供的等軟件庫進(jìn)行開(kāi)發(fā)。除了支持以軟件為中心的開(kāi)發(fā)流程外,Vivado HLS還提升了從RTLC/C++的提取驗證速度。用戶(hù)能用原軟件進(jìn)行全面的算法功能驗證。通過(guò)Vivado HLS生成RTL后,生成的設計代碼類(lèi)似于傳統軟件編譯器生成的處理器匯編代碼。用戶(hù)可在匯編代碼級進(jìn)行調試,但這一步并不是必需的。

  雖然Vivado HLS能處理幾乎所有針對其它軟件編譯器的C/C++代碼,但代碼有一個(gè)限制。在用Vivado HLS編譯代碼到FPGA過(guò)程中,用戶(hù)代碼不能包含任何運行時(shí)動(dòng)態(tài)存儲器分配。與算法綁定于單個(gè)存儲器架構的處理器不同,FPGA實(shí)現采用特定算法的存儲器架構。通過(guò)分析陣列和變量的使用模式,Vivado HLS能確定哪些物理存儲器布局和存儲器類(lèi)型最適合算法的存儲和帶寬要求。這種分析工作的唯一要求就是在C/C++代碼中明確描述算法使用的所有存儲器陣列。

  從C/C++轉為優(yōu)化的FPGA實(shí)現的第二步就是微型架構探索。在這一階段,您可運用Vivado HLS編譯器優(yōu)化來(lái)測試不同的設計,以找到適當的面積和性能組合。您可在不同性能點(diǎn)實(shí)現相同的C/C++代碼,無(wú)需修改源代碼。Vivado HLS編譯器優(yōu)化或要求規定了算法不同部分的性能如何描述。

c++相關(guān)文章:c++教程




關(guān)鍵詞: 賽靈思 Vivado OpenCV Smarter SoC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>