fbpx

P 728x90 113

soc fpga banner

★ 課程採【實體遠距同步】全台開課並提供錄影補課,歡迎免費洽詢!
What is SoC FPGA

SoC FPGA(System-on-Chip Field-Programmable Gate Array)將FPGA的可程式設計性和靈活性與CPU或其他處理單元的處理能力結合在一個晶片上。

soc fpga course img1

Why SoC FPGA

SoC FPGA整合了FPGA架構與處理器至單一裝置,帶來了多面相優勢。不僅有完善的IP可供使用,加速產品開發時程,SoC FPGA同時擁有FPGA的可編程性和嵌入式處理器的計算能力,適用於嵌入式系統、通信系統等廣泛應用,提供了更多選擇和靈活性。此外,SoC FPGA節省了空間和功耗,整合了獨立配置所需的處理器和FPGA硬體,有助於更有效地管理資源。SoC FPGA的發展反映了多核心、異構運算的趨勢,能夠滿足IoT、高速網路、AI硬體加速等應用的需求,提供高效的運算能力。

成為SoC FPGA Designer需要具備什麼條件
  • 具有基本HDL(Verilog,VHDL,SystemVerilog…)撰寫能力
  • 具有系統的概念,可由現成的IP 中,組合出符合規格要求的產品
    • 網路
    • PCIe(課程Coming soon)
    • 資料的串流處理
  • 具有驅動程式的基本概念

soc fpga course img2

課程目標
  1. 了解 Intel® SoC FPGA Embedded Development Suite(SoC EDS)設計流程並利用 Linux Driver 來控制自行設計的 IP。
  2. 掌握開發Linux驅動程式設計需要的知識,能分析程式碼,進而修改程式碼,了解驅動程式形成的每個細節。
  3. 在SoC上讀取/控制FPGA上的IP,並知道如何編寫Driver建構出基本的SoC FPGA嵌入式系統軟體。

課程大綱
階段一 : SoC FPGA 嵌入式系統晶片開發

➢SoC FPGA - 嵌入式系統晶片開發實務

  • 硬體設計- 設計你的 SoC FPGA 晶片
    • Intel Cyclone V SoC FPGA 簡介
    • Intel Avalon Bus Interface Protocol 介紹
    • 利用 Platform Designer 軟體整合 Embedded Peripherals IP 來設計系統電路

    • 利用 Intel Qsys 整合軟體設計 SoC system
    • LAB:使用 Platform Designer 整合 GPIO design 至 FPGA,並利用 System Console 做系統驗證

  • 將自行設計的 IP 利用 Platform Designer 整合至 Intel SoC FPGA,並和 Linux Driver 結合,再利用 Linux APP 做控制

    • LAB: GPIO Driver 控制 SoC FPGA 開發板上的 LED

階段二 : Linux驅動程式設計
  • 字元裝置Driver
  • Linux Misc Device
  • Linux GPIO 驅動程式 for LED, Button,Relay
  • Raspberry Pi 3 功能說明與BCM283x 使用說明
  • Pi 擴充卡硬體功能介紹與電路圖接腳說明
  • Linux 中斷註冊 & 中斷控制器HAL層架構
  • Bottom Halves (Tasklet & Work Queue)
  • 進階字元Driver : 
    • Non- blocking I/O : 使用Wait Queue & completion 機制
    • kernel 對UserSpace通知: SIGIO 信號非同步通知,call_usermodehelper()
  • Kernel Timer List (Jiffies, timer ticks) for LED 閃爍
  • Linux Serial port 驅動程式 for Bluetooth 模組
  • Linux Platform Device & Platform Driver 架構
  • Linux Device Tree
  • Linux SPI Client驅動程式 for ADC Driver (MCP3008)
  • Linux IIO Driver(Linux Industrial I/O Subsystem)
  • Linux SPI Bus master 驅動程式 for BCM2835 SPI controller
  • Linux I2C Client驅動程式 for EEPROM
  • Linux I2C Bus master驅動程式 for BCM2835 I2C controller
  • Linux User Space Driver

課程使用 Intel SoC FPGA 開發板 ( 內含Dual Core ARM Cortex-A9@800MHz) 

FPGA DE10 Nano Kit

