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

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

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

如何實(shí)現(xiàn)用Python開發(fā)FPGA?

YCqV_FPGA_EETre ? 來源:未知 ? 作者:胡薇 ? 2018-08-10 14:57 ? 次閱讀

近日,想必各位科技愛好者的朋友圈都被一篇發(fā)表在第25屆IEEE國際討論會上,用Python開發(fā)FPGA的論文刷屏了吧,那么這是如何實(shí)現(xiàn)的呢?今天,就請各位看官和小編一起來了解一下,這個構(gòu)想的實(shí)現(xiàn)基礎(chǔ)——PYNQ。

PYNQ介紹

PYNQ全稱為Python Productivity for Zynq,即在原有Zynq架構(gòu)的基礎(chǔ)上,添加了對python的支持。Zynq是賽靈思公司推出的行業(yè)第一個可擴(kuò)展處理平臺系列,在芯片中集成了ARM處理器和FPGA可編程邏輯器件,旨在為視頻監(jiān)視、汽車駕駛員輔助以及工廠自動化等高端嵌入式應(yīng)用提供所需的處理與計算性能水平。PYNQ希望能夠借助python語言本身易用易學(xué)、擴(kuò)展庫多而全、社區(qū)活躍貢獻(xiàn)度高等特性,有效降低Zynq嵌入式系統(tǒng)的開發(fā)門檻。PYNQ將ARM處理器與FPGA器件的底層交互邏輯完全封裝起來,頂層封裝使用python,只需要import對應(yīng)的模塊名稱即可導(dǎo)入對應(yīng)的硬件模塊即可進(jìn)行底層到上層數(shù)據(jù)的交互或者為系統(tǒng)提供硬件加速。對于PYNQ的開發(fā)者來說,ARM上運(yùn)行著一個Linux系統(tǒng),F(xiàn)PGA被抽象為若干加速IP,開發(fā)者可以通過一行簡單的python腳本即可完成動態(tài)加載bitstream,通過DMA將數(shù)據(jù)流傳輸?shù)郊铀買P融合輸出。PYNQ板卡也提供了非常豐富的接口資源,如HDMI、AUDIO、Grove模塊、常用接口如SPI/I2C等等以及很多通用IO。

圖為Python調(diào)用底層硬件框架

下面給一個在PYNQ中插入HDMI輸入和輸出的例子from pynq importOverlayfrompynq.lib.video import *

base =Overlay('base.bit')hdmi_in =base.video.hdmi_inhdmi_out = base.video.hdmi_out

簡單高效開發(fā)PYNQ-Jupyter

對于嵌入式系統(tǒng)開發(fā)來說,往往由于性能的局限性,我們只能ssh進(jìn)嵌入式linux,在命令行終端進(jìn)行開發(fā),開發(fā)效率是個很大的問題。在PYNQ上,我們使用了python擴(kuò)展庫Jupyter Notebook,其本質(zhì)上是一個web服務(wù)器,提供了遠(yuǎn)程可視化、分步運(yùn)行python腳本的能力。Jupyter同時可以實(shí)時顯示程序運(yùn)行結(jié)果,我們甚至可以在瀏覽器中直接看到我們使用硬件加速處理圖像的結(jié)果。我們只需要將PYNQ板子接入網(wǎng)關(guān),即可通過瀏覽器訪問在板上運(yùn)行的作為嵌入式web服務(wù)器的Jupyter Notebook。

圖為JupyterNotebook實(shí)時顯示運(yùn)算圖片

PYNQ能做什么

PYNQ的整個技術(shù)棧包含了python+linux+ARM+FPGA,提供了無限種擴(kuò)展的可能性,我們可以使用它來做很多有意思的應(yīng)用。在pynq.io的社區(qū)頁面我們可以看到許多PYNQ社區(qū)開發(fā)的項(xiàng)目。包括BNN(二值神經(jīng)網(wǎng)絡(luò))的案例。

圖為PYNQ社區(qū)應(yīng)用案例

同時,官方提供了非常多的外部接口案例。同時還包括了OpenCV的案例。

Logictools功能則實(shí)現(xiàn)了使用python編寫FPGA狀態(tài)機(jī)的功能,使用Logictools可以用python編寫FPGA I/O端口輸出任意波形了。

圖為PYNQ Logictools

查閱PYNQ文檔

關(guān)于PYNQ的所有資料都可以在網(wǎng)站pynq.io中找到,點(diǎn)擊getting started就進(jìn)入了PYNQ的文檔頁面。文檔中包含了如何設(shè)置PYNQ等入門資料、如何創(chuàng)建PYNQ的FPGA硬件工程、PYNQ libraries的詳細(xì)介紹以及最關(guān)鍵的python-PYNQ的函數(shù)文檔,也可以使用搜索功能直接查找關(guān)鍵詞。

圖為pynq.io Getting Started

至此,PYNQ就為大家介紹到這里了。希望Python可以為大家拓展出新的思路。

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

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375

