91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

454398 ? 來源:北郵世紀(jì)學(xué)院 ? 作者:徐知劼 ? 2020-11-05 15:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 初識XILINX

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

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

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

2. 參加FPGA大賽

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

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

我比賽中的作品

3. 假期DNNDK SSD

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

4. 參加XDF

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

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

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

5. SLAM實時建模

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

6. PETALINUX鏡像

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

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

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

原理框圖如下:

圖像處理流程:

1.讀取圖像

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

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

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

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

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

7.將圖像進行輸出

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

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

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

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

VIVADO項目設(shè)計流程:

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

2. 打開VIVADO并新建工程

3. 選擇板卡并完成建立

4. Create Block Design

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

6. Create HDL Wrapper

7. 綜合并生存比特流

8. 輸出硬件描述文件

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

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

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

VITIS流程:

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

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

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

4. 保存并重新BULID

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

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

7. 保存并重建項目

8. 通過硬件仿真

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


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

    關(guān)注

    1660

    文章

    22416

    瀏覽量

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

    關(guān)注

    33

    文章

    1798

    瀏覽量

    133456
  • 激光雷達
    +關(guān)注

    關(guān)注

    980

    文章

    4473

    瀏覽量

    196583
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Vivado中IP被鎖定的解決辦法

    當(dāng)使用不同版本的Vivado打開工程時,IP被鎖定的情況較為常見。不同版本的Vivado對IP的支持程度和處理方式有所不同。
    的頭像 發(fā)表于 02-25 14:00 ?213次閱讀
    Vivado中<b class='flag-5'>IP</b><b class='flag-5'>核</b>被鎖定的解決辦法

    HLS設(shè)計中的BRAM使用優(yōu)勢

    HLS設(shè)計的IP可以直接使用BRAM,但Block Memory Generator和AXI BRAM Controller仍然在FPGA設(shè)計中發(fā)揮著重要作用。
    的頭像 發(fā)表于 01-28 14:36 ?262次閱讀

    通過vivado HLS設(shè)計一個FIR低通濾波器

    Vivado HLS是一款強大的高層次綜合工具,可將C/C++代碼轉(zhuǎn)換為硬件描述語言(HDL),顯著提升FPGA開發(fā)效率。
    的頭像 發(fā)表于 01-20 16:19 ?329次閱讀
    通過vivado <b class='flag-5'>HLS</b>設(shè)計一個FIR低通濾波器

    蜂鳥處理器+OV5640攝像頭模塊開發(fā)

    本隊伍編號CICC3042,本文重點介紹蜂鳥處理器和OV5640模塊的結(jié)合方式、OV5640的窗口調(diào)節(jié),以及圖像的resize方法,試圖以一種簡單快速的方式得到令人滿意的OV5640的輸出圖像,為
    發(fā)表于 10-31 07:59

    VDMA IP簡介

    VDMA端口信號 S_AXI_LITE:PS端可以通過AXI_LITE協(xié)議對IP進行控制; S_AXIS_S2MM:視頻流(AXI STREAM)輸入到IP的FIFO中
    發(fā)表于 10-28 06:14

    蜂鳥E203移植到FPGA開發(fā)板前的IP例化工作

    和3.2768KHz低頻時鐘,在FPGA板上只有外部晶振提供時鐘,因此需要例化clocking wizard IP提供時鐘,并且例化reset IP。 點擊
    發(fā)表于 10-27 07:35

    Vivado浮點數(shù)IP的握手信號

    Vivado浮點數(shù)IP的握手信號 我們的設(shè)計方案中,F(xiàn)PU計算單元將收到的三條數(shù)據(jù)和使能信號同步發(fā)給20多個模塊,同時只有一個模塊被時鐘使能,進行計算,但結(jié)果都會保留,發(fā)給數(shù)選。計算單元還需接受
    發(fā)表于 10-24 07:01

    FPGA 加持,友思特圖像采集卡高速預(yù)處理助力視覺系統(tǒng)運行提速增效

    圖像預(yù)處理圖像處理關(guān)鍵環(huán)節(jié),可優(yōu)化數(shù)據(jù)傳輸、減輕主機負擔(dān),其算法可在FPGA等硬件上執(zhí)行。友思特FPG
    的頭像 發(fā)表于 08-13 17:41 ?1132次閱讀
    <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>圖像</b>采集卡高速預(yù)<b class='flag-5'>處理</b>助力視覺系統(tǒng)運行提速增效

    FPGA利用DMA IP核實現(xiàn)ADC數(shù)據(jù)采集

    本文介紹如何利用FPGA和DMA技術(shù)處理來自AD9280和AD9708 ADC的數(shù)據(jù)。首先,探討了這兩種ADC的特點及其與FPGA的接口兼容性。接著,詳細說明了使用Xilinx VIVADO環(huán)境下
    的頭像 發(fā)表于 07-29 14:12 ?5114次閱讀

    如何在Unified IDE中創(chuàng)建視覺庫HLS組件

    最近我們分享了開發(fā)者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 傳統(tǒng) IDE)和開發(fā)者分享|AMD Vitis HLS 系列 2:AMD
    的頭像 發(fā)表于 07-02 10:55 ?1463次閱讀
    如何在Unified IDE中創(chuàng)建視覺庫<b class='flag-5'>HLS</b>組件

    使用AMD Vitis Unified IDE創(chuàng)建HLS組件

    這篇文章在開發(fā)者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 傳統(tǒng) IDE) 的基礎(chǔ)上撰寫,但使用的是 AMD Vitis Unified IDE,而不是之前傳統(tǒng)版本的 Vitis HLS
    的頭像 發(fā)表于 06-20 10:06 ?2360次閱讀
    使用AMD Vitis Unified IDE創(chuàng)建<b class='flag-5'>HLS</b>組件

    如何使用AMD Vitis HLS創(chuàng)建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來創(chuàng)建一個 HLS IP,通過 AXI4 接口從存儲器讀取數(shù)據(jù)、執(zhí)行簡單的數(shù)學(xué)運算,然后將數(shù)據(jù)寫回存儲器。接著會在 AMD Vivado Design Suite 設(shè)計中使用此
    的頭像 發(fā)表于 06-13 09:50 ?1910次閱讀
    如何使用AMD Vitis <b class='flag-5'>HLS</b>創(chuàng)建<b class='flag-5'>HLS</b> <b class='flag-5'>IP</b>

    FPGA調(diào)試方式之VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一種用于調(diào)試和測試FPGA設(shè)計的IP,它允許設(shè)計者通過JTAG接口實時讀取和寫入FPGA內(nèi)部的寄存器,從而檢查設(shè)
    的頭像 發(fā)表于 06-09 09:32 ?4026次閱讀
    <b class='flag-5'>FPGA</b>調(diào)試方式之VIO/ILA的使用

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一個 LogiCORE IP ,用于在 FPGA 中實現(xiàn)高效的移位寄存器(Shift Register)。該
    的頭像 發(fā)表于 05-14 09:36 ?1092次閱讀

    一文詳解Video In to AXI4-Stream IP

    Video In to AXI4-Stream IP用于將視頻源(帶有同步信號的時鐘并行視頻數(shù)據(jù),即同步sync或消隱blank信號或者而后者皆有)轉(zhuǎn)換成AXI4-Stream接口形式,實現(xiàn)了接口轉(zhuǎn)換。該IP還可使用VTC
    的頭像 發(fā)表于 04-03 09:28 ?2788次閱讀
    一文詳解Video In to AXI4-Stream <b class='flag-5'>IP</b><b class='flag-5'>核</b>