Nexys A7 FPGA 提高學生對數位系統課程的參與度

在 Digilent,我們很榮幸能夠支持世界各地的教育工作者和學生將數位設計理念變為現實。最近的一個例子是土耳其伊斯坦布爾的葉迪特佩大學 (Yeditepe University),Nexys A7-100T FPGA 開發板在電腦工程專業學生的實踐學習中發揮著關鍵作用。

1

彌合模擬與現實之間的差距

在 CSE224:數位系統入門課程中,葉迪特佩大學的學生將學習數位邏輯和硬體設計的基礎知識。為了加深學生的理解,學校將 Nexys A7-100T 集成到實驗環節中。助教將開發板帶入課堂,讓學生直接在真實硬體上測試他們的 Verilog 或 VHDL 代碼。

這種方法產生了深遠的影響。正如該校助教埃金·于斯廷達(Ekin Üstündağ)所解釋的那樣:

“最終,學生們能夠看到模擬和實際應用之間的區別。他們的代碼有時在 Nexys A7-100T 上無法按預期運行。他們能夠瞭解到自己做錯了什麼,或者代碼中存在哪些缺陷。”

這種即時回饋迴圈對於説明學生掌握硬體行為的細微差別非常有價值,而單靠模擬往往無法傳達這一點。

無縫過渡和可擴展訪問

葉迪特佩大學之前使用的是 Nexys 4 主機板,目前已順利過渡到 Nexys A7-100T。兩個平臺之間的相容性和一致性使該大學能夠在不影響課程的情況下擴展硬體可用性。

“我們很高興能將新產品的硬體分發給每位元學生。尤其值得一提的是,它們與我們之前使用的 Nexys4 沒有任何區別。”

這種可擴展性確保每個學生都有機會直接接觸硬體,從而營造更具包容性和有效性的學習環境。

為什麼選擇 Nexys A7

Nexys A7-100T 後來被 Nexys A7 取代,後者繼續提供相同的教育價值和強大的功能集。

Nexys A7 仍然是學術環境的絕佳選擇,這得益於:

  • 豐富的板載外設
  • 全面支持 AMD Vivado 設計套件,包括免費標準版
  • 豐富的文檔和社區支持
  • 在數位設計教育中被證明是有效的

您可以在 Digilent Nexys A7 商品頁面上瞭解有關當前主機板的更多資訊。

2

 

激勵下一代工程師

葉迪特佩大學對 Nexys A7-100T 的使用,充分體現了硬體實踐經驗如何提升工程教育。通過超越模擬,深入實際測試,學生們對數位系統有了更深入、更實用的理解,為他們未來在嵌入式系統、硬體設計等領域的職業發展奠定了基礎。

Pmod 接口的開關頻率:高頻寬示波器的優勢

Digilent 最近宣佈推出Analog Discovery Pro 5000 系列的兩個新成員 ADP5470 和 ADP5490,它們都是四通道混合信號示波器,提供的頻寬和取樣速率比 Digilent 之前發佈的任何同類示波器都要高得多。在本文中,我們將利用這些頻寬在 FPGA 板上進行一些測試。 

2

在 FPGA 領域,有個常被問到的問題就是引腳切換的速度有多快,因為這直接影響到資料傳輸到電路板或從電路板傳輸出的最大速度。這個最大速度受很多因素影響,包括連接器和 FPGA 引腳之間的 PCB 走線長度、是否有限流保護電阻,以及連接器的品質。與其他常見的連接器(像是 SYZYGY 或 FMC)相比,Pmod 連接器雖然設計和使用較為簡便,但其信號速度有限。

因此,我們進行了一個專案,透過連接到序列埠的簡單命令介面來公開時鐘設定,以可控頻率切換 Arty S7 上的 Pmod I/O 引腳。這樣可以通過 Python 腳本來控制序列埠,穩定地配置時鐘,同時使用 ADP5490 記錄時鐘脈衝。這篇文章主要介紹 ADP5000 設備,因此 Arty S7 項目的細節在這裡不做深入探討,但我們幾周前發佈了一篇文章對此有更詳細的說明:VCOs, MMCMs, PLLs, and CMTs – Clocking Resources on FPGA Boards。

