《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 什么?Python+FPGA!?

什么?Python+FPGA!?

2018-08-18
關(guān)鍵詞: Python FPGA RaspberryPi

  早年,雖然Python是一款比較容易上手的腳本語言,而且有強(qiáng)大的社區(qū)支持,一些非計(jì)算機(jī)專業(yè)領(lǐng)域的人都選它作為入門語言。遺憾的是,它不能實(shí)現(xiàn)一些非常底層的操控,所以在硬件領(lǐng)域并不起眼。

  然而今時(shí)不同往日!

  硬件圈同樣非常關(guān)注Python!

  說到Python用于硬件開發(fā)。很多人可能想到的是樹莓派等支持linux系統(tǒng)的(樹莓派和Arduino應(yīng)用Python的的例子實(shí)在是多,比如,利用Raspberry Pi的硬件和Python語言來完成一個(gè)機(jī)器人制作。),然而現(xiàn)在Python已經(jīng)完全可以脫離系統(tǒng),直接進(jìn)行單片機(jī)的開發(fā)了。

  用Python語言控制單片機(jī)

  MicroPython是在單片機(jī)上可以跑的Python,你可以通過Python腳本語言開發(fā)單片機(jī)程序。MicroPython基于ANSI C,語法跟Pyton 3基本一致,擁有自家的解析器、編譯器、虛擬機(jī)和類庫等。目前它支持基于32-bit的ARM處理器,比如STM32F405、STM32f407等,也就是說ARM處理器STM32F405上直接可運(yùn)行Python語言,用Python語言來控制單片機(jī)。

  借助Micro Python,用戶完全可以通過Python腳本語言實(shí)現(xiàn)硬件底層的訪問和控制,比如說控制LED燈泡、LCD顯示器、讀取電壓、控制電機(jī)、訪問SD卡等。

  下面這篇美國EDN發(fā)布的文章,介紹了Python在實(shí)時(shí)嵌入式系統(tǒng)中扮演的角色:Python's role in developing real time embedded systems。

  Python具有良好的跨平臺(tái)性,比如Linux和Windows,或是諸如Raspberry Pi等單板計(jì)算機(jī)。不過,隨著Python的日益普及,人們可能會(huì)問,在實(shí)時(shí)嵌入式系統(tǒng)中是否也有Python的一席之地。答案是肯定的。下面是開發(fā)人員發(fā)現(xiàn)Python在實(shí)時(shí)嵌入式系統(tǒng)開發(fā)中有可能扮演的五個(gè)主要角色。

  作用# 1設(shè)備調(diào)試和控制

  在嵌入式軟件開發(fā)過程中,開發(fā)人員常常需要分析總線通信量,如USB、SPI或I2C。有的分析僅僅是出于調(diào)試目的,但有時(shí)則需要控制總線分析儀并發(fā)送信息至嵌入式系統(tǒng)。許多總線分析儀和通信工具都有友好的用戶接口,可以用來控制工具。他們通常還提供一種方法來開發(fā)腳本,也可以用來控制工具。Python是一種普遍支持的腳本語言,有時(shí)則是一些工具的接口,或是用來控制工具。

  作用# 2–自動(dòng)化測試

  通過Python控制工具在嵌入式系統(tǒng)中發(fā)送和接收消息的能力,使得利用Python構(gòu)建自動(dòng)化測試(包括回歸測試)成為可能。Python腳本可以設(shè)置嵌入式系統(tǒng)進(jìn)入不同的狀態(tài),設(shè)置配置文件,并測試所有可能的干擾以及系統(tǒng)與外部環(huán)境的相互作用。使用Python開發(fā)自動(dòng)化測試的好處是,回歸測試可以開發(fā)持續(xù)測試并訓(xùn)練系統(tǒng)。任何的代碼變動(dòng)導(dǎo)致的bug或不合格的結(jié)果都將被實(shí)時(shí)的檢測出來。

  作用# 3–數(shù)據(jù)分析

  通過Web簡單地搜索Python庫,你會(huì)發(fā)現(xiàn),有許多免費(fèi)強(qiáng)大的Python庫都可以用來開發(fā)應(yīng)用程序。Python可以用來接收非常重要的嵌入式系統(tǒng)數(shù)據(jù),然后存儲(chǔ)到數(shù)據(jù)庫或是本地進(jìn)行分析。開發(fā)者還可以使用Python開發(fā)實(shí)時(shí)可視化功能來展現(xiàn)臨界參數(shù),或是存儲(chǔ)這些參數(shù)用于后續(xù)分析。使用Python進(jìn)行數(shù)據(jù)分析的優(yōu)點(diǎn)之一是當(dāng)基礎(chǔ)性工作完成之后,新功能的植入會(huì)顯得比較簡單。

  作用# 4–實(shí)時(shí)軟件

  Python已經(jīng)證實(shí)了自己的強(qiáng)大性和易使用性,甚至發(fā)現(xiàn)它是作為一門編程語言進(jìn)入實(shí)時(shí)嵌入式系統(tǒng)。是的,嵌入式軟件本身就是用Python寫的而不是C/C++。用于實(shí)時(shí)軟件最廣泛的Python版本是MicroPython,大多是設(shè)計(jì)在ARM Cortex-M3/4微控制器上運(yùn)行。MicroPython并不孤立。Synapse和OpenMV公司在嵌入式系統(tǒng)中既使用MicroPython也使用他們自己的Python port。對MicroPython感興趣的讀者可能對DesignNews(EDN的姐妹機(jī)構(gòu))的繼續(xù)教育課程也感興趣。

  作用# 5–學(xué)習(xí)面向?qū)ο缶幊?/p>

  Python是一門免費(fèi)的編程語言,可以跨多個(gè)平臺(tái)使用,對于學(xué)生和非編程人員而言比較簡單。該語言與C語言不同,它也是現(xiàn)代式的,并且可以在自由形態(tài)的腳本類型中結(jié)構(gòu)化,或是作為一個(gè)復(fù)雜的面向?qū)ο蟮捏w系結(jié)構(gòu)。Python本身也很靈活。甚至還有這種情景:沒有編程經(jīng)驗(yàn)的電氣工程師可以利用Python寫出有用的測試腳本或用最少的時(shí)間實(shí)施電板檢查。

  Python的學(xué)習(xí)曲線并不陡峭,熟悉Python學(xué)習(xí)曲線的開發(fā)人員發(fā)現(xiàn),當(dāng)你有了其它語言的基礎(chǔ)之后,學(xué)習(xí)Python比學(xué)習(xí)任意其他的編程語言都要簡單。出于這些原因,當(dāng)開發(fā)人員看到Python扮演著編程孵化器角色,并吸收其它缺乏經(jīng)驗(yàn)的工程師對宜早不宜遲的設(shè)計(jì)周期做出貢獻(xiàn)時(shí),不應(yīng)該感到驚訝。

  什么?Python+FPGA!?

  夏宇聞老師幾個(gè)月前在微信上推薦了一個(gè)帖子,說的是有人用Digilent的PYNQ-Z1板卡實(shí)現(xiàn)了超強(qiáng)的加速性能。

  早年,關(guān)于FPGA的開發(fā)都是基于硬件描述語言,從開始的VHDL到現(xiàn)在更為流行的Verilog,軟件應(yīng)用也從由最開始的匯編語言發(fā)展到現(xiàn)在的c/c++實(shí)現(xiàn),這些都是目前為大多數(shù)FPGA開發(fā)者所熟悉的FPGA發(fā)展路程。上個(gè)月,IEEE收錄了一篇關(guān)于使用Python開發(fā)FPGA應(yīng)用的論文。

  在美國納帕舉行的第25屆關(guān)于可編程計(jì)算機(jī)器領(lǐng)域IEEE國際討論會(huì)上,一篇名為“評(píng)估通過Python快速開發(fā)異構(gòu)處理器FPGA應(yīng)用性能”的短篇論文獲得了最佳短篇論文獎(jiǎng)。這篇論文主要討論了Python開發(fā)FPGA應(yīng)用的優(yōu)勢和效率,論文中針對Digilent的PYNQ-Z1板卡(內(nèi)部集成一個(gè)Xilinx Zynq SoC),通過支持Python編程和Jupyter Notebooks框架的PYNQ開發(fā)環(huán)境,應(yīng)用Python對此板卡進(jìn)行開發(fā)編程,并最終評(píng)估開發(fā)結(jié)果的優(yōu)勢和效率。值得一提的是,發(fā)表這篇論文的作者都是業(yè)界大佬,包括高級(jí)計(jì)算機(jī)科學(xué)家AndrewG.Schmidt、計(jì)算機(jī)科學(xué)家Gabriel Weise以及來自美國南加州大學(xué)工程技術(shù)科學(xué)協(xié)會(huì)的研究室主任Matthew French。在論文中,Matthew French教授主要就利用PYNQ開發(fā)環(huán)境,應(yīng)用Python語言對Xilinx Zynq器件進(jìn)行編程應(yīng)用開發(fā)時(shí)對FPGA器件的影響、性能結(jié)果以及瓶頸影響進(jìn)行了評(píng)估。此外,各位教授就基于Python的開發(fā)結(jié)果與已經(jīng)存在的基于C語言的開發(fā)及手動(dòng)開發(fā)結(jié)果進(jìn)行了比較分析。

  在論文中,各位教授還對PYNQ開發(fā)環(huán)境的優(yōu)缺點(diǎn)進(jìn)行了闡述:

  首先來說,PYNQ應(yīng)用開發(fā)框架是一個(gè)開源的開發(fā)環(huán)境,提供了標(biāo)準(zhǔn)的可以約束芯片I/O引腳的“Overlay”比特流,同時(shí),開發(fā)人員可以在此開發(fā)環(huán)境中,利用Python對FPGA進(jìn)行快速編程開發(fā)。此外,PYNQ開發(fā)環(huán)境內(nèi)部集成標(biāo)準(zhǔn)的編程范式,支持HDMI和視頻流的輸出輸出,同時(shí)具有兩組12pin的PMOD連接器和一個(gè)兼容Arduino的連接器(可以連接或配置為Arduino系列板卡)。其中,默認(rèn)的overlay中實(shí)例化了多個(gè)可以驅(qū)動(dòng)多I/O接口的微Blaze處理器核,也可以配置一些支持圖像濾波功能和試驗(yàn)SIMT(單指令,多線程)編程軟邏輯GPU的overlay。同時(shí),PYNQ也提供了支持比特流編程的API和可擴(kuò)展的通用Python庫和包,并且可以通過存儲(chǔ)映射I/O(MMIO)直接尋址可編程邏輯單元,另外還支持DMA交易(不需要經(jīng)過器件驅(qū)動(dòng)和核模塊之間的不斷握手確認(rèn))。

  其次,就目前來說,PYNQ還不支持任何高級(jí)的綜合,也無法將Python應(yīng)用直接移植到FPGA中。這就意味著,開發(fā)者依然原型必須使用FPGA來創(chuàng)建一個(gè)設(shè)計(jì),即當(dāng)PYNQ提供一個(gè)支持板卡IO接口的Overlay框架以時(shí),任何用戶邏輯依然必須由開發(fā)者親自創(chuàng)建并綜合。不過,開發(fā)者仍然可以使用高級(jí)綜合工具或上面提到的Python-to-HDL工程來完成這個(gè)任務(wù),但是最終,開發(fā)者依然需要基于此設(shè)計(jì)并創(chuàng)建一個(gè)整合了Python代碼比特流文件。

  也正是由于PYNQ存在這方面的缺陷,論文的作者并沒有簡單依賴現(xiàn)存的PYNQ API接口和overlay,他們開發(fā)出一個(gè)基于Redsharc項(xiàng)目的特定應(yīng)用程序內(nèi)核進(jìn)行研究。

  結(jié)果如何呢?論文最后,作者對給出了Python開發(fā)Zynq應(yīng)用的各項(xiàng)評(píng)估結(jié)果。結(jié)果中給出了通過c/c++實(shí)現(xiàn)這項(xiàng)研究的一般圖像處理管道性能,以及定制的硬件加速器和Python實(shí)現(xiàn)的性能結(jié)果(下圖所示),幫助我們更好地理解了Python + FPGA開發(fā)環(huán)境的性能和能。表中可以看出,結(jié)果十分明顯,通過PYNQ實(shí)現(xiàn)較c實(shí)現(xiàn)速度提高了30倍之多,更甚者,從結(jié)果中可以看出,當(dāng)Python實(shí)現(xiàn)時(shí)有更加有效的可用庫時(shí),比如OpenCV,其性能可以增長更多。

