女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

Arduino環境中的FPGA:模塊支持預配置和定制IP

丫丫119 ? 來源:未知 ? 作者:肖冰 ? 2019-08-14 10:44 ? 次閱讀

當固件在微控制器微處理器上的運行速度過慢時,現場可編程門陣列 (FPGA) 可解決實時嵌入式設計的硬件問題。同時,FPGA 還具有外設靈活性。然而,要使用 FPGA,設計工程師就需要學習全新的編程語言(通常為 Verilog 或 VHDL)以及全新的開發流程來生成 FPGA 比特流,而且可能需要投入大量資金用于購買 FPGA 開發板。

由于這些障礙,盡管 FPGA 是設計工具箱中非常有用的工具,但許多設計工程師都不愿意使用。為幫助他們克服這種心態,一些供應商正在致力于縮短 FPGA 學習曲線。例如,Arduino推出了 ArduinoABX00022 MKR Vidor 4000FPGA 開發板(參見“通過 Arduino MKR Vidor 4000 快速輕松地應用 FPGA”)。Arduino MKR Vidor 4000 提供了另一種 FPGA 編程方法,與廣受歡迎的Arduino 集成開發環境(IDE) 無縫集成,并且可以使用專用 Arduino 庫擴展獲得 FPGA 級性能。

現在又推出新產品以替代早前的產品,其中就包括 Arduino MKR Vidor 4000 板。Alorium Technology則開發了一種稍微不同的方法來將 FPGA 性能添加到 Arduino 嵌入式開發環境中。這種方法既支持預配置 IP 塊進行 I/O 加速,也支持定制設計的 IP 塊。

本文首先簡要介紹 FPGA 的傳統使用方法,然后深入介紹 Alorium 的 Arduino 兼容型XLR8R22M08V5U0DI和 SnōSNOR20M16V3FPGA 模塊。本文將說明 Alorium 如何以全新的理念在 Arduino 環境中使用 FPGA,既支持預配置 IP,又能構建定制 IP,以及設計人員如何開始應用 FPGA 模塊。

如何加速 Arduino

現在,全球成千上萬的設計人員、工程師、開發人員、DIY 愛好者和創客都在使用 Arduino 開發板系列的不同版本,為各種各樣的應用開發嵌入式系統。由于 Arduino 板和 Arduino IDE 的使用和編程方法都非常簡單,因此深受歡迎。

隨著 Arduino 用戶不斷將最初的 Arduino 架構推進到更加復雜的應用領域,性能問題開始出現。一部分性能問題是最初的 Arduino 微控制器的 8 位架構過于簡單。另一部分問題是當 Arduino 的嵌入式微控制器不具備等效硬件塊時,Arduino 軟件系統只能通過軟件實現大量實時外設。

這一性能問題的一種解決方法是使用功能更強大的微控制器,但軟件在實時環境中能做的事情是有限的。一些高速實時外設必須在硬件中實現。此外,雖然也可以使用配備更多硬件外設的微控制器,但適用的外設組合則取決于具體的項目。

對此,微控制器制造商常在一個微處理器系列中提供數十個甚至上百個版本,以此解決對于不同外設組合的需求。然而,這種方法對于 Arduino 等板級產品并不可行,因為必須使用具有足夠 I/O 引腳的板載連接器來滿足所有需求。盡管現在市面上有很多版本的 Arduino 板,但仍然不足以滿足所有嵌入式項目的需求。

FPGA 可滿足各種外設組合需求

通過向嵌入式設計人員提供可編程硬件,FPGA 能夠滿足因項目而異的外設組合需求。為嵌入式微控制器板添加 FPGA 功能的一種簡單方法是,將 FPGA 添加到現有設計中。這也是 Arduino 在設計 Arduino MKR Vidor 4000 板時采用的方法。該板結合了Microchip Technology的基于 32 位Arm?Cortex?-M0+ 的ATSAMD21G18A-AUTSAMD21 低功耗微控制器與Intel的10CL016YU484C6GCyclone 10 FPGA。

Arduino 專為 MKR Vidor 4000 板向 Arduino IDE 中添加了幾個硬件 IP 塊。這些外設可由兩個主庫提供:VidorPeripherals和VidorGraphics。當 Arduino 草圖(Arduino 用來表示程序或代碼單元的名稱)中包含相關外設庫時,Arduino MKR Vidor 4000 上的 Intel Cyclone 10 FPGA 會自動構建這些硬件 IP 塊。目前的外設 IP 塊清單包括:

I2C 端口

