衡阳派盒市场营销有限公司

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

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

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

典型的FPGA方法:如何開(kāi)始使用Digilent的開(kāi)發(fā)板

YCqV_FPGA_EETre ? 來(lái)源:lq ? 2019-04-30 16:42 ? 次閱讀

過(guò)去,設(shè)計(jì)人員傾向于使用現(xiàn)場(chǎng)可編程門陣列 (FPGA) 在硬件設(shè)計(jì)中提升計(jì)算密集型應(yīng)用的性能,例如計(jì)算機(jī)視覺(jué)通信工業(yè)嵌入式系統(tǒng),以及越來(lái)越多的物聯(lián)網(wǎng) (IoT)。然而,傳統(tǒng) FPGA 編程中涉及的繁瑣步驟一直讓人望而卻步,促使設(shè)計(jì)人員到目前都還在尋求替代處理解決方案。

基于 Jupyter 筆記本的 Python Productivity for Zynq (PYNQ) 開(kāi)發(fā)環(huán)境的問(wèn)世,解決了 FPGA 的可編程性問(wèn)題。使用專為支持 PYNQ 而設(shè)計(jì)的開(kāi)發(fā)板,即使 FPGA 經(jīng)驗(yàn)很少的開(kāi)發(fā)人員也可快速實(shí)現(xiàn)相關(guān)設(shè)計(jì),從而充分利用 FPGA 性能來(lái)加快計(jì)算密集型應(yīng)用。

本文將說(shuō)明典型的 FPGA 方法,然后介紹并演示如何開(kāi)始使用 Digilent 的開(kāi)發(fā)板。該開(kāi)發(fā)板為快速開(kāi)發(fā)基于 FPGA 的系統(tǒng)提供了一種強(qiáng)大的開(kāi)源替代方法。

為何使用 FPGA?

若需要使用計(jì)算密集型復(fù)雜算法工程師常常依賴 FPGA 提高執(zhí)行速度,同時(shí)又不影響緊張的功率預(yù)算。實(shí)際上,F(xiàn)PGA 已成為在邊緣計(jì)算系統(tǒng)中提高人工智能算法速度的主流平臺(tái)。

更先進(jìn)的 FPGA 片上系統(tǒng) (SoC) 器件專為嵌入式應(yīng)用而設(shè)計(jì),將可編程邏輯 (PL) 結(jié)構(gòu)與微控制器集成在一起。例如,Xilinx 的 Zynq-7000 SoC 在集成式可編程邏輯 (PL) 結(jié)構(gòu)中結(jié)合了一個(gè) Arm? Cortex?-A9 雙核處理器系統(tǒng),以及最多 444,000 個(gè)邏輯單元(圖 1)。除了內(nèi)置處理器和全套外設(shè)外,Zynq SoC 還提供最多 2,020 個(gè)數(shù)字信號(hào)處理 (DSP) 塊(或稱切片)。開(kāi)發(fā)人員使用這些資源,便可將 PL 結(jié)構(gòu)配置到專用的處理鏈中,以便在復(fù)雜的計(jì)算密集型算法中提高吞吐量。

圖 1:Xilinx 的 Zynq-7000 SoC 結(jié)合了 Arm Cortex-A9 雙核處理器、可編程邏輯結(jié)構(gòu),以及很多嵌入式應(yīng)用中所需的全套外設(shè)和接口。(圖片來(lái)源:Xilinx)

除了可減少元器件數(shù)量外,處理器與 PL 結(jié)構(gòu)的集成還允許通過(guò)片上總線而不是片外訪問(wèn)來(lái)執(zhí)行運(yùn)算。這種集成也進(jìn)一步簡(jiǎn)化了在上電或復(fù)位序列期間,加載 PL 結(jié)構(gòu)的關(guān)鍵任務(wù)。

在使用 FPGA 構(gòu)建的基于微控制器的典型系統(tǒng)中,開(kāi)發(fā)人員需要管理用于加載 FPGA 編程比特流的序列和安全性。在 Zynq SoC 中,集成的處理器負(fù)責(zé)執(zhí)行常規(guī)微控制器的任務(wù),包括管理 PL 結(jié)構(gòu)和其他片上外設(shè)。因此,與傳統(tǒng)的 FPGA 比特流初始化相比,該 FPGA 加載過(guò)程更接近于常規(guī)微控制器的引導(dǎo)過(guò)程。