1.png

  Python軟件實(shí)現(xiàn)和FPGA性能潛力的結(jié)合是一個(gè)非常有意義的工作,將會(huì)開創(chuàng)出一個(gè)類似于樹莓派和Arduino的廣大的開發(fā)者社區(qū)。Python+FPGA是一個(gè)廣闊的未經(jīng)勘察過的領(lǐng)域——一個(gè)全新的更加高效的開發(fā)空間——通過PYNQ開發(fā)環(huán)境將會(huì)吸引更多的系統(tǒng)開發(fā)者加入的領(lǐng)域。

  日前在賽靈思OPENHW2017創(chuàng)新大賽暨教師峰會(huì)上,北京理工大學(xué)嵩天副教授《Python編程語言和PYNQ在中國》的演講,科普了Python編程風(fēng)靡全球的原因。

  Python編程語言舉例,只用了21行代碼就完成了一個(gè)圖像素描的處理,Python大大提升了開發(fā)效率。

  人工智能和機(jī)器學(xué)習(xí)走熱,讓 Python 從眾多編程語言中脫穎而出。

  還等什么呢?

  人生苦短,我用Python

  附11大編程語言薪資排行榜

  編程語言有很多,但并非每一種的需求或工資都相同。人工智能和機(jī)器學(xué)習(xí)走熱,讓 Python 從眾多編程語言中脫穎而出。下文將綜合各種信源,以不同編程語言在美國市場的相關(guān)薪資水平、人氣和前景,為你提供一些參考。

  薪資水平

  使用國外招聘網(wǎng)站 Indeed.com 將編程語言的薪資水平劃分為 9 檔:基于這個(gè)結(jié)果,Ruby/Ruby on Rails 看起來會(huì)讓你掙得最多,而 Python,C++,iOS 和 Java 也是體面的選擇。如果薪資是你的主要關(guān)注點(diǎn),那么也許 C,PHP 和 SQL 不是最理想的選擇……