SPI 端口

UART

高頻 PWM 控制器

高速定時器

高速正交解碼器

Adafruit Industries的Neopixel可尋址 RGB 智能 LED 控制器

其中一些外設(例如 I2C 和 SPI)已經作為軟件 IP 塊用于早前的 Arduino 板。這些早期軟件實現與 Arduino MKR Vidor 4000 板的 FPGA 上實現的等效 IP 塊的區別在于,FPGA 版本的外設性能更好。例如,每個 I2C 和 SPI 實例化都是通過板上 FPGA 內部的獨立可編程硬件塊實現的。因此,實例化若干個這樣的串行端口時沒有性能損失。

通過以 FPGA 硬件實現外設塊,并借助 Arduino 草圖編寫人員已經熟悉的相同庫機制使其可用,Arduino MKR Vidor 4000 板簡化了 FPGA 的使用。無需學習 VHDL 或 Verilog 之類新的硬件描述語言 (HDL)。實際上,對于程序員而言,基于 FPGA 的外設與任何其他 C++ 對象并無二致。Arduino 計劃日后添加更多此類硬件 IP 塊外設。

然而,Arduino MKR Vidor 4000 板與通用的 FPGA 開發板仍有所不同,因為它不支持使用 HDL 代碼對板載 Cyclone 10 FPGA 直接編程。Arduino 正計劃使用 Intel 面向 FPGA 的Quartus HDL 開發工具,允許更多高級用戶通過 Arduino MKR Vidor 4000 板的 FPGA 來實現更多用途。

Alorium 邁出下一步

對于 Arduino 兼容型 XLR8R22M08V5U0DI 和 SNOR20M16V3 Snō FPGA 開發板,Alorium 已通過 OpenXLR8 方法和 Xcelerator Block (XB) 邁出了這一步(圖 1 和圖 2)。這兩款板基于 IntelMAX 10 FPGA 系列的不同版本構建,該系列集成有閃存配置存儲器。XLR8 結合了 Intel10M08SAU169C8GMAX 10 與 8 位 ATmega328 指令集兼容型微控制器。它的外形尺寸與最初的Arduino Uno開發板相同,因此與很多 Arduino Shield 和配件兼容。

圖 1:Alorium Technology 的 XLR8R22M08V5U0DI 開發板結合了 Intel MAX 10 FPGA 與 8 位 ATmega328 指令集兼容型微控制器,全部集成在一個 Arduino Uno 外形尺寸中。(圖片來源:Alorium Technology)

Alorium Snō FPGA 開發板的尺寸相對小得多,該模塊尺寸規格為 0.7 x 1.7 英寸,見圖 2。盡管 Snō FPGA 開發板的物理尺寸更小,但它集成了 Intel MAX 10 FPGA 的更高版本,配備的邏輯單元也多出一倍:10M16SAU169C8GMAX 10 FPGA 有 16K,而 XLR8 板上的 10M08 器件只有 8K。前者的 I/O 引腳也是后者的兩倍多(32 個,對比 XLR8 板的 14 個)。

圖 2:與 XLR8 開發板一樣,Alorium Technology 的 Snō FPGA 開發板也結合了 8 位 ATmega328 指令集兼容型微控制器與 Intel MAX 10 FPGA — 該開發板采用的是 10M16SAU169C8G FPGA。不過,Snō FPGA 開發板的尺寸規格小得多。(圖片來源:Alorium Technology)

Alorium 還提供了SNOMAKRR10分線板,可將 Snō FPGA 模塊轉換為稍大的 Arduino 外形尺寸板,配備 USB 端口和來自 FPGA 的附加 I/O 分線引腳。Snō FPGA 模塊的一些引腳連到與 Arduino 兼容的 SnōMAKR 分線板擴展排針,而其他引腳連到 USB 連接器對面、沿開發板邊緣分布的一排附加針座(圖 3)。

圖 3:Alorium 的 SNOMAKRR10 分線板可以將該公司的 Snō FPGA 開發板轉換為與 Arduino 兼容的外形尺寸,配備 USB 端口和板載穩壓器,因而使用 USB 電纜就能直接為開發板供電。(圖片來源:Alorium Technology)

XLR8 和 Snō FPGA 開發板都在一個芯片 — IntelMAX 10FPGA 中實現 8 位微控制器及其硬件外設。圖 4 圖解說明了實現方法。

圖 4:XLR8 和 Snō FPGA 開發板都在 MAX 10 FPGA 中以軟內核方式實現AtmelAVR 兼容型微控制器。(圖片來源:Alorium Technology)

