0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的HLS圖像處理IP核設(shè)計(jì)

454398 ? 來源:北郵世紀(jì)學(xué)院 ? 作者:徐知?jiǎng)?/span> ? 2020-11-05 15:56 ? 次閱讀

1. 初識(shí)XILINX

初識(shí)XILINX,是PYNQ-Z2。當(dāng)時(shí)剛學(xué)完學(xué)校的數(shù)字電路課程,對(duì)FPGA并不了解,學(xué)校課程也僅僅是用VHDL驗(yàn)證了一些基礎(chǔ)的FPGA實(shí)驗(yàn),例如生成一個(gè)n進(jìn)位序列碼。并不知道FPGA有這么廣闊的應(yīng)用。在一次王偉博士的培訓(xùn)上,我第一次接觸到了PYNQ。在講座中,我運(yùn)行了一個(gè)PYNQ的demo。通過USB攝像頭檢測(cè)邊緣處理。如下圖:

當(dāng)時(shí)給了我很大的震撼,瞬間對(duì)FPGA非常感興趣。王博士指點(diǎn)我,想學(xué)好FPGA,光會(huì)一點(diǎn)VHDL的皮毛并不夠,要對(duì)工業(yè)上最流行的VERILOG非常熟悉才行。雖然我們學(xué)校并沒有開設(shè)關(guān)于VERILOG的課程,但我在圖書館借閱了相關(guān)的書籍首先進(jìn)行自學(xué),并在實(shí)際操作中補(bǔ)充自己。這一步也為之后全國FPGA大賽的個(gè)人能力測(cè)試建立了基礎(chǔ)。隨后,王博士開展面向全系的VERILOG普及培訓(xùn),我非常有幸作為助教參與其中,給低年級(jí)學(xué)弟學(xué)妹開展VERILOG基礎(chǔ)語法的講解。

隨后,XILINX公司推出ULTRA96板卡的試用申請(qǐng)。這對(duì)我來說既是機(jī)遇,也是挑戰(zhàn)。不負(fù)一番努力,我通過了板卡的申請(qǐng)。收到板卡后,困難一直伴隨著我。因?yàn)閷?duì)LINUX系統(tǒng)并不熟悉,第一次讓設(shè)備連接網(wǎng)絡(luò)就花費(fèi)了我很長時(shí)間。當(dāng)時(shí)網(wǎng)上并沒有現(xiàn)在對(duì)它的明確資料,靠著類似的設(shè)備樹莓派的經(jīng)驗(yàn)去一步步試著去配置,最后總結(jié)出多種聯(lián)網(wǎng)方法并和實(shí)驗(yàn)室同學(xué)分享。在此期間,我意識(shí)到要學(xué)好嵌入式技術(shù),必須對(duì)LINUX做到很熟悉。

2. 參加FPGA大賽

完成基礎(chǔ)的培訓(xùn)后,我報(bào)名參加了2019年的FPGA全國大學(xué)生競(jìng)賽。我們的項(xiàng)目是制作一臺(tái)基于STM32平臺(tái)的智能小車,可以通過車載攝像頭設(shè)識(shí)別障礙和到路線。利用ULTRA96強(qiáng)大的計(jì)算性能,運(yùn)行裁剪過的YOLO/SSD模型。實(shí)現(xiàn)識(shí)別的速度和精度的雙向贏。期間,訓(xùn)練模型對(duì)我來說在初期也是一個(gè)很大的挑戰(zhàn),從第一次接觸Tensorflow到訓(xùn)練模型,遇到很多的問題也得到了很多老師同學(xué)的幫助。

解決重重問題后,我完成了我們比賽的所有準(zhǔn)備,來到南京答辯。因?yàn)榘蹇▽儆谧赃x題目組,所以在比賽的房間內(nèi)都是來自一些名校的研究生組合,無形中給了我很大壓力。在評(píng)委組驗(yàn)收的時(shí)候,暴露出識(shí)別幀數(shù)低下的問題,評(píng)委也給出一些解決的建議。不負(fù)眾望,最終我取得了不錯(cuò)的二等獎(jiǎng),對(duì)我來說也是非常的不容易。其實(shí),得到評(píng)委的肯定的評(píng)價(jià)比得知獲獎(jiǎng)更為開心。

我比賽中的作品

3. 假期DNNDK SSD