7.png


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产欧美日韩亚洲精品| 在线午夜精品| 久久久亚洲精品一区二区三区| 伊人狠狠色j香婷婷综合| 在线综合+亚洲+欧美中文字幕| 国产精品视频一二三| 亚洲国产成人一区| 欧美视频在线观看一区二区| 亚洲国产精品一区二区第四页av| 欧美日本免费| 销魂美女一区二区三区视频在线| 欧美精品一卡二卡| 久久国产免费| 国产精品国产三级国产aⅴ无密码| 久久国产精品99久久久久久老狼| 欧美日韩国产在线播放网站| 欧美一区1区三区3区公司| 欧美伦理影院| 亚洲国产欧美另类丝袜| 国产一区二区久久| 香港久久久电影| 日韩五码在线| 欧美剧在线免费观看网站| 久久精品视频99| 国产午夜一区二区三区| 亚洲——在线| 国产欧美短视频| 亚洲在线网站| 亚洲一区久久久| 国产精品午夜电影| 欧美一区二粉嫩精品国产一线天| 一本色道久久综合狠狠躁篇的优点| 欧美暴力喷水在线| 亚洲人成免费| 亚洲欧洲日本在线| 欧美日韩综合在线| 亚洲视频香蕉人妖| 亚洲视频播放| 国产精品亚洲视频| 久久高清国产| 国产精品久久激情| 国产一区二区三区在线观看视频| 亚洲一卡久久| 亚洲自拍都市欧美小说| 国产日韩精品视频一区二区三区| 欧美在线视频免费观看| 久久精品国产一区二区三区| 狠狠色2019综合网| 欧美激情一区在线观看| 亚洲综合日韩| 亚洲电影天堂av| 一级成人国产| 国产主播精品在线| 欧美精品 国产精品| 亚洲欧美日韩在线不卡| 亚洲第一天堂无码专区| 亚洲精品一品区二品区三品区| 欧美三级视频在线观看| 久久动漫亚洲| 中文有码久久| 亚洲欧美在线x视频| 亚洲国产一区视频| 国产欧美欧洲在线观看| 欧美激情综合色| 久久久久久久网站| 国产精品99久久久久久宅男| 久久9热精品视频| 一本一本a久久| 亚洲日本成人| 激情欧美一区| 国产欧美一区二区三区另类精品| 欧美日韩国产不卡在线看| 久久资源在线| 久久国产直播| 亚洲欧美日韩精品久久奇米色影视 | 精品91视频| 欧美性色综合| 亚洲免费在线视频| 亚洲国产精品视频一区| 国产精品99久久久久久宅男| 国产亚洲精品久| 国产精品久久久久一区| 欧美成年人视频网站| 欧美一区二区三区在线看| 99国产麻豆精品| 亚洲精品久久久蜜桃| 久久精品九九| 性欧美精品高清| 亚洲曰本av电影| 一区二区三区四区蜜桃| 亚洲激情六月丁香| 亚洲黄一区二区| 伊人久久大香线蕉av超碰演员| 国产精品免费小视频| 欧美日韩亚洲高清一区二区| 欧美成年人视频网站| 噜噜噜躁狠狠躁狠狠精品视频| 久久精品主播| 久久精品国产亚洲一区二区| 亚洲欧美日韩国产一区二区三区| 99国产精品视频免费观看一公开| 亚洲激情av在线| 亚洲精选一区二区| 99热这里只有精品8| 一区二区三区精品视频在线观看| 亚洲精品日韩综合观看成人91| 亚洲国产一二三| 久久成人一区二区| 亚洲大片精品永久免费| 久久精品国产亚洲高清剧情介绍| 久久国产精品99精品国产| 久久精品2019中文字幕| 91久久一区二区| 日韩午夜精品| 午夜视频一区在线观看| 欧美在线综合视频| 蜜桃久久精品乱码一区二区| 欧美激情成人在线视频| 欧美色大人视频| 国产日韩欧美一二三区| 亚洲高清资源| 亚洲一区二区三区久久| 亚洲盗摄视频| 亚洲免费一区二区| 蜜桃av一区二区三区| 欧美午夜宅男影院| 国产精品久久久亚洲一区| 尹人成人综合网| 亚洲精品孕妇| 欧美一区激情视频在线观看| 欧美一级网站| 亚洲深夜福利视频| 久久久久免费视频| 欧美先锋影音| 日韩午夜av在线| 亚洲伊人观看| 亚洲国产另类精品专区 | 久久久国产精品一区二区三区| 久久精品国产在热久久| 亚洲欧美日产图| 91久久夜色精品国产九色| 国产精品久久久久久久久免费樱桃 | 欧美亚洲尤物久久| 老色鬼久久亚洲一区二区| 欧美午夜电影在线| 精东粉嫩av免费一区二区三区| 亚洲美洲欧洲综合国产一区| 亚洲免费黄色| 亚洲女女做受ⅹxx高潮| 一区二区三区国产盗摄| 欧美国产高潮xxxx1819| 久久亚洲精品欧美| 国产精品每日更新在线播放网址| 亚洲国产精品高清久久久| 亚洲黄色成人久久久| 久久夜色精品国产欧美乱极品 | 亚洲欧美日韩中文播放| 欧美三级午夜理伦三级中文幕| 在线日韩中文| 一本在线高清不卡dvd| 欧美三区不卡| 亚洲一区二区三区四区五区午夜| 亚洲香蕉网站| 欧美性开放视频| 亚洲性xxxx| 亚洲欧美日韩久久精品 | 性色av香蕉一区二区| 欧美专区在线播放| 在线观看成人av电影| 亚洲成在线观看| 欧美精品一区二区三区视频 | 欧美高清视频在线| 亚洲裸体视频| 日韩亚洲在线观看| 欧美日韩在线一二三| 午夜精品一区二区三区在线视| 久久精品国语| 黄色一区二区在线观看| 亚洲欧洲在线一区| 欧美三区美女| 久久精品2019中文字幕| 免费日韩av| 亚洲自拍偷拍网址| 蜜桃久久av一区| 亚洲一区二区三区成人在线视频精品| 久久久久.com| 日韩午夜精品视频| 久久一区二区三区av| 亚洲精品在线视频| 久久成人人人人精品欧| 亚洲精品免费在线播放| 羞羞色国产精品| 亚洲精品免费观看| 99精品国产99久久久久久福利| 国产精品色婷婷久久58| 亚洲人体偷拍| 红桃视频国产精品| 这里是久久伊人| 亚洲国产天堂久久综合网| 久久久久亚洲综合|