AVR 兼容型微控制器內核(圖 4 左下部分)與最初 Arduino 開發板中使用的 AtmelATmega3288 位 AVR 微控制器相同。然而,Alorium 的 AVR 微控制器是以 FPGA 中的軟內核方式實現,而不是另載于獨立芯片之上。

圖 4 中,該微控制器內核上方共有五個 Alorium XB(XB1 至 XB5)。XB 是通過 FPGA 的片上資源實現的 IP 塊。AVR 微控制器可通過可尋址寄存器接口與這些片上 XB 進行通信。XLR8 和 Snō 開發板隨附了預安裝的 XB(也在 GitHub 中提供),它們相當于 Arduino 開發人員經常需要使用的外設,包括:

正交解碼

伺服電機控制

NeoPixel RGB LED 控制

12 位增強型 ADC

浮點數學

請注意,上面列出的最后一種 XB 其實并不是 I/O 外設塊,而是浮點數學加速器。XB 可以是任何類型的硬件加速器,而不只局限于 I/O。

選取任何塊

XLR8 和 Snō FPGA 開發板都可現場更新,方法是選擇不同的 XB(或多個同類 XB),使用 Alorium 的 OpenXLR8 開發流程在 FPGA 中實例化。開發人員也可以使用 Alorium 的 OpenXLR8 流程構建定制 Xcelerator Block(圖 5)。

圖 5:通過 Alorium 的 OpenXLR8 開發流程,設計人員可以使用 Intel 的 Quartus Prime 設計工具構建新的硬件塊,并將其添加到 Arduino IDE。(圖片來源:Alorium Technology)

目前,要構建定制的 XB,設計人員必須具備 Verilog 或 VHDL 硬件描述語言的應用知識,并且熟悉 Intel Quartus FPGA 工具套件 — 尤其是 Quartus Prime Lite Edition 17.1 版和 Mentor Graphics 的 ModelSim 仿真工具。HDL 對于 FPGA 開發必不可少,因為它允許設計人員以一種標準的、定義完善的方式來表達多個任務的并行執行。C 和 C++ 等高級語言 (HLL) 實質上是順序語言。

HLL 編譯器獲取 HLL 源代碼,將其轉換成一長串機器指令序列,通常一次只能執行一個指令。這也是 FPGA 比處理器快得多的原因所在 — FPGA 能夠同時執行數千個任務,只要 FPGA 足夠大。有一些 HLL 編譯器能夠將 C 或 C++ 編寫的代碼轉換為 HDL,然后由常規的 FPGA 工具處理,但目前 Alorium 的 OpenXLR8 設計流程并不包括這些 HLL 編譯器。

然而,一旦使用 HDL 和 FPGA 開發工具設計并調試了 XB,即可像任何其他 Arduino 庫塊一樣在 Arduino IDE 中使用。目前,Alorium 也在為 Arduino IDE 庫開發更多的 XB。

總結

在構建各自的 FPGA 開發板方面,Arduino 和 Alorium Technology 公司都認識到設計人員越來越多地需要這些經濟實惠的開發板提供更多的嵌入式性能。盡管兩家公司采取的策略雖有所不同,但最終目標卻別無二致:努力讓更多嵌入式開發人員更方便地使用 FPGA。在最基礎的層面上,Arduino 和 Alorium 的方法讓硬件設計就像選取塊并運行腳本一樣簡單。

目前,完整的設計流程尚不夠簡單。Arduino 尚未向 HDL 開發人員開放完整的 FPGA 開發流程。雖然 Alorium 的設計流程確實包括 HDL 設計,但要求開發人員必須具備 Verilog 或 VHSL FPGA 設計語言和工具的知識。