原文標(biāo)題:用Python玩FPGA背后的故事

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AD7747怎么實(shí)現(xiàn)用LabVIEW實(shí)現(xiàn)數(shù)據(jù)采集與處理?求助啊

    AD7747怎么實(shí)現(xiàn)用LabVIEW實(shí)現(xiàn)數(shù)據(jù)采集與處理?求助啊,我買了一款A(yù)D747的開發(fā)板,但是開發(fā)板自帶軟件界面不太好看,想用LabVIEW取代自帶軟件,
    發(fā)表于 01-04 08:58

    MicroPython:STM32上的Python開發(fā)

    初學(xué)者。Python本身自帶的各種模塊加上豐富的第三方模塊,免去了很多“重復(fù)造輪子”的工作,節(jié)省了不少開發(fā)時間。Python的配置環(huán)境也不復(fù)雜,mac和linux都內(nèi)置了python。
    發(fā)表于 12-30 16:00

    夏老師推薦:驚人!Python+FPGA 實(shí)現(xiàn)FPGA開發(fā)大提速???!

    夏老師推薦:驚人!Python+FPGA 實(shí)現(xiàn)FPGA開發(fā)大提速???! 夏宇聞老師昨天在微信上推薦了一個帖子,說的是有人用Digilent的PYNQ-Z1板卡
    發(fā)表于 06-14 09:43

    夏老師推薦:驚人!Python+FPGA 實(shí)現(xiàn)FPGA開發(fā)大提速??。?/a>

    夏老師推薦:驚人!Python+FPGA 實(shí)現(xiàn)FPGA開發(fā)大提速??。?/div>
    發(fā)表于 06-14 19:27

    夏老師推薦:驚人!Python FPGA 實(shí)現(xiàn)FPGA開發(fā)大提速?!!

    夏老師推薦:驚人!Python FPGA 實(shí)現(xiàn)FPGA開發(fā)大提速??。?/div>
    發(fā)表于 01-24 11:03

    評估通過Python快速開發(fā)異構(gòu)處理器FPGA應(yīng)用性能(PYNQ評測)

    本帖最后由 lee_st 于 2018-6-21 02:18 編輯 評估通過Python快速開發(fā)異構(gòu)處理器FPGA應(yīng)用性能(PYNQ評測)
    發(fā)表于 06-19 08:36

    請問如何實(shí)現(xiàn)用串口實(shí)現(xiàn)藍(lán)牙接收

    請教各位大神如何實(shí)現(xiàn)用串口實(shí)現(xiàn)藍(lán)牙接收啊,不會編程啊
    發(fā)表于 02-18 00:09

    如何實(shí)現(xiàn)用C語言播放音樂

    實(shí)現(xiàn)用C語言播放音樂的方法
    發(fā)表于 12-28 06:18

    Xilinx與IBM通過SuperVesselOpenPOWER開發(fā)云平臺實(shí)現(xiàn)FPGA加速

    SuperVessel將包括賽靈思SDAccel開發(fā)環(huán)境,支持用C、C++和OpenCL實(shí)現(xiàn)FPGA加速 All Programmable 技術(shù)和器件的全球領(lǐng)先企業(yè)賽靈思公司與IBM公司今天聯(lián)合宣布
    發(fā)表于 02-08 16:06 ?332次閱讀

    底層FPGA實(shí)現(xiàn)的簡要概述

    每個FPGA芯片(FPGA)是由有限個帶有可編程連接預(yù)定義資源組成。這些互連資源通過LabVIEW FPGA模塊實(shí)現(xiàn)用戶設(shè)計的數(shù)字電路。用戶創(chuàng)建FP
    發(fā)表于 11-18 05:57 ?876次閱讀
    底層<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>的簡要概述

    python適合做什么開發(fā)_python未來發(fā)展怎么樣

    本文開始介紹了pythonPython優(yōu)缺點(diǎn),其次闡述了python可以用來做什么開發(fā),最后分析了Python語言在未來的發(fā)展前景。
    發(fā)表于 04-26 16:32 ?8275次閱讀

    新手要學(xué)習(xí)編程語言,我必推薦Python

    Python軟件實(shí)現(xiàn)FPGA性能潛力的結(jié)合是一個非常有意義的工作,將會開創(chuàng)出一個類似于樹莓派和Arduino的廣大的開發(fā)者社區(qū)。Python+FP
    的頭像 發(fā)表于 08-08 18:30 ?4735次閱讀
    新手要學(xué)習(xí)編程語言,我必推薦<b class='flag-5'>Python</b>

    python開發(fā)環(huán)境搭建步驟

    在正式學(xué)習(xí)Python編程之前,要先安裝Python,這包括“標(biāo)準(zhǔn)Python”、“第三方Python包”、“Python程序
    的頭像 發(fā)表于 05-05 22:23 ?3087次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建步驟

    PYNQ就是通過Python語言直接對FPGA進(jìn)行編程嗎

    PYNQ框架的設(shè)計初衷是通過高層次的封裝,將底層硬件FPGA實(shí)現(xiàn)細(xì)節(jié)與上層應(yīng)用層的使用脫耦,對軟件開發(fā)者來說,PYNQ框架已經(jīng)提供了完整的訪問FPGA資源的library,讓上層應(yīng)用
    的頭像 發(fā)表于 02-08 10:59 ?4623次閱讀

    Python項(xiàng)目開發(fā)實(shí)戰(zhàn)

    Python項(xiàng)目開發(fā)實(shí)戰(zhàn)
    發(fā)表于 06-13 14:51 ?2次下載