為了讓數位信號能正確地從一個設備傳輸到另一個設備,輸出信號必須高於 VOH 並低於 VOL。例如,對於 3.3V LVCMOS 邏輯(我們 FPGA 電路板常用的),信號必須從 0.4 V 以下上升到 2.4 V 以上,才能算作有效的上升沿。

3

Table 8, SelectIO DC 輸入和輸出電平,來自DS189, Spartan 7 AC/DC Switching Characteristics, 描述各種邏輯標準的邏輯閾值。請注意,這些值是針對直流信號定義的,當引腳快速切換且晶片放置在 PCB 上時是否可以實現這些值取決於電路板的模擬特性 - 我們即將測試它。 

通過示波器觀察時鐘信號頻率的增加,我們可以看到,一旦時鐘運行速度超過 [未知頻率],LVCMOS33 電壓水準就不再滿足要求。 

WaveForms 的游標功能讓您一眼就能輕鬆發現諸如“此信號是否超過此閾值?”之類的信息。在您即將看到的螢幕截圖中,我們將游標(紅線)放置在幾個常見的閾值電壓水準上,以便我們確認我們的輸出信號是否符合規格。 

4

輸出信號彼此之間具有不同的相移,10 MHz。預期相移在 C1 和 C2 之間為 ~0 度,在 C1 和 C3 之間為 45 度,在 C1 和 C4 之間為 90 度。我們可以看到這些非常接近。 

請注意,我們在這些測試中使用的游標與 AMD 上面概述的閾值不匹配。

5

相同的時鐘頻率為 60 MHz – 斜率開始變得重要,儘管可以看出閾值仍然受到尊重。請注意,諧波仍然存在,即使它們對方波邊緣的形狀影響較小。您可以在這裡看到,我們正在捕獲這些波的多個不同諧波,一直到 420 MHz 的第 7 次諧波。

6

在高頻下,情況可能會變得奇怪。這裡我們看到 75 MHz 的輸出,雖然它似乎能夠跟上並超過閾值,但幅度似乎也比預期高得多。平滑的過沖?

7

為了真正瞭解 FPGA 部分之外的硬體可能產生的差異,讓我們看看這個 15 MHz 信號,比較 JC1 JA1 輸出。其中一個有串聯電阻,而另一個沒有。順便提一下,示波器到數位功能允許我們在邏輯分析儀樣式的視圖中解釋類比信號,具有可調閾值,這對於此類測試也非常有用。

雖然它在調試 FPGA 項目時非常有用,但我的 AD3 沒有輸入頻寬來覆蓋此類測試所需的頻率範圍——因此需要更大的示波器。至於原因,時鐘信號的 FFT 視圖(如上圖所示)向我們展示了方波的一個重要特性,即它們的許多諧波頻率,這些諧波頻率會影響時鐘邊沿的品質。示波器可能需要捕獲許多這樣的諧波,才能正確反映其驅動的設備所看到的信號,許多時候是所討論信號的“基頻”。 

我需要補充一個重要警告:所有這些測試都是在一個特定的電路板和項目上完成的,除了連接到 I/O 的示波器外沒有其他外部電路。一旦 Pmod 連接到 Pmod 埠,結果就會有所不同。所以你的里程可能會有所不同。 

如果你對這些話題感興趣,你可能也會喜歡我們發佈的Eye Diagrams in WaveForms這篇文章, 或者這篇較早的文章,介紹如何通過自訂波形中的諧波組合來生成近方波: Using the Analog Discovery 2 to Measure Harmonics in a Signal.

查看DIGILENT網站的Analog Discovery Pro 5000 系列頁面,您可以在那裡找到更多有關其規格的參考資料和資訊。

 

 

應用 Digilent Pynq-Z1 FPGA開發板設計神經網路 FPGA 加速器 IP