不過,這些產品已將大門開啟,至少在理論上可以利用 C 和 C++ 硬件編譯器等其他 FPGA 開發方式。屆時,將可以通過使用 Alorium Technology 和 Arduino 開發的簡單方法將這些功能添加到 Arduino IDE 中,充分發揮 FPGA 的性能。

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

    關注

    1643

    文章

    21956

    瀏覽量

    614024
  • Arduino
    +關注

    關注

    188

    文章

    6491

    瀏覽量

    190087
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Modbus轉Ethernet/IP網關模塊與匯川PLC通訊在網關配置軟件配置

    通過Modbus轉Ethernet/IP網關模塊XD-MDEP100,實現匯川PLC與多種品牌Modbus設備的無縫通信,提高系統效率和穩定性。配置軟件GWModbusBuilder完成網關與PLC通訊設置,
    的頭像 發表于 07-16 09:16 ?1755次閱讀
    Modbus轉Ethernet/<b class='flag-5'>IP</b>網關<b class='flag-5'>模塊</b>與匯川PLC通訊在網關<b class='flag-5'>配置</b>軟件<b class='flag-5'>中</b>的<b class='flag-5'>配置</b>

    采用LabVIEW FPGA模塊和可重新配置I/O設備開發測量與控制應用

    FPGA技術的靈活性整合到測量和控制系統當中。您可以使用LabVIEW 這一專門為測量和自動化控制應用開發所設計的圖形化開發環境,對嵌入在NI R 系列RIO 設備FPGA 進行
    發表于 07-23 08:15

    使用FPGAIP Core實現定制緩沖管理

    本帖最后由 eehome 于 2013-1-5 09:45 編輯 在通信網絡系統,流量管理的核心是緩存管理、隊列管理和調度程序。本文結合使用FPGAIP Core闡述緩存管理的結構
    發表于 11-09 18:43

    如何使用FPGAIP Core實現定制緩沖管理?

    如何使用FPGAIP Core實現定制緩沖管理?
    發表于 04-29 06:01

    如何在Arduino IDE上配置好NodeMCU的開發環境

    0. 環境與預備工作Arduino IDE + NodeMCU + PIR模塊 + Firefox已經在Arduino IDE上配置好Nod
    發表于 11-01 09:17

    Arduino-IDE配置ESP32開發環境的正確方式

    Arduino-IDE配置ESP32-CAM開發環境踩過的那些坑Arduino-IDE配置ESP32開發
    發表于 01-25 07:40

    怎樣去安裝和配置Arduino IDE開發環境

    目錄一、安裝和配置Arduino IDE開發環境1.Arduino 簡介2.軟件安裝及配置二、編譯及燒錄1、
    發表于 01-26 07:39

    FPGAIP核的生成

    FPGAIP核的生成,簡單介紹Quartus II生成IP核的基本操作,簡單實用挺不錯的資料
    發表于 11-30 17:36 ?12次下載

    工業環境的Raspberry PI和Arduino

    Raspberry PI和Arduino板是快速電子成型和家庭DIY應用中非常有名的設備,不過他們在工業環境的功能性和靈活性在很大程度上還有待評估。Raspberry PI和Arduino
    發表于 06-23 11:32 ?4641次閱讀

    FPGA VI不同的Xilinx內核生成器IP設計實現與子模板說明

    。 使用Xilinx內核生成器IP函數實現FPGA VI不同的Xilinx內核生成器IP。LabVIEW使用IP集成節點實現上述函數。函數
    發表于 11-18 05:54 ?1591次閱讀

    Achronix宣布為其eFPGA IP解決方案推出定制單元塊

    Achronix 今日宣布為其eFPGA IP解決方案推出Speedcore custom blocks定制單元塊。Achronix Speedcore eFGPA嵌入式FPGA可加速
    發表于 01-22 16:42 ?1015次閱讀

    如何使用Arduino ESP8266開發板配置標準的Arduino開發環境

    在本教程我們將展示如何配置標準Arduino IDE使用Arduino ESP8266 IDE。Arduino IDE可 以直接加載ESP
    發表于 01-23 13:59 ?48次下載
    如何使用<b class='flag-5'>Arduino</b> ESP8266開發板<b class='flag-5'>配置</b>標準的<b class='flag-5'>Arduino</b>開發<b class='flag-5'>環境</b>

    IP例化和幾個基于FPGA芯片實現的Demo工程

    本文接續上一篇《FPGA雜記基礎篇》,繼續為大家分享IP例化和幾個基于FPGA芯片實現的Demo工程。IP例化IP即是一個封裝好的
    的頭像 發表于 12-24 12:58 ?1454次閱讀

    Arduino IDE配置STM32開發環境和程序燒錄

    Arduino IDE配置STM32開發環境和燒錄前言:最近在制作3D打印機,自己畫了一塊STM32F446的3D打印機板子(RUMBA32),但是在Arduino編譯Marlin固件
    發表于 12-24 19:30 ?9次下載
    <b class='flag-5'>Arduino</b> IDE<b class='flag-5'>配置</b>STM32開發<b class='flag-5'>環境</b>和程序燒錄

    FPGA-串口通信模塊(含IP核)

    ARTIX-xlinx 版本FPGA 串口通信模塊(含IP核)
    發表于 06-20 11:07 ?15次下載