在假期中,尋找到了當(dāng)時(shí)大賽時(shí)對(duì)障礙物識(shí)別幀數(shù)低的原因,通過對(duì)設(shè)備的調(diào)整,實(shí)現(xiàn)SSD模型15-20幀的識(shí)別速度。如下圖。

4. 參加XDF

因?yàn)閷?duì)XILINX非常感興趣,我自費(fèi)報(bào)名參加了XILINX的2019年XDF全球開發(fā)者大會(huì)。參加本次大會(huì)讓我受到了很多啟發(fā)。我們向XILINX工程師詢問了ULTRA96無法發(fā)揮完全性能可能的原因并進(jìn)行了探討,對(duì)之后解決這個(gè)問題有了非常大的幫助。

在XDF的現(xiàn)場(chǎng)實(shí)驗(yàn)室,我們通過做官方VITIS例程,體會(huì)到了XILINX新一代集成工具VITIS的強(qiáng)大整合能力。因?yàn)榇筚惖脑?,我?duì)小車的相關(guān)技術(shù)非常感興趣。在AVANT的展臺(tái)上,

我發(fā)現(xiàn)了了AVANT的工程師用ULTRA96作為ROS(Robot Operating System)作為載體運(yùn)行激光雷達(dá)的運(yùn)行。

5. SLAM實(shí)時(shí)建模

這給我非常大的啟發(fā),依托ROS強(qiáng)大的外設(shè)庫支持、仿真能力和FPGA強(qiáng)大的運(yùn)算性能,可以實(shí)現(xiàn)更高性能的機(jī)器人底盤系統(tǒng)。下圖是我利用ROS對(duì)REALSENSE多攝像頭傳感器的仿真,實(shí)現(xiàn)SLAM實(shí)時(shí)建模我房間的一角。

6. PETALINUX鏡像

最近,認(rèn)識(shí)到要真正用好ZYNQ,必須掌握PETALINUX去定制所需要的系統(tǒng)。在這個(gè)過程中遇到了很多問題?;蛟S是計(jì)算機(jī)編譯的速度慢、或許是資源需要連接外網(wǎng)導(dǎo)致網(wǎng)速很慢,最終讓整個(gè)編譯過程無限變長。為了解決這些問題,付出了很多時(shí)間作為代價(jià)。連續(xù)2周的連續(xù)從早到晚的編譯,因?yàn)槲业牟僮鞑划?dāng),沒有把計(jì)算機(jī)放在通風(fēng)良好的地方。計(jì)算機(jī)的主板南橋因?yàn)殚L時(shí)間過熱燒毀了,不過一切苦難克服之后都是值得的。通過大量的嘗試,不斷的成功和失敗。讓我越來越清楚PETALLINUX的運(yùn)行規(guī)則。最后,實(shí)現(xiàn)帶有DPU功能的定制鏡像的制作,如下圖:

7. HLS 圖像處理IP核設(shè)計(jì)

VIVADO HLS工具可以將C語言高級(jí)綜合為硬件。

原理框圖如下:

圖像處理流程:

1.讀取圖像

2.將讀取的圖像數(shù)據(jù)格式轉(zhuǎn)換為AXI格式

3.將AXI格式的圖像轉(zhuǎn)換為OPENCV可以處理的Mat格式

4.通過HLS_OPENCV處理庫對(duì)圖像進(jìn)行處理

5.將處理完的圖像數(shù)據(jù)從Mat格式轉(zhuǎn)換為傳輸?shù)腁XI格式

6.將圖像的AXI轉(zhuǎn)換為圖像格式

7.將圖像進(jìn)行輸出

用到的HLS_OPENCV函數(shù)詳細(xì)參考官方指南UG902

展示一個(gè)簡(jiǎn)單的圖像處理結(jié)果:

8. VIVADO VITIS ULTRASCALE+MPSOC IP FPGA設(shè)計(jì)

VIVADO是FPGA設(shè)計(jì)最基礎(chǔ)的一環(huán)。它是一個(gè)功能強(qiáng)大的集成開發(fā)環(huán)境,包含了綜合和實(shí)現(xiàn)的環(huán)境。VIVADO可以實(shí)現(xiàn)自動(dòng)管理運(yùn)行數(shù)據(jù),并可以方法運(yùn)行??梢詫?duì)多種硬件描述語言進(jìn)行綜合。VIVADO的出現(xiàn),提高了我們對(duì)FPGA的設(shè)計(jì)效率,簡(jiǎn)化了設(shè)計(jì)流程。