本文主要講述一個內建 Python 介面的 FPGA 神經網路推斷過程加速器 IP ,透過這個工具用 Python 快速產生一套針對特定稀疏連接優化的神經網絡加速器 HDL 設計。產生的語言為 Systemverilog hdl。v1.0中實現功能包括:任意連接方式(前向/前向跨層)、並行程度可設(整數倍矩陣乘法行分片)、tanh 啟動函數。

相較於軟體設計,硬體設計要考慮問題會更多。本文做 IP 設計以簡化不同參數的神經網路加速器設計過程。透過 Python 語言產生 HDL,便於Python 研究者在 FPGA 算法加速方面的設計。可達到以下的創新特色:

1. 基於 Python語言,對日常用 Python 做演算法模擬的研究者提供更為友好的方式
2. 靈活的可配置性
3. 針對特定的參數自動進行結構優化

(本文為2017 DDC中國區選拔賽參賽作品)


神經網絡FPGA加速器IP
http://www.digilent.com.cn/project/details/135.html

o 1bigcv5oohri17cn43s1p09v9p2v

 

 

o 1bigcvn8i13j416telue3071bk439

 

o 1bigcvhbm37oe44gnsk2p1vbq34

 

基於深度學習的複雜地形輪腿式移動探測機器人

image 20161205 gnimox8v5ei6o

 

靈感背景

作為科幻迷,大家或多或少都看過不少人類幻想中的機器人的應用,在《普羅米修斯》、《阿凡達》、《星球大戰》等電影中,都少不了技術先進,想法奇特的機器人的幫助,特別是在惡劣環境的探測和特定執行任務中,例如《普羅米修斯》中自動搜索迷宮的探測飛行器,《阿凡達》中“人機合一”的戰甲,《星球大戰》中可愛聰明的R2-D2機器人……在這些想法的啟發下,不少狂拽酷炫的科技作品也相繼湧出。 我們項目就是在這種背景下萌生的想法,做一款新奇的機器人,或許可以應用在荒野星球的開荒探測呢~當然,這個只是個願景,我們項目主要做的是探究改進機器人的越障能力,即全地形適應能力,還有利用時下正火的 deep learning 工具 TensorFlow 增加探測機器人的自主智慧,適應未知環境自主探測任務需求。這就是我們的大膽嘗試的項目—基於深度學習的複雜地形輪腿式移動探測機器人,並且在江蘇省虛擬儀器競賽結束後,我們又進一步完善了作品,增加了激光雷達的新功能,實現初步自主移動功能。

 

設計方案

基於深度學習的複雜地形輪腿式移動探測機器人,底盤運動方式採用輪腿式移動方案,輪腿結合,利用輪式運動連貫特性,節省能量並且控制簡單,並且結合腿式運動方式良好的越障能力,採用複合式運動控制,綜合兩種運動方式在各個方面的優點,提高運動適應能力,可以穩定的移動和攀爬凸起障礙。 機器人的智慧化是利用 deep learning 深度學習,增加機器人的圖像識別能力,可使機器人識別其所看到的東西。我們採用基於ImageNet數據集的Inception V3模型,其Top5的識別率可達96.5%。在參加比賽時,我們的機器人只能達到遙控移動和遠程監控識別,經過最近的優化升級,我們增加了激光雷達,機器人可以完成自主避障,自主搜尋探測功能。

在後續的改進方案裡,我們還要加入激光雷達地圖建立和SLAM自主導航,並且將識別到的物體標記在地圖中,另外我們還有設計將彈跳功能加入機器人,完成全面的自主智慧複雜環境探測器。

 

image 20170120 5881a0541b20e

 

使用的軟硬體清單

  • 硬體清單:
    • 核心板 / LabVIEW for Raspberry Pi2 DIGILENT套件 X1
    • 控制器 Arduino Nano X1
    • 電機驅動板 L298N 驅動板 X1
    • 攝影鏡頭 羅技(Logitech)C270 X1
    • 雷射雷達 rplidar A1 X1
    • 無線網卡 EDIMAX EW-7711UAN X1
    • 遙控器套件 天地飛WFT06A X1
    • 電源 12V轉5V5A,4USB X1
    • 鋰電池 12V 3000mAh 18650鋰電池組 X1
    • 電機 LX31WG雙軸渦輪蜗杆減速電機 X1
  • 軟體清單
    • 影像服務軟體 MJPG-streamer
    • 機器學習平台 TensorFlow
    • 物體識別模型 Inception V3
    • 避障演算法 Vector Field Histogram
    • 上位機軟體 LabVIEW

 

