【SoC FPGA學習】一、AC501-SOC硬件初探,基礎掃盲

   少一些功利主義的追求,多一些不爲什麼的堅持。


  本系列學習筆記基於小梅哥SOC Cyclone V SoC開發板。年前朋友便把開發板寄給我玩了,可我手殘的扔到了學校吃灰。沒錯,該系列可能是沒有開發板的學習筆記,hhh…

一、什麼是SoC FPGA

  隨着信息技術的高速發展,各行各業趨向於通過資源整合,併購的方式來獲得更強更穩固的競爭力,芯片架構亦是如此。單“芯”SoC方案(System on Chip)擁有的低功耗、低成本、低佈線面積以及高整合、高性能、高帶寬(內部互聯)的優勢正推動其引領電子系統設計潮流。
  在傳統的芯片架構中,處理器、DSP、FPGA往往都各自獨立,互不相干。當一個系統需要用到處理器、DSP、FPGA中的多個元件時,則採用板級繼承的方式,在一個電路板上設計複雜的電路,將他們通過PCB板走線連接到一起。此種方式設計的系統,不僅設計生成成本高,而且受限於PCB走線和I/O管腳性能的影響,無法實現高帶寬的數據通信。設計師們都期待着有那麼一種芯片,能同時擁有處理器、DSP、FPGA的特點,各個架構的優勢強強聯合,提升電子系統設計的便利性。
  順應時代的發展,亦如當年麻雀雖小,功能俱全的“單”片機出世,各大傳統FPGA廠家都順勢推出了帶有嵌入式硬核處理器的SoC FPGA。如Intel FPGA部門基於不同應用推出的帶有Cortex-A9、Cortex-A53、志強CPU等一系列涵蓋低、中、高端的SoC FPGA器件,Xilinx推出的帶有Cortex-A9、Cortex-A53處理器的ZYNQ系列FPGA。
  同時集成處理器和FPGA的器件具劃時代意義。自此ARM和FPGA的優勢共存一體,ARM的順序控制、豐富外設、開源驅動,FPGA的並行運算、高速接口、靈活定製的特性交錯相融,相得益彰。再加上其內部多條告訴橋接總線,使其數據交互鏈路暢行無阻。
  無論是Xilinx的ZYNQ全可編程系列FPGA,還是Intel的SoC FPGA,其基本架構都是在同一個硅片上集成FPGA和CPU,並通過高速、高帶寬的互聯架構連接起來。本質相同,架構和性能也都非常相似。熟悉一種器件的使用和開發思路,掌握其開發流程,即可很快速的過渡到另一種器件上。

二、關於小梅哥SOC Cyclone V SoC開發板

在這裏插入圖片描述

概述

  AC501-SOC是一款高性能SOC FPGA開發平臺,也是國內爲數不多的基於Intel Cyclone V SoC FPGA器件的開發平臺。
  開發板使用了Intel Cyclone V SoC FPGA 器件,該器件是一款在同一晶片上高度整合了ARM Cortex-A9雙硬核處理器和現場可編程邏輯門陣列(FPGA)的新型異構計算芯片。
  Cortex-A9處理器可以運行嵌入式Linux操作系統,FPGA可以設計專用硬件邏輯加速電路,並與A9處理器使用偏上總帶寬高達128Gbps的總線進行數據交互

要知道,我們之間學習的IMX6ULL不過是Cortex-A7架構!

硬件資源
  • 主控:Intel CycloneV SoC FPGA芯片,型號爲5CSEBA2U19I7
  • 內存:鎂光512MB DDR3內存
  • 網絡:千兆以太網接口
  • FLASH:128Mbit QSPI FLASH
  • 電源:Intel原廠FPGA專用電源系列
  • USB:USB2.0 OTG
配套例程說明

在這裏插入圖片描述
在這裏插入圖片描述

三、Intel SoC FPGA產品線

  針對不同的應用領域,Intel PSG部門設計開發了各種邏輯資源容量和性能的SoC FPGA器件,如下圖所示。

在這裏插入圖片描述

Cyclone V SoC FPGA產品介紹

   Cyclone V SoC FPGA基於臺積電28納米工藝,可提供非常低的系統成本和功耗,其性能和成本優勢適合大批量應用。FPGA部分和前幾代相比,其總功耗降低了40%。具有高效的邏輯集成功能,提供可選的集成收發器。並且支持經度可調的DSP模塊,數字信號處理性能高達150GMACS和100GFLOPS(什麼概念?戳這裏)。
   Cyclone V SoC FPGA提供3大類可選的類型,分別是:

  • 具有基於ARM的HPS的Cyclone V SE SoC FPGA
  • 具有基於ARM的HSP和3.125-Gbps收發器的Cyclone V SX SoC FPGA
  • 具有基於ARM的HSP和5-Gbps收發器的Cyclone V ST SoC FPGA
