SoC FPGA(System-on-Chip Field-Programmable Gate Array)將FPGA的可程式設計性和靈活性與CPU或其他處理單元的處理能力結合在一個晶片上。
SoC FPGA整合了FPGA架構與處理器至單一裝置,帶來了多面相優勢。不僅有完善的IP可供使用,加速產品開發時程,SoC FPGA同時擁有FPGA的可編程性和嵌入式處理器的計算能力,適用於嵌入式系統、通信系統等廣泛應用,提供了更多選擇和靈活性。此外,SoC FPGA節省了空間和功耗,整合了獨立配置所需的處理器和FPGA硬體,有助於更有效地管理資源。SoC FPGA的發展反映了多核心、異構運算的趨勢,能夠滿足IoT、高速網路、AI硬體加速等應用的需求,提供高效的運算能力。
- 具有基本HDL(Verilog,VHDL,SystemVerilog…)撰寫能力
- 具有系統的概念,可由現成的IP 中,組合出符合規格要求的產品
- 網路
- PCIe(課程Coming soon)
- 資料的串流處理
- 具有驅動程式的基本概念
- 了解 Intel® SoC FPGA Embedded Development Suite(SoC EDS)設計流程並利用 Linux Driver 來控制自行設計的 IP。
- 掌握開發Linux驅動程式設計需要的知識,能分析程式碼,進而修改程式碼,了解驅動程式形成的每個細節。
- 在SoC上讀取/控制FPGA上的IP,並知道如何編寫Driver建構出基本的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
-
- 字元裝置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
▪ 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 擴展槽
有實際硬體,學驅動程式才真正有感!為了傳達正確的嵌入式Linux學習觀念與學習重點,艾鍗獨家設計I/O子板,以擴充原Pi板的功能,並對其中所有軟硬體控制原理進行透徹解說,使你可以透過主題式Lab,實踐嵌入式Linux核心技術與架構。
Jemmy (講師具16年數位IC設計經驗)
▪ 電機工程碩士 ▪ 資深數位IC設計工程師
▪ FPGA/CPLD設計 ▪ Verilog HDL ▪ Gigabit Ethernet網路介面訊號處理
▪ FPGA SoC系統設計 ▪ 數位電路分析設計 ▪ 數位晶片產品開發
─ 演算法與架構並存的時代,用FPGA以更快的速度把產品做出來Collin (講師具18年嵌入式開發與Linux驅動程式設計經驗)
▪ 國立雲林科技大學電機系
▪ Linux 驅動程式 ▪ Embedded linux 開發 ▪ ARM u-boot 開發
▪ 產品開發經驗: Android cell phone, P.O.S(工業電腦)
FPGA研發設計工程師 | 數位IC設計工程師 | FPGA/RTL驗證工程師 | CPLD研發工程師 | 電信/通訊系統工程師| 韌體工程師 | 嵌入式Linux工程師
加速:加速產品上市,並且/或者提升系統效能。
整合:現今的 FPGA 包含晶粒內建處理器、28 Gbps(或更快)的收發器 I/O、RAM 區塊,以及 DSP 引擎等。
總擁有成本 (TCO):雖然相較於同級 FPGA,ASIC 每單位成本或許較低,但建置 ASIC 需要非經常性費用(NRE)、昂貴的軟體工具和專業的設計團隊,而且製造週期長。
I/O 與周邊設備擴充:從目前的處理器新增缺少的周邊設備,例如 LCD 或記憶體控制器,或是新增乙太網路、一般用途 I/O(GPIO)或 UART 連接埠,在系統增加 I/O 通道的數目。
協同處理:將運算密集型演算法,從在處理器執行的軟體移動至 FPGA 中的硬體,大幅增進系統效能。訊號處理、影像處理及封包處理這些應用,在硬體而非軟體執行時,效能大幅提升。
自訂的嵌入式控制器:您自行決定要在自訂的嵌入式控制器包含哪些(及多少)處理器、周邊設備、介面、直接記憶體存取(DMA)通道和記憶體。
多處理器:在多個 CPU 分配工作,加速軟體開發、改善程式碼可靠性,並且提高可維護性。您可以單一 FPGA 內自訂系統,或是增強外部 CPU 或數位單一處理器的方式,設計多處理器系統。