系統組成

本設計由以下幾個系統組成:底盤底層控制系統、遠端監控系統、機器學習物體識別系統、運動路徑規劃系統,各系統相互整合在整個機器人系統中。 系統硬體採用了上位機PC、樹莓派和Arduino,搭配雷射雷達、攝影鏡頭、電機驅動板等配件,實現完整的機器人系統功能。在整個系統的搭建中,大多是以開源項目的應用為主,結合流行的開源應用進行整合。

底盤控制系統

底盤的運動方案採用的是 Ackerman 轉向結構,由前後貫通橋提供四驅動力,利用前橋轉向舵進行轉向控制,現在的商用車和大多數遙控車車模也是採用此種轉向機構。在此設計中,我們採用了恆冠電動遙控車模前後橋波箱總成,利用 KST 大扭力舵機為轉動副提供轉向動力。巡檢機器人應該兼顧地形通過能力和移動速度,為此我們選用了12V、減速後 60rpm、轉動力矩達 8kg·cm 的自鎖式渦輪蜗杆直角減速直流電機,可以適應一定坡度和高度的障礙物趴越,也可以擁有較快的移動速度。

在輪式運動中,我們並沒有採取通用圓形橡膠輪,而是自行設計了輪腿式三角結構輪,利用 3D 打印技術打印而成。四個腿式結構結構彼此相差120°,彼此輪子構成穩定的三角結構,腿式運動方式具有良好的越障能力,並且輪式運動結構簡單,運動連貫,節省能量並且控制簡單,採用複合式運動控制,綜合兩種運動方式在各個方面的優點,兼顧了運動穩定性和運動越障性能。

底盤的運動控制方式有兩種:遙控器手動控制和自主避障導航控制。手動方式中,遙控器採用天地飛 WFT06A 航模遙控器,利用 Arduino 擷取遙控器控制訊號,直接將訊號控制透過處理分析控制電機驅動板和舵機進行運動。在自主避障導航控制中,Arduino 接收來自樹莓派的底層控制指令,從而控制底盤運動,這種控制方式也使機器人控制有了更好的擴充性。

image 20170120 5881a3de97877

image 20170120 5881a4a5457f5

  image 20170120 5881a4f8333b5

image 20161205 i259cyb4g7esm

 

遠端監控系統

遠程探測器的必備技能就是遠程監控系統,在本項目中,我們選用了比較經典的開源影像服務器軟體 MJPG-streamer。MJPG-streamer是一個輕量級的影像服務器軟體。一個可以從單一輸入組件獲取圖像並傳輸到多個輸出組件的命令應用程序。該軟體可應用在基於 IP 協議的網路中,從網路攝影鏡頭中獲取並傳輸 JPEG 格式的圖像到瀏覽器,甚至可以是運行了 TCPMP 播放器的 windows 移動設備。主要針對 RAM 和CPU 資源有限制的嵌入式設備而編寫的,為了減少 CPU 的負擔,它充分利用了網路攝影鏡頭的硬體壓縮能力,主要通過輸入插件,從攝影鏡頭擷取圖像後,再透過網頁輸出插件將圖像輸出,故其對 CPU 的佔用率較低。這款工具源代碼簡潔,註釋清晰。組件功能明確,銜接清晰。使用Linux C語言進行開發,可移植到不同的計算機平台,也可以在根據GPL v2的條款下進行改進和發行。