關於SoC FPGA芯片中的ARM

雙核Cortex-A9處理器,高達925MHz運行頻率。

  • 看起來是ARM - 標準的ARM Cortex-A9架構
  • 用起來是ARM - 可運行標準的ARM Linux系統
  • 開發起來是ARM - 使用標準的ARM開發工具鏈開發
關於SoC FPGA芯片中的FPGA

Cyclone V E FPGA標準架構,基於SRAM的查找表典型架構。

  • 看起來是FPGA - LUT、觸發器、PLL、RAM、乘法器、IO
  • 用起來是FPGA - 使用Quartus 軟件直接編程,流程不變
  • 開發起來是FPGA - HDL編程,Qsys系統,時序約束分析
ARM和FPGA的獨立和關聯

獨立性:

  • FPGA和ARM均可獨立啓動,獨立運行、獨立開發
  • Xilinx的AYNQ7000系列芯片,僅支持ARM先啓動,而後FPGA才能啓動
  • Intel SoC FPGA,ARM和FPGA均可獨立啓動,互不干涉
  • Intel SoC FPGA,甚至一方不上電,另一方都能正常工作
    • 該特性對於工控系統中一些對可靠性要求比較高的應用具有非凡的意義,將一些重要的功能配置在FPGA側,即使ARM部分工作異常,FPGA也能繼續運行,保證系統的安全。

關聯性:

  • FPGA和ARM可以通過偏上告訴總線聯合工作,高速數據交互
  • FPGA可以通過標準的AXI總線連接到ARM上,與ARM進行高速數據交互
  • ARM可以通過標準的AXI總線控制FPGA側的IP,並進行高速數據交互
  • ARM可以直接對FPGA進行配置(相當於下載器下載sof文件到FPGA)

四、小梅哥寄語

1、這是一款集合了FPGA和ARM-Linux嵌入式處理器架構的SoC FPGA混合型器件,合理高效的使用它需要較爲紮實的FPGA編程功底、一定的QSYS/SOPC使用經驗、紮實的C語言基礎功底。FPGA還沒入門,沒有使用過Qsys、C語言水平在2級以下的,不建議貿然嘗試。

2、開發SoC FPGA器件對電腦性能要求較高,需要安裝Quartus 17.1版本軟件,需要安裝Ubuntu虛擬機,根據經驗,i5的2.6G CPU,8G內存,固態系統盤的情況下,完成一次Quartus工程分析和綜合需要7分鐘,全編譯需要約22分鐘,i7-4核2.8G主頻CPU、16G內存,全固態硬盤的情況下,完成一次分析和綜合需要4分鐘,全編譯需要10分鐘。內存太小,CPU主頻太低、低壓版CPU可能開發較爲吃力。

3、開發SoC FPGA需要有較強的心理承受能力,很多問題和知識點都是第一次接觸,各種報錯可能之前見所未見。如無較強的心理承受能力,很可能第一步就跨不出去。

4、開發SoC FPGA需要有踏實的學習態度,例如跟着推薦的教材仔細的學習,勤動手練習。
對於IntelCyclone V SoC,由於發佈時正值Altera被Intel收購,各方面調整,因此導致並未在市場上獲得廣泛的應用。現如今市場佔有率相對於友商Xilinx的Zynq系列,也並不十分高,所以學習這個可能並不能幫你找到好工作。學習之後也不一定能夠投入公司項目應用。
本產品當前主要適合科研院校進行創新項目的開發。請各位網友認清自己的心態,確實有興趣的,再考慮學習。
AC501-SoC開發板初期提供的資料多爲實驗例程加視頻講解,講解內容也主要是操作和開發過程,並不會非常系統的去講解每一個細節,雖然這些在以後會做,但是等做了再說,當前計劃僅依靠兩個綜合性項目展開,將該項目涉及到的知識點做重點講解。兩個項目,一個是基於SoC圖像採集顯示的,一個是數字示波器的。這兩個項目裏面幾乎包含了大部分的SoC開發知識:Qsys搭建,HPS配置,UBOOT生成更新,內核編譯更新,驅動編寫編譯,應用編寫,程序調試等。所以,暫時不要對教程有太高的期望。
以上是小梅哥總結的學習和開發SoC技術的必備條件。作爲指導是否有必要選擇學習和使用SoC FPGA的一個衡量標尺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章