DE10-Nano Kit 

 

  • Intel SoC FPGA

    ▪ Programmable FPGA

    • Intel Cyclone® V SE 5CSEBA6U23I7N (110K LEs)
    • 序列配置器件 – EPCS64 (revision B2 or later)
    • 內建USB-Blaster II 電路,JTAG 模式
    • HDMI輸出,相容於DVI v1.0 及 HDCP v1.4
    • 2個按鈕
    • 4個撥碼開關
    • 8個綠色使用者 LED 燈
    • 來自時鐘產生器的三個50MHz 時鐘源
    • 兩個40-pin 的擴展槽
    • 一個 Arduino 擴展槽 (相容Uno R3),可連線Arduino 背板。
    • 一個10-pin 的模擬輸入擴展槽(跟Arduino的模擬輸入埠是複用關係)。
    • A/D 轉換器, FPGA端4-pin SPI 介面

    ▪ ARM Hard Process System

    • 800MHz ARM Cortex-A9 雙核處理器
    • 1GB DDR3 SDRAM (32位資料匯流排)
    • 支援 1G 乙太網 PHY 的 RJ45 介面
    • USB OTG 埠,採用USB Micro-AB 型連線器
    • Micro SD 卡槽
    • 加速計(G-Sensor, I2C介面+中斷 )
    • 一個串列埠轉 USB口,採用 USB Mini-B 型介面
    • 一個熱啟動按鈕和一個啟動按鈕
    • 一個使用者按鈕和一個使用者LED燈
    • LTC 2x7 擴展槽
使用獨家研發Raspberry Pi I/O v3擴充板

有實際硬體,學驅動程式才真正有感!為了傳達正確的嵌入式Linux學習觀念與學習重點,艾鍗獨家設計I/O子板,以擴充原Pi板的功能,並對其中所有軟硬體控制原理進行透徹解說,使你可以透過主題式Lab,實踐嵌入式Linux核心技術與架構。

業界師資團隊
 
FPGA teacher

Jemmy   (講師具16年數位IC設計經驗)

▪ 電機工程碩士  ▪ 資深數位IC設計工程師

▪ FPGA/CPLD設計  ▪ Verilog HDL  ▪ Gigabit Ethernet網路介面訊號處理

▪ FPGA SoC系統設計  ▪ 數位電路分析設計  ▪ 數位晶片產品開發  

─ 演算法與架構並存的時代,用FPGA以更快的速度把產品做出來
 
FPGA teacher

Collin   (講師具18年嵌入式開發與Linux驅動程式設計經驗)

▪ 國立雲林科技大學電機系

▪ Linux 驅動程式  ▪ Embedded linux 開發  ▪ ARM u-boot 開發

▪ 產品開發經驗: Android cell phone, P.O.S(工業電腦)

 
職涯方向

FPGA研發設計工程師  | 數位IC設計工程師 | FPGA/RTL驗證工程師 | CPLD研發工程師 | 電信/通訊系統工程師| 韌體工程師 | 嵌入式Linux工程師

學習本課程的人也學習了...

課程諮詢

Q&A
FPGA 又稱現場可程式閘陣列,是一種半導體積體電路,可提供客製化的電力功能性,以加快重要工作量的速度。 FPGA 是一種半導體 IC,無論是設計工程師、印刷電路板組裝過程,或者甚至是設備運送給「現場」客戶後,也可變更裝置內大半的電氣功能。
SoC FPGA 裝置將處理器與 FPGA 架構同時整合至單一裝置。 將處理器的高階管理功能和嚴苛的即時作業、極端的資料處理作業,或是 FPGA(可現場程式化閘道陣列)的介面功能,全部整合於單一裝置,可以打造出甚至更強大的嵌入式運算平台。 這樣一來,處理器與 FPGA 之間的整合能力更強、功率更低、主機板更小,通訊頻寬更高。它們還包含一套豐富的周邊裝置、晶片內建記憶體、FPGA 式邏輯陣列,以及高速收發器。
靈活性:每次啟動裝置電源時,皆可變更 FPGA 功能。

加速:加速產品上市,並且/或者提升系統效能。

整合:現今的 FPGA 包含晶粒內建處理器、28 Gbps(或更快)的收發器 I/O、RAM 區塊,以及 DSP 引擎等。

總擁有成本 (TCO):雖然相較於同級 FPGA,ASIC 每單位成本或許較低,但建置 ASIC 需要非經常性費用(NRE)、昂貴的軟體工具和專業的設計團隊,而且製造週期長。
嵌入式系統運用 FPGA 的方式很多。一般用途包括:

I/O 與周邊設備擴充:從目前的處理器新增缺少的周邊設備,例如 LCD 或記憶體控制器,或是新增乙太網路、一般用途 I/O(GPIO)或 UART 連接埠,在系統增加 I/O 通道的數目。

協同處理:將運算密集型演算法,從在處理器執行的軟體移動至 FPGA 中的硬體,大幅增進系統效能。訊號處理、影像處理及封包處理這些應用,在硬體而非軟體執行時,效能大幅提升。

自訂的嵌入式控制器:您自行決定要在自訂的嵌入式控制器包含哪些(及多少)處理器、周邊設備、介面、直接記憶體存取(DMA)通道和記憶體。

多處理器:在多個 CPU 分配工作,加速軟體開發、改善程式碼可靠性,並且提高可維護性。您可以單一 FPGA 內自訂系統,或是增強外部 CPU 或數位單一處理器的方式,設計多處理器系統。
引用自Intel®官網