作者: Hello,Panda
一、寫在前面
FPGA 是可編程芯片,因此FPGA 的設計方法包括硬件設計和軟件設計兩部分。硬件包括 FPGA 芯片電路、存儲器、輸入輸出接口電路以及其他設備;軟件即是相應的 HDL 程序以及最新非常流行的基于高層次綜合的程序方法,如Xilinx的一系列工具HLS、SDSoC和Altera的SoC EDS等。
(1)選擇FPGA(SoC)的若干理由
a)FPGA具有現場可編程能力,即使產品已經投入市場,也可根據特殊應用重新配置硬件;
b)FPGA具有強大的并行處理能力;
c)FPGA具有比ASIC設計更短的設計周期和更低設計成本;
d)FPGA比較易用;
e)隨著半導體技術的突飛猛進,FPGA 越來越成為一種融合處理、HBM存儲、接口于一體的超級芯片。
(2)設計提醒
強烈推薦FPGA設計遵循自頂向下的設計流程,也就是說從系統級設計開始,劃分為若干個二級單元,然后再把各個二級單元劃分為下一層次的基本單元,一直下去,直到能夠使用基本模塊或者IP 核直接實現為止。
需要特別提醒的是,大規模邏輯設計必須先有完整明確的需求和實現方案后再啟動硬件平臺和軟件設計。否則,任何一個小的改動都可能導致極大的糾正成本甚至整個系統全盤推翻重來。
二、設計小Tips
(1)明確FPGA設計需求
和所有的設計一樣,FPGA設計過程是一個迭代過程,首先是有一個系統的想法,然后將這一想法細化到具體交易中。
圖1 需求評估拓撲
(2)如何選型
FPGA的硬件設計選型主要考慮如下因素:
1)器件的供貨渠道和開發工具支持
2)器件的硬件資源
a)邏輯資源;
b) IO資源(FPGA負荷過重、發熱,影響速度、穩定性和壽命);
c) 布線資源(影響速度);
d)DSP(乘法器、矢量浮點加速器)資源;
e)存儲器資源(內部RAM塊和內部和外部的DDR/SRAM)等;
f) 時鐘資源;
g) 串行收發器;
h) 硬核及集成塊。
3)器件的電氣接口特性
4) 器件的速度等級
5) 器件的封裝和價格等
(3)嵌入式設計流程
圖2 設計流程
這個流程看上去有點像操作系統的層次結構,硬件就是FPGA邏輯和底層單元;中間件就是平臺相關的可以重復利用的標準協議和接口;應用層執行產品的核心功能。這三個層級是向下驗證的,最后實現系統的集成和驗證。
更為具體的,針對某種器件,嵌入式工程師的主要工作如下:
圖3 設計內容
三、FPGA的幾種典型應用
a)運動控制。需要高性能的工業設計領域;
b)電視廣播。SDI接口已經圖像流的優化重構和壓縮;
c)通信領域。處理通信過程中的海量并行數據流;
d)汽車輔助駕駛。屬于對圖像處理、圖形、控制的集大成應用;
e)高性能計算。數據庫、金融市場加速、地震和醫學成像、矩陣數學、AI、云計算、機器學習應用等;
f)高端服務器;
g)IO和總線擴展、橋接。
隨著半導體技術的飛速發展,器件的集成度越來越高,集成的硬核和功能塊也越來越豐富。FPGA各廠商面向不同層次的應用也在不斷的拓展,FPGA必將褪下它貴族的臉孔走入尋常百姓家。
圖4 ADAS應用
圖5 云計算應用
圖6 無線通信系統
-
FPGA
+關注
關注
1630文章
21802瀏覽量
606364 -
存儲器
+關注
關注
38文章
7530瀏覽量
164404
發布評論請先 登錄
相關推薦
大多數FPGA的程序存儲器(FLASH)為什么都放在外面呢?FPGA的主要應用
![大多數<b class='flag-5'>FPGA</b>的程序存儲器(FLASH)為什么都放在外面呢?<b class='flag-5'>FPGA</b>的主要應用](https://file1.elecfans.com/web3/M00/03/92/wKgZO2dqJVCAVcpQAAAKPM7jMdg516.jpg)
FPGA與ASIC的區別 FPGA性能優化技巧
FPGA開源項目:Verilog常用可綜合IP模塊庫
![<b class='flag-5'>FPGA</b>開源項目:Verilog常用可綜合IP模塊庫](https://file1.elecfans.com/web2/M00/C6/33/wKgZomYGNnuAbbSXAAA_WJWORoY479.png)
評論