該引導(dǎo)過(guò)程通過(guò)由其中一個(gè) Zynq 處理器管理的短步驟序列完成(圖 2)。上電或復(fù)位時(shí),如果 Zynq 處理器執(zhí)行其只讀 BootROM 中的一小段代碼,以從引導(dǎo)設(shè)備獲取實(shí)際引導(dǎo)代碼,則引導(dǎo)過(guò)程開(kāi)始。除了用于配置處理器系統(tǒng)組件的代碼外,引導(dǎo)代碼還包含 PL 比特流以及用戶應(yīng)用。當(dāng)引導(dǎo)代碼加載完成時(shí),處理器使用其中包含的比特流來(lái)配置 PL。而完成組件和 PL 的配置后,該器件開(kāi)始執(zhí)行引導(dǎo)代碼中包含的應(yīng)用。

圖 2:在類似于常規(guī)微控制器的引導(dǎo)序列中,Xilinx 的 Zynq-7000 SoC 運(yùn)行 Boot ROM 中的代碼來(lái)加載和執(zhí)行引導(dǎo)加載程序,該加載程序負(fù)責(zé)處理后續(xù)階段,包括使用引導(dǎo)代碼中封裝的比特流來(lái)配置可編程邏輯結(jié)構(gòu)。(圖片來(lái)源:Xilinx)

即使有了簡(jiǎn)化的 PL 加載處理,開(kāi)發(fā)人員在過(guò)去仍需自行處理復(fù)雜的 FPGA 開(kāi)發(fā)過(guò)程,才能生成所需比特流。對(duì)于希望利用 FPGA 性能的開(kāi)發(fā)人員來(lái)說(shuō),傳統(tǒng)的 FGPA 開(kāi)發(fā)過(guò)程仍然是他們實(shí)現(xiàn)設(shè)計(jì)的一大障礙。Xilinx 通過(guò)其 PYNQ 環(huán)境有效地消除了這一障礙。

PYNQ 環(huán)境

在 PYNQ 中,PL 比特流封裝在預(yù)先構(gòu)建的庫(kù)中。這些庫(kù)稱為覆蓋層,在開(kāi)發(fā)過(guò)程和執(zhí)行環(huán)境中,其角色與軟件庫(kù)類似。在引導(dǎo)加載過(guò)程中,與所需覆蓋層相關(guān)聯(lián)的比特流將配置 PL 結(jié)構(gòu)。不過(guò),對(duì)于通過(guò)與每個(gè)覆蓋層關(guān)聯(lián)的 Python 應(yīng)用程序編程接口 (API) 來(lái)利用覆蓋層功能的開(kāi)發(fā)人員而言,該過(guò)程保持透明。在開(kāi)發(fā)過(guò)程中,工程師可以根據(jù)需要組合軟件庫(kù)和覆蓋層,通過(guò)其各自 API 來(lái)實(shí)現(xiàn)應(yīng)用。在執(zhí)行過(guò)程中,處理器系統(tǒng)像往常一樣執(zhí)行軟件庫(kù)代碼,而 PL 結(jié)構(gòu)負(fù)責(zé)實(shí)現(xiàn)覆蓋層中提供的功能。這樣做的結(jié)果是可以提升性能,從而進(jìn)一步促使開(kāi)發(fā)人員對(duì)日益嚴(yán)苛應(yīng)用進(jìn)行 FPGA 設(shè)計(jì)的興趣。