MJPG-streamer採用模組化的設計方法,以功能模組為單位進行描述,這些功能模組成為plug-in。軟體中定義好了各組件的輸入、輸出,以及組件之間的銜接關係。MJPG-streamer 最主要並且最常用的組件是 input_uvc 輸入組件和 output_http 輸出組件。其他組件包括input_control、input_file、input_testpicture、input_gspcavl、output_autofocus、output_file、out_viewer 等。關於 MJPG-streamer 的使用教程可以參考《樹莓派使用 MJPG-Streamer 實現網路監控》,關於MJPG-streamer的原理了解和技術實現可以參考《開源軟體 mjpg-streamer簡要分析》。

在我們項目中我們對 MJPG-streamer 程序進行了改寫,使得遠端監控系統可以讀取網路攝影鏡頭影像,並同時通過 http 網頁推流發佈到遠端監控系統上位機監控台和通過緩存文件形式將圖像傳輸到深度學習物體識別模型中進行分析識別。MJPG-streamer本身就是視頻服務器軟件,通過 output_http 組件可以使監控影像進行服務器發佈。 在 LabVIEW 上位機中,我們內嵌了 IE 核心的 WebBrowser ActiveX 控制項,透過讀取樹莓派影像服務器獲取得到網頁監控影像。通過 ActiveX 控制項的打開自動化初始化 WebBrowser 控制項,獲得 ActiveX 控制項的自動化句柄,並且調用資源導航到監控網頁,達到遠端監控效果。

image 20170120 5881a70c4bd14

image 20170120 5881a6c80c0e4

image 20170120 5881a6aa7cd5e

機器學習物體識別系統

時下最火的莫過於機器學習,並且以深度學習為主導的模型應用在圖像識別、圖像分割、語義理解等多個方向,在機器視覺,也就是物體識別方面的進展更是突飛猛進。我們利用 tensorflow 來搭建探測機器人物體識別模組,將圖像識別功能架載在裝有 Linux 系統的樹莓派上,使得我們的複雜地形探測器具有物體識別的實用功能。我們利用了 Google 開源的物體識別演算法 Inception V3 模型,基於 ImageNet 數據集進行物體識別,且可根據需要自行調整數據集。

Inception V3 模型是基於 TensorFlow 平台的,所以需要在樹莓派上搭建 TensorFlow 平台。 TensorFlow 的安裝說明很容易找到,但因為需要運行在樹莓派上,基本上可以找到的編譯好的安裝包是不能直接安裝在樹莓派上,直接用樹莓派從源碼安裝也會有依賴項等解決麻煩,並且耗時耗力。

我們尋找了 GitHub 上別人編譯好的適合樹莓派的 TensorFlow— tensorflow-on-raspberry-pi,建立過程可詳見上述連結。TensorFlow 只是應用工具,應用物體識別功能需要加載模型,下載 Inception V3 模型以及 ImageNet 數據集,只需應用 TensorFlow/models/image/imagenet 模型中的 classify_image.py 即可測試基於機器學習的物體識別功能。我們參考 example 自行編寫了python 程序,將上節所述的影像流擷取的圖像傳遞進模型,等待模型計算即可得到 Top5 相似的識別標籤以及命中率,並且與上位機進行交互,接收識別指令和反饋識別結果。

image 20170120 5881a92486c90

 

運動路徑規劃系統

在進一步完善項目過程中,我們發現機器人自主化程度是軟肋,需要提升,因為我們在比賽完後進一步完善作品,增加了360°雷射雷達,獲取機器人周圍的環境訊息,並將數據用來做機器人自主避障功能。 我們選用了 SLAMTEC 的 360°雷射雷達 RPLidar A1,識別距離可以達到 4 公尺左右,識別精度 0.9°。在此項目中,深度學習用來做機器人移動環境物體識別檢測,利用 A1 雷射雷達獲取機器人周圍環境訊息,進行避障和導航。

RPLidar 有封裝好的 API 介面進行調用,可以簡單方便的獲取雷射雷達的數據。在項目中,我們利用多線程工作、影像服務器、機器學習物體識別和雷射雷達數據擷取傳輸均為多線程工作,統一利用TCPServer做通訊介面,與上位機監控軟體做訊息傳遞。我們利用 TCPServer+StreamRequestHandler,重構 handle 方法,進行雷射雷達數據擷取,並傳輸到上位機進行避障算法,再調用classify_image 模型,將擷取圖像傳遞到模型進行分析,並將模型識別結果,通過 TCPServer 發送給監控終端。