VIVADO項(xiàng)目設(shè)計(jì)流程:

1. 加入對(duì)應(yīng)板卡信息

2. 打開VIVADO并新建工程

3. 選擇板卡并完成建立

4. Create Block Design

5. 添加PS、Pl核心及組件接口并連線

6. Create HDL Wrapper

7. 綜合并生存比特流

8. 輸出硬件描述文件

如下圖是Ultra96的板卡設(shè)計(jì)圖

VITIS是XILINX公司最新推出的統(tǒng)一軟件平臺(tái),它可以為邊遠(yuǎn)、云和混合計(jì)算應(yīng)用加速提供統(tǒng)一編程模型。利用與高層次框架的結(jié)合和完整的加速庫,可以加快我們的設(shè)計(jì)效率。

下面是利用VITIS實(shí)現(xiàn)的一個(gè)終端FPGA串口輸出的仿真

VITIS流程:

1. 創(chuàng)建平臺(tái)項(xiàng)目

2. 輸入硬件描述文件并完成創(chuàng)建

3. 修改我們要用到的串口

4. 保存并重新BULID

5. 創(chuàng)建一個(gè)應(yīng)用項(xiàng)目

6. 選擇一個(gè)串口輸出模板并修改主函數(shù)

7. 保存并重建項(xiàng)目

8. 通過硬件仿真