顧名思義,PYNQ 利用了與 Python 編程語(yǔ)言相關(guān)的更高開(kāi)發(fā)生產(chǎn)力。Python 之所以能夠成為頂級(jí)語(yǔ)言之一,不僅是因?yàn)槠湎鄬?duì)簡(jiǎn)單,還因?yàn)樗哂旋嫶笄也粩鄶U(kuò)增的生態(tài)系統(tǒng)。開(kāi)發(fā)人員可能會(huì)在 Python 開(kāi)源模塊的存儲(chǔ)庫(kù)中,找到支持服務(wù)或?qū)S盟惴ㄋ璧能浖?kù)。與此同時(shí),開(kāi)發(fā)人員可以使用 C 語(yǔ)言實(shí)現(xiàn)關(guān)鍵功能,因?yàn)?PYNQ 使用常見(jiàn) C 語(yǔ)言實(shí)現(xiàn) Python 解釋器。該實(shí)現(xiàn)允許輕松訪問(wèn)數(shù)千個(gè)現(xiàn)有 C 語(yǔ)言庫(kù),并簡(jiǎn)化開(kāi)發(fā)人員提供的 C 語(yǔ)言庫(kù)的使用。盡管經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員可以使用專用硬件覆蓋層和 C 語(yǔ)言軟件庫(kù)來(lái)擴(kuò)展 PYNQ,但是 PYNQ 的真正優(yōu)勢(shì)在于,它可為任何能夠構(gòu)建 Python 程序的開(kāi)發(fā)人員提供高生產(chǎn)力開(kāi)發(fā)環(huán)境。

PYNQ 本身是一個(gè)開(kāi)源項(xiàng)目,基于另一個(gè)開(kāi)源項(xiàng)目(Jupyter 筆記本)而構(gòu)建。針對(duì)通過(guò)交互方式探索算法,以及使用 Python 或任何其他受支持的編程語(yǔ)言(目前超過(guò) 40 種)對(duì)復(fù)雜應(yīng)用進(jìn)行原型開(kāi)發(fā),Jupyter 筆記本可提供極其有效的環(huán)境。Jupyter 筆記本由 Project Jupyter 基于社區(qū)共識(shí)而開(kāi)發(fā),將可執(zhí)行代碼行與描述文本和圖形結(jié)合在一起。這一功能使各開(kāi)發(fā)人員能夠更有效地記錄進(jìn)展,而無(wú)需轉(zhuǎn)到其他開(kāi)發(fā)環(huán)境。例如,開(kāi)發(fā)人員可以使用筆記本,將查看數(shù)據(jù)所需的數(shù)行代碼與代碼生成的圖形結(jié)合起來(lái)(圖 3)。

圖 3:來(lái)自 Xilinx 樣例存儲(chǔ)庫(kù)的 Jupyter 筆記本將描述文本、可執(zhí)行代碼以及與應(yīng)用相關(guān)的輸出結(jié)合起來(lái)。(圖片來(lái)源:Xilinx)

Jupyter 筆記本之所以能夠同時(shí)包含代碼、輸出和描述文本,是因?yàn)樗且环N活動(dòng)文檔,并在 Jupyter 筆記本服務(wù)器提供的交互式開(kāi)發(fā)環(huán)境中進(jìn)行維護(hù)(圖 4)。在 Jupyter 會(huì)話中,服務(wù)器使用 HTTP 協(xié)議在常規(guī) Web 瀏覽器中呈現(xiàn)筆記本文件,并對(duì)所呈現(xiàn)文檔中的靜態(tài)和動(dòng)態(tài)內(nèi)容應(yīng)用 HTTP 和 Websocket 協(xié)議。在后端,服務(wù)器使用 ZeroMQ (?MQ) 開(kāi)源消息傳遞協(xié)議與代碼執(zhí)行內(nèi)核通信。

圖 4:在 Jupyter 會(huì)話中,筆記本服務(wù)器將筆記本文件的內(nèi)容呈現(xiàn)到 Web 瀏覽器,同時(shí)與執(zhí)行代碼的后端內(nèi)核進(jìn)行交互。

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

    關(guān)注

    48

    文章

    7651

    瀏覽量

    152116
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21798

    瀏覽量

    606022
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85040