機器人自主避障路徑規劃應用的是LabVIEW Robotics中的VFH算法,將雷射雷達數據進行分析計算,得到向量場直方圖,然後通過分析找出最適合的縫隙進行路徑規劃。Vector Field Histogram原理圖見圖2。 我們利用 LabVIEW 自帶的例程 LIDAR Guided Robot example 進行了改寫,透過 TCP Socket 獲取來自樹莓派的激光雷達數據,然後傳遞給 Simple Vector Field Histogram VI 進行分析處理,並將路徑規劃結果發佈到底盤運動控制器。

image 20170120 5881aa4cf28c7

 

系統特點

1. 採用地面輪腿式移動形式,高效的輪式運動和靈活的腿式運動相結合,具有較高的地面適應力和越障能力;
2. 利用 LabVIEW 上位機進行遠程的視頻監控,便於控制移動及數據處理,增強了機器人探測的可控性;
3. 嘗試先進技術應用,利用 Tensorflow 機器學習物體識別模型,增加未知環境探測器的智能性,還可自行擷取數據,達到特殊場合的應用,讓探測器更加智能;
4. 利用雷射雷達和VFH算法進行機器人自主避障路徑規劃,擁有自主移動和自主探測能力,堪稱探測機器人標配的兩大功能;
5. 系統化方案設計,從採集、處理、運動到監控系統化設計合理。


基于深度学习的复杂地形轮腿式移动探测机器人项目的DIY动手指南
http://www.digilent.com.cn/project/diy/122.html

基於 FPGA 的反饋神經網路硬體實現

project136

 

目前對人工神經網絡實現技術的研究主要有軟體實現與硬體實現。軟體模擬神經網路的方法存在著速度慢與並行程度低的問題,不能滿足神經網路即時計算的需求。此外,軟體模擬實現的方法需要龐大體積的電腦支援,就更不適合應用於嵌入式場景。

FPGA有“液體硬體”之稱,是可重構處理單元的典型代表,具有規則的可編程結構,可實現各種邏輯功能,屬於硬體可編程。FPGA 具有很強的運算能力,具有極大的靈活性,而且隨著 FPGA 容量的進一步增大,功能進一步增強,並可透過整合以降低系統成本。

創新 FPGA 晶片具有面積小、運算速度快、造價低、可編程、靈活性好、可重構、設計週期短等優點,這些都是用 FPGA 實現神經網路硬體的優勢。 項目以最短路徑問題為例,建立神經網絡模型,並對其進行軟體模擬和硬體設計。

本設計採用 System Generator 與 Vivado 聯合設計,用 System Generator 進行系統模擬,產生模型化的數位系統後,將設計轉換為硬體電路,最後在Vivado 中完成模擬、綜合、實現及晶片配置。以 Xilinx Nexys4 DDR 開發板為硬體平台,實現神經網路的硬體實現,並選用數碼管顯示最終運算結果。實驗表明使用 FPGA 實現此算法具有收斂速度快、功耗小等特點。

要想神經網絡能夠在實際中進行有效的應用,基於 FPGA 的神經網路實現技術就必須達到能夠支持大規模的神經網路模型的計算要求,而且還要盡可能地縮短神經計算的時間,而如何使得 FPGA 有效支持大規模的神經網路模型的計算還有待研究。
(本文為 2017 DDC 中國區選拔賽參賽作品)


基于FPGA的反馈神经网络硬件实现 
http://www.digilent.com.cn/project/details/136.html

和澄科技 Haley Technology

電話 │ 886-3-5790380
傳真 │ 886-3-5790370
信箱 │ sales@haleytech.com
地址 │ 新竹市關新路27號18樓之2

              

 

 

M有任何問題嗎? Line 我們最快! 

產品搜尋