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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的HLS圖像處理IP核設計

454398 ? 來源:北郵世紀學院 ? 作者:徐知劼 ? 2020-11-05 15:56 ? 次閱讀

1. 初識XILINX

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

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

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

2. 參加FPGA大賽

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

解決重重問題后,我完成了我們比賽的所有準備,來到南京答辯。因為板卡屬于自選題目組,所以在比賽的房間內都是來自一些名校的研究生組合,無形中給了我很大壓力。在評委組驗收的時候,暴露出識別幀數(shù)低下的問題,評委也給出一些解決的建議。不負眾望,最終我取得了不錯的二等獎,對我來說也是非常的不容易。其實,得到評委的肯定的評價比得知獲獎更為開心。

我比賽中的作品

3. 假期DNNDK SSD

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

4. 參加XDF

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

在XDF的現(xiàn)場實驗室,我們通過做官方VITIS例程,體會到了XILINX新一代集成工具VITIS的強大整合能力。因為大賽的原因,我對小車的相關技術非常感興趣。在AVANT的展臺上,

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

5. SLAM實時建模

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

6. PETALINUX鏡像

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

7. HLS 圖像處理IP核設計

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

原理框圖如下:

圖像處理流程:

1.讀取圖像

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

3.將AXI格式的圖像轉換為OPENCV可以處理的Mat格式

4.通過HLS_OPENCV處理庫對圖像進行處理

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

6.將圖像的AXI轉換為圖像格式

7.將圖像進行輸出

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

展示一個簡單的圖像處理結果:

8. VIVADO VITIS ULTRASCALE+MPSOC IP FPGA設計

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

VIVADO項目設計流程:

1. 加入對應板卡信息

2. 打開VIVADO并新建工程

3. 選擇板卡并完成建立

4. Create Block Design

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

6. Create HDL Wrapper

7. 綜合并生存比特流

8. 輸出硬件描述文件

如下圖是Ultra96的板卡設計圖

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

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

VITIS流程:

1. 創(chuàng)建平臺項目

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

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

4. 保存并重新BULID

5. 創(chuàng)建一個應用項目

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

7. 保存并重建項目

8. 通過硬件仿真

下面分別為設備平臺和仿真結果:


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

    關注

    1624

    文章

    21538

    瀏覽量

    600474
  • 賽靈思
    +關注

    關注

    32

    文章

    1794

    瀏覽量

    131079
  • 激光雷達
    +關注

    關注

    967

    文章

    3886

    瀏覽量

    189196
收藏 人收藏

    評論

    相關推薦

    FPGA圖像處理領域的優(yōu)勢有哪些?

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

    淺談國產異構雙RISC-V+FPGA處理器AG32VF407的優(yōu)勢和應用場景

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

    優(yōu)化 FPGA HLS 設計

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

    FPGA設計經(jīng)驗之圖像處理

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

    FPGAIP使用技巧

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

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

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

    關于FPGA IP

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

    FPGA圖像處理之CLAHE算法

    FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來做圖像增強。
    的頭像 發(fā)表于 01-04 12:23 ?2224次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>之CLAHE算法

    AD9683的引腳如何與zynq 7015芯片中的JESD204 ip端口對應相連?

    目前,我在設計中想使用ZYNQ 7015系列的FPGA,利用JESD204 IP接收A/D轉換器AD9683轉換完成后的數(shù)據(jù)。但是JESD204 IP
    發(fā)表于 12-15 07:14

    FPGA優(yōu)質開源模塊-SRIO IP的使用

    本文介紹一個FPGA常用模塊:SRIO(Serial RapidIO)。SRIO協(xié)議是一種高速串行通信協(xié)議,在我參與的項目中主要是用于FPGA和DSP之間的高速通信。有關SRIO協(xié)議的詳細介紹網(wǎng)上有很多,本文主要簡單介紹一下SRIO I
    的頭像 發(fā)表于 12-12 09:19 ?1919次閱讀
    <b class='flag-5'>FPGA</b>優(yōu)質開源模塊-SRIO <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用

    FPGA實現(xiàn)基于Vivado的BRAM IP的使用

    Xilinx公司的FPGA中有著很多的有用且對整個工程很有益處的IP,比如數(shù)學類的IP,數(shù)字信號處理
    的頭像 發(fā)表于 12-05 15:05 ?1380次閱讀

    FPGA圖像處理方法

    圖像細節(jié)。 FPGA 圖像處理方法 1、圖像增強 兩大方法:空間域方法和時間域方法(以后再詳述) 2、
    的頭像 發(fā)表于 12-02 13:15 ?962次閱讀

    FPGAIP學習的正確打開方式

    本帖最后由 jf_25420317 于 2023-11-17 11:10 編輯 FPGA開發(fā)過程中,利用各種IP,可以快速完成功能開發(fā),不需要花費大量時間重復造輪子。 當我們面對使用新
    發(fā)表于 11-17 11:09

    使用Vivado高層次綜合(HLS)進行FPGA設計的簡介

    電子發(fā)燒友網(wǎng)站提供《使用Vivado高層次綜合(HLS)進行FPGA設計的簡介.pdf》資料免費下載
    發(fā)表于 11-16 09:33 ?0次下載
    使用Vivado高層次綜合(<b class='flag-5'>HLS</b>)進行<b class='flag-5'>FPGA</b>設計的簡介

    HDLC協(xié)議IP的設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《HDLC協(xié)議IP的設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 11-08 15:45 ?2次下載
    HDLC協(xié)議<b class='flag-5'>IP</b><b class='flag-5'>核</b>的設計與實現(xiàn)