原文標(biāo)題:使用Python和Jupyter筆記本快速構(gòu)建基于FPGA的設(shè)計(jì)并進(jìn)行編程

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開(kāi)發(fā)者福利 一文帶你了解Digilent Arty S7 FPGA開(kāi)發(fā)板

    Digilent為Arty FPGA開(kāi)發(fā)板系列增加了新的成員——兩種不同規(guī)格的新的Arty S7,這款FPGA開(kāi)發(fā)板是基于中等大小(size
    的頭像 發(fā)表于 09-27 06:33 ?8594次閱讀
    <b class='flag-5'>開(kāi)發(fā)</b>者福利 一文帶你了解<b class='flag-5'>Digilent</b> Arty S7 <b class='flag-5'>FPGA</b><b class='flag-5'>開(kāi)發(fā)板</b>

    fpga開(kāi)發(fā)板的新手,如何開(kāi)始使用引腳分配

    我是fpga開(kāi)發(fā)板的新手,我想知道如何開(kāi)始使用引腳分配,特別是u*** / serial引腳連接。任何其他pin信息都會(huì)有所幫助謝謝
    發(fā)表于 07-19 11:47

    Digilent公司推出新型FPGA硬件開(kāi)發(fā)平臺(tái):NEXYSTM3開(kāi)發(fā)板

    Digilent公司推出了一款新型的基于FPGA的硬件開(kāi)發(fā)平臺(tái),NEXYSTM3開(kāi)發(fā)板。此開(kāi)發(fā)板采用了Xilinx公司最先進(jìn)的Spartan
    發(fā)表于 08-22 09:28 ?1465次閱讀

    fpga開(kāi)發(fā)板電路圖

    最全面的fpga開(kāi)發(fā)板電路圖,一共有10多份fpga開(kāi)發(fā)板電路圖。
    發(fā)表于 04-19 12:50 ?133次下載
    <b class='flag-5'>fpga</b><b class='flag-5'>開(kāi)發(fā)板</b>電路圖

    Digilent公司basys2開(kāi)發(fā)板的全套開(kāi)發(fā)例程

    Digilent公司basys開(kāi)發(fā)板的全套開(kāi)發(fā)例程,感興趣的小伙伴們可以看看。
    發(fā)表于 07-29 17:46 ?256次下載

    Digilent公司發(fā)布新款FPGA開(kāi)發(fā)板

    Digilent公司宣布了新款FPGA開(kāi)發(fā)板,歸屬于其Nexys產(chǎn)品線——Nexys4——上集成一個(gè)賽靈思Artix-7100T FPGA
    發(fā)表于 02-09 14:09 ?1599次閱讀

    digilent JTAG編程電線特點(diǎn)

    產(chǎn)品特點(diǎn):   低成本JTAG配置解決方案   專為非Digilent FPGA開(kāi)發(fā)板設(shè)計(jì)
    的頭像 發(fā)表于 11-13 17:04 ?2201次閱讀
    <b class='flag-5'>digilent</b> JTAG編程電線特點(diǎn)

    digilent Virtex-5 FPGA開(kāi)發(fā)板簡(jiǎn)介

    Genesys Virtex-5 FPGA開(kāi)發(fā)板集成了功能強(qiáng)大的Xilinx Virtex?-5 FPGA,為廣大用戶帶來(lái)了一個(gè)功能強(qiáng)大、方便實(shí)用的設(shè)計(jì)平臺(tái)。上還有千兆以太網(wǎng),高速內(nèi)
    的頭像 發(fā)表于 11-14 17:01 ?4537次閱讀
    <b class='flag-5'>digilent</b> Virtex-5 <b class='flag-5'>FPGA</b><b class='flag-5'>開(kāi)發(fā)板</b>簡(jiǎn)介

    digilent Spartan-7開(kāi)源創(chuàng)客開(kāi)發(fā)板介紹

    Arty S7 開(kāi)發(fā)板搭載 Xilinx 最新的 Spartan-7 FPGA 芯片,是 DIGILENT Arty 家族系列產(chǎn)品的最新成員,該家族系列產(chǎn)品專門面向創(chuàng)客和FPGA興趣
    的頭像 發(fā)表于 11-19 14:38 ?2611次閱讀
    <b class='flag-5'>digilent</b> Spartan-7開(kāi)源創(chuàng)客<b class='flag-5'>開(kāi)發(fā)板</b>介紹

    digilent Artix-7 FPGA開(kāi)發(fā)板簡(jiǎn)介

    Nexys 4 DDR是一款Digilent多孔R(shí)AM-based Nexys開(kāi)發(fā)板的簡(jiǎn)易替代品。
    的頭像 發(fā)表于 11-19 14:43 ?3429次閱讀
    <b class='flag-5'>digilent</b> Artix-7 <b class='flag-5'>FPGA</b><b class='flag-5'>開(kāi)發(fā)板</b>簡(jiǎn)介

    開(kāi)始使用 RL78/G14 快速原型開(kāi)發(fā)板/Wi-Fi-Pmod-Expansion-Board

    開(kāi)始使用 RL78/G14 快速原型開(kāi)發(fā)板/Wi-Fi-Pmod-Expansion-Board
    發(fā)表于 02-02 19:31 ?0次下載
    <b class='flag-5'>開(kāi)始使用</b> RL78/G14 快速原型<b class='flag-5'>開(kāi)發(fā)板</b>/Wi-Fi-Pmod-Expansion-Board

    開(kāi)始使用 RL78/G14快速原型開(kāi)發(fā)板/Wi-Fi-Pmod-Expansion-Board

    開(kāi)始使用 RL78/G14 快速原型開(kāi)發(fā)板/Wi-Fi-Pmod-Expansion-Board
    發(fā)表于 07-04 19:16 ?0次下載
    <b class='flag-5'>開(kāi)始使用</b> RL78/G14快速原型<b class='flag-5'>開(kāi)發(fā)板</b>/Wi-Fi-Pmod-Expansion-Board

    fpga開(kāi)發(fā)板與linux開(kāi)發(fā)板區(qū)別

    FPGA開(kāi)發(fā)板與Linux開(kāi)發(fā)板是兩種不同的硬件開(kāi)發(fā)平臺(tái),各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。在以下的文章中,我將詳細(xì)介紹FPGA
    的頭像 發(fā)表于 02-01 17:09 ?2434次閱讀

    fpga開(kāi)發(fā)板使用教程

    FPGA開(kāi)發(fā)板的使用教程主要包括以下幾個(gè)關(guān)鍵步驟。
    的頭像 發(fā)表于 03-14 15:50 ?1256次閱讀

    fpga開(kāi)發(fā)板是什么?fpga開(kāi)發(fā)板有哪些?

    FPGA開(kāi)發(fā)板是一種基于FPGA(現(xiàn)場(chǎng)可編程門陣列)技術(shù)的開(kāi)發(fā)平臺(tái),它允許工程師通過(guò)編程來(lái)定義和配置FPGA芯片上的邏輯電路,以實(shí)現(xiàn)各種數(shù)字
    的頭像 發(fā)表于 03-14 18:20 ?2220次閱讀
    赌百家乐官网的高手| 网上百家乐作弊法| 百家乐官网筹码素材| 网上百家乐作弊法| 广州百家乐官网牌具公司| 爱玩棋牌下载| 百家乐官网翻天| 百家乐官网赌牌技巧| 大家旺百家乐的玩法技巧和规则 | 做生意门面朝向风水| 正蓝旗| 百家乐必胜绝| 奇迹百家乐官网的玩法技巧和规则 | 澳门百家乐21点| 网络百家乐官网可信吗| 大发888排行| 百家乐长玩必输| 百家乐官网视频台球游戏| 威尼斯人娱乐城在线赌博网站| 百家乐官网和的打法| 金门县| 大发888真人真钱赌博| 百家乐网上公式| 分宜县| 赢钱的棋牌游戏| 澳门百家乐群官网| 百家乐技巧娱乐博彩| 伯爵百家乐娱乐城| 神话百家乐官网的玩法技巧和规则| 百利宫百家乐官网的玩法技巧和规则| e世博 | 威尼斯人娱乐城送钱| 太阳百家乐3d博彩通| 百家乐官网庄家怎样赚钱| tt娱乐城备用| 电玩百家乐的玩法技巧和规则| 百家乐官网国际娱乐平台| 龙南县| 大发888娱乐场东南网| 伟易博百家乐官网娱乐城| 百家乐官网烫金筹码|