下面分別為設(shè)備平臺(tái)和仿真結(jié)果:


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21778

    瀏覽量

    604848
  • 賽靈思
    +關(guān)注

    關(guān)注

    32

    文章

    1794

    瀏覽量

    131405
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    968

    文章

    4003

    瀏覽量

    190176
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用IP和開源庫減少FPGA設(shè)計(jì)周期

    /prologue-the-2022-wilson-research-group-functional-verification-study/),70% 的 FPGA 項(xiàng)目落后于計(jì)劃,12% 的項(xiàng)目落后計(jì)劃 50% 以上。 為此,很多FPGA廠商都在自己EDA工具里嵌入
    的頭像 發(fā)表于 01-15 10:47 ?84次閱讀
    使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>和開源庫減少<b class='flag-5'>FPGA</b>設(shè)計(jì)周期

    使用HLS流程設(shè)計(jì)和驗(yàn)證圖像信號(hào)處理設(shè)備

    STMicroelectronics成像部門負(fù)責(zé)向消費(fèi)者、工業(yè)、安全和汽車市場(chǎng)提供創(chuàng)新的成像技術(shù)和產(chǎn)品。該團(tuán)隊(duì)精心制定了一套通過模板實(shí)現(xiàn)的High-Level Synthesis(HLS)高層次綜合流程,使得上述產(chǎn)品能夠迅速上市。對(duì)于汽車市場(chǎng),該流程符合ISO 26262標(biāo)準(zhǔn),因此能確??煽啃浴?/div>
    的頭像 發(fā)表于 01-08 14:39 ?139次閱讀
    使用<b class='flag-5'>HLS</b>流程設(shè)計(jì)和驗(yàn)證<b class='flag-5'>圖像</b>信號(hào)<b class='flag-5'>處理</b>設(shè)備

    基于FPGA實(shí)現(xiàn)圖像直方圖設(shè)計(jì)

    簡(jiǎn)單,單采用FPGA來實(shí)現(xiàn)直方圖的統(tǒng)計(jì)就稍顯麻煩。若使用Xilinx和Altera的FPGA芯片,可以使用HLS來進(jìn)行圖像的加速處理。但這暫
    的頭像 發(fā)表于 12-24 10:24 ?168次閱讀
    基于<b class='flag-5'>FPGA</b>實(shí)現(xiàn)<b class='flag-5'>圖像</b>直方圖設(shè)計(jì)

    FPGA 實(shí)時(shí)信號(hào)處理應(yīng)用 FPGA圖像處理中的優(yōu)勢(shì)

    現(xiàn)場(chǎng)可編程門陣列(FPGA)是一種高度靈活的硬件平臺(tái),它允許開發(fā)者根據(jù)特定應(yīng)用需求定制硬件邏輯。在實(shí)時(shí)信號(hào)處理圖像處理領(lǐng)域,FPGA因其獨(dú)
    的頭像 發(fā)表于 12-02 10:01 ?777次閱讀

    Vivado中FFT IP的使用教程

    本文介紹了Vidado中FFT IP的使用,具體內(nèi)容為:調(diào)用IP>>配置界面介紹>>IP
    的頭像 發(fā)表于 11-06 09:51 ?1343次閱讀
    Vivado中FFT <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用教程

    芯驛電子 ALINX 推出全新 IP 產(chǎn)品線,覆蓋 TCP/UDP/NVMe AXI IP

    符合 IEEE802.3 標(biāo)準(zhǔn)的完整協(xié)議棧,支持高達(dá) 9000 字節(jié)的 MTU,特別適用于需要 大規(guī)模數(shù)據(jù)傳輸和實(shí)時(shí)視頻處理 的應(yīng)用場(chǎng)景。 10GbE TCP/IP 協(xié)議棧 IP
    的頭像 發(fā)表于 10-30 17:39 ?357次閱讀
     芯驛電子 ALINX 推出全新 <b class='flag-5'>IP</b> <b class='flag-5'>核</b>產(chǎn)品線,覆蓋 TCP/UDP/NVMe AXI <b class='flag-5'>IP</b> <b class='flag-5'>核</b>

    如何申請(qǐng)xilinx IP的license

    在使用FPGA的時(shí)候,有些IP是需要申請(qǐng)后才能使用的,本文介紹如何申請(qǐng)xilinx IP的license。
    的頭像 發(fā)表于 10-25 16:48 ?446次閱讀
    如何申請(qǐng)xilinx <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license

    FPGA圖像處理領(lǐng)域的優(yōu)勢(shì)有哪些?

    FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)在圖像處理領(lǐng)域具有顯著的優(yōu)勢(shì),這些優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面: 一、高并行處理能力
    發(fā)表于 10-09 14:36

    高斯卷積函數(shù)在圖像采樣中的意義

    高斯卷積函數(shù)在圖像采樣中的意義主要體現(xiàn)在以下幾個(gè)方面: 1. 平滑處理與去噪 平滑圖像 :高斯卷積函數(shù)通過其權(quán)重分布特性,即中心像素點(diǎn)權(quán)
    的頭像 發(fā)表于 09-29 09:33 ?477次閱讀

    淺談國產(chǎn)異構(gòu)雙RISC-V+FPGA處理器AG32VF407的優(yōu)勢(shì)和應(yīng)用場(chǎng)景

    關(guān)于國產(chǎn)異構(gòu)雙RISC-V+FPGA處理器AG32VF407的具體優(yōu)勢(shì)和應(yīng)用場(chǎng)景淺談如下: 優(yōu)勢(shì) 異構(gòu)計(jì)算能力 : 異構(gòu)雙設(shè)計(jì)結(jié)合了RISC-V的高效指令集和
    發(fā)表于 08-31 08:32

    優(yōu)化 FPGA HLS 設(shè)計(jì)

    優(yōu)化 FPGA HLS 設(shè)計(jì) 用工具用 C 生成 RTL 的代碼基本不可讀。以下是如何在不更改任何 RTL 的情況下提高設(shè)計(jì)性能。 介紹 高級(jí)設(shè)計(jì)能夠以簡(jiǎn)潔的方式捕獲設(shè)計(jì),從而
    發(fā)表于 08-16 19:56

    FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理

    今天和大俠簡(jiǎn)單聊一聊基于FPGA圖像處理,之前也和各位大俠聊過相關(guān)的圖像處理,這里面也超鏈接了幾篇,具體如下:
    發(fā)表于 06-12 16:26

    FPGAIP使用技巧

    FPGAIP使用技巧主要包括以下幾個(gè)方面: 理解IP的概念和特性 : IP
    發(fā)表于 05-27 16:13

    基于FPGA的實(shí)時(shí)邊緣檢測(cè)系統(tǒng)設(shè)計(jì),Sobel圖像邊緣檢測(cè),FPGA圖像處理

    算法 ,利用乒乓操作和 SDRAM 緩存圖像,可以實(shí)時(shí)提取視頻圖像的邊緣特征。文中對(duì)比了 MATLAB 和 FPGA處理效果,由于 FPGA
    發(fā)表于 05-24 07:45

    關(guān)于FPGA IP

    ,這就是IP。 IP一般原廠做一些資源開放,定制的IP一般就要收費(fèi)了。像做
    發(fā)表于 04-29 21:01