FPGA 架構入門:FPGA 如何運作及其重要性
1 分鐘
- 1. 可配置邏輯區塊(CLB):
- 2. 互連/路由結構
- 3. I/O 區塊(IOB)
- 4. DSP 切片(數位訊號處理單元)
- 5. 區塊 RAM(BRAM)
- 6. 時脈管理區塊
- 7. 硬式 IP 核心
- 8. 配置記憶體
- 總結:
數位電路的實現通常使用 ASIC 或閘陣列型 IC。然而,還有一種可程式化的邏輯功能 IC,只需透過程式設計即可實現任何邏輯功能,這些被稱為 PLD(可程式化邏輯裝置)。市面上有許多種類,但我們今天主要聚焦於現場可程式化閘陣列(FPGA)。與固定功能的積體電路(IC)不同,FPGA 允許工程師在製造後重新配置硬體本身。現在,我只需使用一顆 FPGA,就能實現從訊號處理到機器學習與嵌入式系統等多種不同電路。但 FPGA 內部究竟是什麼?它與全球其他 IC 有何不同?要回答這個問題,我們必須深入了解 FPGA 的內部架構。本指南將介紹 FPGA 架構的關鍵元件,這些建構模組使其得以實現客製化的數位系統。
1. 可配置邏輯區塊(CLB):
每顆 FPGA 的核心都是可配置邏輯區塊(CLB)。這些是實現數位邏輯的基本單元。在 CLB 內部包含:
- 查閱表(LUT):這些是用來實現邏輯功能的小型記憶體結構。一個 4 輸入 LUT 可表示任何 4 輸入的真值表。
- 正反器/暫存器:正反器用於儲存單位元資料並建立循序電路。
- 多工器:在 CLB 內部路由訊號,用於從不同 LUT 輸入中選擇其一。
每個 CLB 可被配置為執行基本邏輯運算(AND、OR、XOR)。幾乎所有複雜的組合與循序功能都能在這裡實現。透過組合數千個 CLB,設計師可建構數位電路,如加法器、多工器與計數器。
2. 互連/路由結構
若 CLB 彼此隔離,FPGA 將毫無用處。互連結構負責連接 CLB、I/O 區塊、記憶體及其他元件。除了可程式邏輯(CLB)外,還有可程式開關與佈線通道。這些互連也在程式碼中進行設定,連接內部不同區塊,所有控制皆由位元流檔案完成。互連的彈性正是 FPGA 強大之處,就像晶片內的高速公路系統,可依設計需求動態重新路由。
3. I/O 區塊(IOB)
由於 FPGA 安裝在 PCB 上,必須與外部世界通訊,I/O 區塊(IOB)便負責此任務。這些單元用於將計算結果傳送至外部裝置,並從感測器接收資料。每個 I/O 區塊皆可程式化,支援多種電壓標準(如 LVCMOS、LVTTL、LVDS)。這些輸入輸出區塊依驅動強度、轉換速率及上拉/下拉電阻進行區分。部分現代 FPGA 亦具備高速收發器,用於 PCIe 或乙太網路。IOB 讓 FPGA 在混合環境中高度靈活,能與舊系統介接。
4. DSP 切片(數位訊號處理單元)
現代 FPGA 內建專用 DSP 切片,以加速密集算術運算。包含乘加(MAC)單元,用於快速算術運算。具備 DSP 功能的 FPGA 支援定點與浮點運算。
相較於使用 LUT(速度較慢且效率較低),DSP 區塊是專為速度設計的硬體電路。例如在音訊或視訊處理管線中,DSP 區塊可高速處理濾波與轉換。
5. 區塊 RAM(BRAM)
另一項關鍵特色是晶片內記憶體,通常稱為區塊 RAM(BRAM)。其分散於 FPGA 結構中,可配置為單埠或雙埠記憶體。容量從數 KB 到數 MB 不等,視 FPGA 系列而定。對於資料緩衝、查閱表儲存或 FIFO 實作非常有用。在影像緩衝、協定處理或數位濾波等應用中,BRAM 提供比外部 DRAM 更低延遲的記憶體,且更接近邏輯電路。
6. 時脈管理區塊
為確保 FPGA 內部所有元件同步運作,時脈管理至關重要。因此 FPGA 內建時脈管理電路,包含鎖相迴路(PLL)以維持頻率穩定,混合模式時脈管理器(MMCM)用於頻率分頻與倍頻,以及低偏移的時脈分配網路。FPGA 通常需要多個時脈供不同子系統使用(一個供 CPU 核心,另一個供高速 I/O)。時脈管理區塊讓這一切成為可能。
7. 硬式 IP 核心
雖然大多數 FPGA 資源可重新配置,現代 FPGA 亦整合硬式智慧財產(Hard IP)核心。這些是針對常見任務優化的固定功能區塊。
硬式 IP 範例:
- 高速收發器(SerDes)。
- DDR 記憶體控制器。
- PCI Express 介面。
- 乙太網路 MAC。
- 加密引擎。
相較於使用 LUT 實作(會消耗大量資源),硬式 IP 核心提供更佳效能與更低功耗,因其已完全優化。這些廣泛應用於數位設計,例如若要從感測器數位化取資料,需要 I2C、UART 或 SPI,在 FPGA 中這些皆以 IP 形式提供。
8. 配置記憶體
最後,讓 FPGA 具備現場可程式化能力的關鍵在於其配置記憶體。大多數 FPGA 使用基於 SRAM 的配置。上電時,FPGA 為空白狀態,必須從外部快閃記憶體或主處理器載入位元流。位元流定義:
- CLB 功能。
- 路由路徑。
- I/O 配置。
- DSP / BRAM 使用方式。
總結:
讓我們總結 FPGA 架構元件:
- CLB → 可程式邏輯功能。
- 互連結構 → 佈線高速公路。
- IOB → 外部通訊。
- DSP 區塊 → 高速數學單元。
- BRAM → 本地記憶體。
- 時脈管理器 → 穩定同步時序。
- 硬式 IP 核心 → 固定功能加速器。
- 配置記憶體 → 定義一切。
透過這些建構模組,工程師可在同一顆 FPGA 晶片上實現從簡單計數器到完整 CPU 與 AI 加速器的任何設計。
結論:
FPGA 不僅用於 VLSI,也在 DSP 與電源 IC 設計中扮演重要角色。由於其可重配置與平行處理能力,您可在 FPGA 內部實現任何類型的控制器。FPGA 讓設計師能建構客製化硬體架構;相比之下,微控制器僅限於循序指令處理。對初學者而言,理解 FPGA 架構就從上述八個元件開始。每個元件都有其獨特角色,共同構成一個靈活的數位遊樂場,供工程師揮灑創意。FPGA 用於彌合原型設計彈性與 ASIC 等級效能之間的落差。
持續學習
網口佈線一次到位:Ethernet PHY、磁性器件與 MDI 差動對佈局實操要點
工業控制閘道器、車載乙太網路、監控攝影機,百兆與千兆介面的出貨量以億計,但在電磁干擾(EMI)輻射超標的改善案件,以及鏈路反覆斷線與重連的客訴中,網路介面佈線問題始終占有一定比例。許多設計在實體層(PHY)晶片部分直接沿用參考電路,到了磁性元件周邊卻開始憑經驗處理,任意分割接地平面,直到認證實驗室的輻射測試不合格,才回頭檢查設計。 乙太網路介面在實體結構上可分為三個區段:PHY 晶片、磁性元件(網路變壓器)與 RJ45 連接器。前兩個區段之間使用 RMII 或 RGMII 並行介面,後兩個區段之間則是四對 100 Ω 的媒體相依介面(MDI)差動線。先釐清三個區段的分工與設計限制,比事後使用頻譜分析儀尋找干擾源更有效率。 一、三區段架構與佈線限制 PHY 至變壓器這個區段使用並行介面,訊號頻率為 50~125 MHz。佈線要求是縮短走線、保持等長,並遠離電源與晶體振盪器區域,訊號源端的串聯電阻不可省略。變壓器區段負責隔離與共模抑制,中心抽頭的接法由 PHY 類型決定,下方接地平面必須保持完整,禁止挖空或跨越平面分割佈線。變壓器至 RJ45 之間使用四對 100 Ω 差動線,必須保持嚴格對稱,單段走......
32GT/s 訊號完整性攻關:PCIe 5.0 PCB 佈線與過孔殘樁處理
隨著人工智慧(AI)伺服器與高速儲存需求增加,PCIe 5.0 每通道速率提升至 32 GT/s,單通道雙向頻寬為 64 Gbps。不少團隊直接套用 PCIe 4.0 的佈線經驗,收到電路板並進行測試後,才發現眼圖閉合、誤碼率升高。重新進行模擬分析,才發現問題來自累積的設計細節:阻抗偏差、玻纖效應與過孔殘樁,每一項單獨看都未必致命,但在 16 GHz 奈奎斯特頻率下疊加,就可能使鏈路失效。 PCIe 5.0 仍採用不歸零(NRZ)調變與 128b/130b 編碼,但 32 GT/s 意味著訊號邊緣更快、通道損耗預算更緊。官方規範提供整條通道約 36 dB 的損耗餘量,連接器、線纜與重定時器占用大部分預算,留給 PCB 走線的份額並不多。32 GT/s PCB 佈線的成敗,從疊構選型時就已奠定基礎。 注意事項 PCIe 5.0 的 32 GT/s 速率對 PCB 通道損耗、阻抗公差、玻纖編織效應與過孔殘樁都更加敏感。設計必須涵蓋疊構、佈線、背鑽與量產驗證,建立完整的驗證與改善流程。 一、差動對佈線核心參數 PCIe 差動對的阻抗以 100 Ω 為目標設計,量產管控公差建議控制在 ±8% 以內,而不是......
優化電源網路以實現穩定且高效能的高效能 PCB 設計
重點摘要 電源網路作為系統:由平面、覆銅、走線及過孔組成的完整銅網路,用於提供乾淨、穩定的電壓。 控制 IR 壓降:銅阻會造成電壓下降。使用較寬走線、完整覆銅或較厚銅箔(2 oz 以上),將電壓維持在容差範圍內。 縮小迴路面積:將去耦電容靠近電源腳位,並使用短而寬的走線,以應對快速瞬態電流。 按需增加過孔:單個 0.3 mm 過孔只能承載約 1 至 2 A。高電流路徑需要多個縫合過孔組成的並聯陣列。 DFM 不可忽視:透過可靠製造商驗證銅厚、蝕刻及層疊,確保設計符合實際製造條件。 曾經有一塊電路板在負載下突然掉電,我一度以為所有問題都源於電源,但事實並非如此。我測試了穩壓器、更換了電容,甚至檢查了工作台電源。最後發現,問題是一條只有 0.3 mm 寬、橫跨半塊板的細走線:它將 5 V 電源送到負載,途中損失接近 200 mV。這次經歷令我至今難忘。電源網路絕不只是「承載電壓的導線」;它是由平面、覆銅、走線及過孔構成的完整銅結構,用來將電源軌傳送到所有需要它的元件。 如果不認真處理,就會出現電壓下陷及噪聲,以及最令人難以排查的故障類型。本文將討論我現今如何看待電源網路:它們是甚麼、為甚麼在密集多電壓......
高速 PCB Timing Analysis 指南:Setup/Hold、Clock Skew、Slack 與時序最佳化
重點摘要 時序分析是高速 PCB 設計不可忽略的一環:即使 Signal Integrity 看起來良好,只要資料沒有落在正確的 Setup/Hold Window 內,系統仍然可能失效。 掌握四個核心時序參數:Setup Time、Hold Time、Clock Skew 與 Propagation Delay,都是判斷資料能否被可靠取樣的關鍵。 Length Matching、Controlled Impedance 與正確 Stackup 很重要:它們可以降低 Delay Mismatch,並保留更多正向 Timing Margin。 STA 與 Dynamic Simulation 應搭配使用:Static Timing Analysis 適合全面檢查 Timing Path,而 SPICE/IBIS Dynamic Simulation 則能觀察 Reflection、Crosstalk、Ringing 與實際 Edge Shape。 精密製造同樣會影響 Timing Margin:Trace Width、Dielectric Thickness、Copper Weight 或 Impe......
BGA Escape Routing 指南:Dogbone、Via-in-Pad、HDI 與扇出佈線
重點摘要 Escape Routing 是高密度 BGA 成功扇出的關鍵:尤其當 BGA Pitch 降至 0.5 mm 或更小時,逃逸佈線會成為 PCB Layout 的主要限制之一。 依 Pitch 選擇扇出方式:0.5 mm 以上通常可以使用 Dogbone Fanout;更細 Pitch 則應考慮 Via-in-Pad,並進行樹脂填孔與電鍍封帽。 HDI Microvia 可大幅提高佈線密度:Stacked/Staggered Microvia 能增加 Routing Channel,並有機會降低整體 PCB Layer Count。 Differential Pair 必須保持對稱:兩條訊號的 Via Structure、Stub 與 Fanout Geometry 應盡可能一致,以維持 Signal Integrity。 Stackup、DFM 與製造能力必須一起考慮:只有將佈線策略與實際 PCB 製程能力匹配,才能得到可靠且高良率的 Fine-Pitch BGA 設計。 您是否曾經把一顆 484-Ball BGA 放到 PCB 上,按下「Route」之後,就看到 EDA 工具幾乎無從......
PCIe 5.0 32GT/s PCB實體佈局對策:阻抗、等長與背鑽
AI伺服器、高階顯卡大量導入PCIe 5.0,32GT/s的傳輸速率相較PCIe 4.0直接翻倍。實際專案調試就能體會,這個速率已經進入微波頻段,奈奎斯特頻率來到16GHz,諧波甚至突破20GHz。 很多工程師直接沿用PCIe 4.0的佈局經驗投板,結果出現各種偶發故障:冷啟動鏈路訓練失敗、高溫下隨機降速、壓力測試時鏈路斷開。回頭做訊號完整性分析,問題幾乎都來自PCB實體層:過孔殘樁、阻抗偏差、串擾過大、玻纖效應帶來的時序偏移。下面全部基於實板除錯經驗,整理PCIe 5.0的PCB設計重點。 一、板材選用與疊層、差分阻抗管控 PCIe 5.0差分Tx/Rx標準差分阻抗依舊維持85Ω,但公差絕對不能沿用4.0的±10%,量產專案務必和板廠約束到±5%以內。線寬、線距、介質厚度三者互相牽制,不能拿網路上的通用數值直接套用,一定要拿本專案的疊層參數丟給板廠做阻抗計算。 普通FR-4板材的介質損耗在高頻下會急劇惡化,如果通道總長偏長,一定得更換低損耗板材,Megtron 6、Nelco 4000-13SI都是業界常用料;若是板內Lane走線很短,也可以權衡成本不選最高等級。 玻纖效應是非常容易被忽視的。玻......