
發布
注冊
/
登錄FPGA開發
關注創建者:匿名 創建時間:2026-01-04

FPGA開發的實例教程
為了滿足各類算法對于芯片運算速度的要求,FPGA開始逐漸進入了市場的視野。
為降低開發門檻,Xilinx提出了一系列高層級的FPGA解決方案。同時,結合當前汽車行業的基于模型的開發思路,MathWorks也聯合Xilinx提出了一套基于模型的FPGA開發思路。
圖1 當前基于模型的FPGA開發方式
在此基礎上,百度、戴姆勒、Continental、比亞迪等廠商紛紛推出了其基于MPSoC的智駕相關產品。
圖2 已經開始使用MPSOC的相關企業
如何在眾多基于高層級的研發方式中,找到符合自己產品的研發路線?本次在線研討會,將聚焦目前已有的高層級FPGA開發路線,對其開發方式、優缺點以及適用范圍進行詳細的描述。
圖3 通過工具對HLS代碼進行優化
結合具體的部署案例,本次研討會將較為全面地幫助大家認識高層級FPGA開發方式,希望能夠在后續開發過程中,為大家在開發工具的選擇上提供一定的參考。
圖4 尋求適合自己的高層級FPGA開發思路
經緯恒潤擁有豐富的基于模型開發經驗,成熟的團隊對高層級FPGA開發進行支持,致力于降低FPGA開發的準入門檻,縮短由算法到可用的FPGA IP的迭代時間,能夠為客戶提供完整的咨詢服務。
圖5 FPGA部署的咨詢項目案例
展開 這些功能單元可以實現時鐘生成、分頻、相位調整、延遲補償、時鐘分配、復位分配等功能,提高了FPGA的性能和穩定性。
內嵌專用硬核:內嵌專用硬核是FPGA內部集成的一些專用功能模塊,如乘法器、除法器、DSP(數字信號處理器)、微處理器、PCIe控制器、以太網控制器等。這些硬核可以提供高效的計算和通信能力,降低了FPGA的邏輯資源消耗和功耗。
三、FPGA開發流程
FPGA的開發流程是利用EDA(Electronic Design Automation)開發軟件和編程工具對FPGA芯片進行開發的過程,主要步驟如下:
1)功能定義/器件選型:這個步驟主要進行方案驗證、系統設計和FPGA芯片選型等準備工作。根據任務要求,評估系統的指標和復雜度,對工作速度和芯片本身的資源、成本等方面進行權衡,選擇合理的設計方案和合適的器件類型。這個階段往往會花費大量的時間,這個階段之后一般已經完成了系統建模,功能劃分,模塊劃分以及設計文檔的撰寫等工作。
2)設計輸入:這個步驟是將劃分好的各功能模塊用硬件描述語言(HDL)表達出來,常用的硬件描述語言有Verilog HDL和VHDL。以后的教程中我們主要講解如何使用Verilog HDL進行FPGA設計。設計輸入方式有三種形式:IP核、原理圖、HDL。IP核是實現一定功能的模塊,可以形成一個項目。原理圖是一種最直接的描述方式,在可編程芯片發展的早期應用比較廣泛,它將所需的器件從元件庫中調出來,畫出原理圖。HDL是利用文本描述設計,可以分為普通HDL和行為HDL。普通HDL有ABEL、CUR等 ,支持邏輯方程、真值表和狀態機等表達方式, 主要用于簡單的小型設計 。而在中大型工程中,主要使用行為HDL,其主流語言是Verilog HDL和VHDL 。
展開 圖3 Xilinx產品系列圖
圖4 Intel(以Stratix系列為例)產品工藝年代
FPGA在數據中心服務器市場的實際應用中存在一定技術難點,具體包括如下幾方面:
1、編程門檻較高:硬件描述語言不同于軟件開發語言,需要開發者對底層硬件有著較深刻的認識;因此人才也就成為限制FPGA應用的一個重要因素。據了解,目前國內從事FPGA開發的人員初步估計大約兩萬多人。
2、集成難度較大:FPGA開發與應用需要軟硬件的協同,包括使用高級語言的系統建模、硬件代碼(電路)設計、硬件代碼仿真、底層驅動軟件與硬件邏輯的聯調等等。
3、開發周期相對軟件要長:硬件開發比軟件開發過程復雜,調試周期也被拉長。
4、很難獲取獨立邏輯IP。
4、FPGA整體結構
FPGA架構主要包括可配置邏輯塊CLB(Configurable Logic Block)、輸入輸出塊IOB(Input Output Block)、內部連線(Interconnect)和其它內嵌單元四個部分。
CLB是FPGA的基本邏輯單元。實際數量和特性會依器件的不同而改變,但是每個CLB都包含一個由4或6個輸入、若干選擇電路(多路復用器等)和觸發器組成的可配置開關矩陣。開關矩陣具有高度的靈活性,經配置可以處理組合型邏輯、移位寄存器或 RAM。
FPGA可支持許多種I/O標準,因而可以為系統設計提供理想的接口橋接。FPGA 內的I/O按bank分組,每個bank能獨立支持不同的I/O標準。目前最先進的FPGA提供了十多個I/O bank,能夠提供靈活的I/O支持。
CLB 提供了邏輯性能,靈活的互連布線則負責在CLB和I/O之間傳遞信號。
展開 在基準電路中對Ropa進行了仿真,估計了系統的開銷,并在FPGA開發板上進行了功能驗證。利用一套28 nm Altera 5CEFA4F23I7N FPGA開發板,驗證了Ropa對假冒偽劣檢測的有效性。該FPGA的I/O只有一個基準電壓,即3.3V。所有FPGA開發板分為5種類型,其中包括真實的多氯聯苯和所有假冒偽劣場景。PCB類型的設置在表和圖
PCB類型的設置,包括真實的多氯聯苯和所有偽造場景
正版印制板和4種假冒PCB。
不受信任的PCB制造商生產的多氯聯苯可以超過許可的多氯聯苯數量。然而,使用Ropa,從制造商運來的所有多氯聯苯的PUF值都要向PCB設計者注冊,而過量生產的多氯聯苯則不是。當用戶向過度生產的PCB申請認證時,PCB設計者可以直接將其確定為假冒偽劣產品,因為它沒有注冊。因此,基于Ropa的認證流程可以防止多氯聯苯的過度生產。
Oros和PTRO的循環增量在一個單一的真實PCB的24小時刻錄試驗中。Oros和PTROS的最大循環增量分別為0.257ns和0.336ns。
在單個真實PCB的24小時燒成過程中,不同負載模式下PTROS循環增量的變化,其平均值從1.025ns下降到0.589ns。
在APDB中具有相同PUF值的10種循環多氯聯苯與PCBs之間的Oros循環增量和歐氏距離。對于所有回收的多氯聯苯,歐氏距離大于集成電路老化閾值(εLORO=0.224 ).
展開 在業內,Xilinx公司是設計開發FPGA硬件的龍頭。
這份收購并非突如其來,實際上在2017年Xilinx已經投資過深鑒科技。從深鑒科技的技術路線——基于Xilinx的FPGA硬件進行開發,實現端側智能。圖一為深鑒科技開發的智能IPC
深度學習加速模塊,可以把深度學習網絡部署在里面并嵌入在攝像頭實現人臉識別。
圖一智能IPC深度學習加速模塊
Source:深鑒科技官網2018.7
無論深鑒科技實際上是否直接參與了FPGA的電路設計,還是直接委托Xilinx直接幫其設計出需要的FPGA。深鑒科技可以說在硬件方面方面,站在了Xilinx這個巨人的肩膀之上,再進行FPGA的嵌入式開發,實現深度學習網絡的部署,實現AI的功能。
目前“云+端”的模式,成為眾AI公司發展的趨勢。過去的方案實施中,AI處理工作在云端完成。把其中某一部分任務(例如推斷部分)放在智能邊緣端(讓設備擁有芯片,進行AI推斷部分),就變得更加高效,尤其像安防領域,自動駕駛領域,實時性要求極高的應用中。則端側智能的部署是市場的趨勢。圖二為“云+端”示意圖解:
圖二AI應用落地的“云+端”模式
Source:集邦咨詢2018.7
想實現端側AI的部署,從定制芯片硬件來看,有兩個路線:1.如上述所說,用FPGA開發(半定制)2.設計ASIC定制集成電路芯片。我們可以拉入另外兩家中國的AI明星公司:寒武紀和地平線進行簡單討論。
展開 
FPGA開發的相關專題、標簽、搜索
FPGA開發的最新內容
3 便攜式聲源定位系統設計
3.1系統總體設計方案
本公司以FPGA開發板為中心,輔以傳聲器陣列、攝像頭、SDRAM、顯示屏等外圍器件組成便攜式聲源定位系統的硬件結構,通過FPGA開發實現系統的各項功能。系統的總體架構如圖6所示,在規劃時分為兩大部分,即聲源定位算法的實現和聲源定位結果可視化圖像處理的實現。
三、FPGA開發流程
FPGA的開發流程是利用EDA(Electronic Design Automation)開發軟件和編程工具對FPGA芯片進行開發的過程,主要步驟如下:
1)功能定義/器件選型:這個步驟主要進行方案驗證、系統設計和FPGA芯片選型等準備工作。根據任務要求,評估系統的指標和復雜度,對工作速度和芯片本身的資源、成本等方面進行權衡,選擇合理的設計方案和合適的器件類型。
之后,FPGA設計過程的下一步是為所使用的FPGA系列開發一個網絡列表。這是使用電子設計自動化程序開發的,并概述了必要的FPGA內的連接性。之后,設計致力于FPGA,這允許它被用于(ECB)電子電路板來創建。
在FPGA設計中,就是在將這以抽象層級的意見描述成HDL語言,就可以通過FPGA開發軟件轉化為上一點中所述的FPGA內部邏輯功能實現形式。
HDL也可以描述更高的抽象層級如算法級或者是體系結構級,但目前受限于EDA軟件的發展,EDA軟件還無法理解這么高的抽象層次,所以HDL描述這樣抽象層級是無法被轉化為較低的抽象層級的,這也就是所謂的不可綜合。
主流的嵌入式平臺包含ARM、DSP、FPGA等,開發語言主要是匯編/C/C++。
相對應的是,IT與互聯網大部分的軟件開發人員,都屬于在通用計算機系統上的軟件開發,一般是在某種操作系統上,如Windows,Linux,Android,IOS等,進行應用軟件開發,主要包含電腦端,手機端,服務器端等設備,以X86與ARM架構為主。
萊迪思和微芯科技也正在嘗試利用多種手段降低FPGA開發難度。
對于FPGA開發軟件,其提供的IP核越豐富,用戶的設計就越方便,其市場占用率就越高。目前,IP核已經變成系統設計的基本單元,并作為獨立設計成果被交換、轉讓和銷售。
從IP核的提供方式上,通常將其分為軟核、硬核和固核這3類。從完成IP核所花費的成本來講,硬核代價最大;從使用靈活性來講,軟核的可復用使用性最高。
1.
開發工程師
硬件開發工程師
技術創新管理
焊接工藝工程師
機械工藝工程師
電氣工藝工程師
工業設計工程師
電子設計工程師
熱設計工程師
上圖是用于 FPGA 硬件開發的 JTAG-USB 適配器,以及其他信號轉換模塊,非大電流高發熱電路。采用 1.0mm 板厚。板上子板作為類似器件的小模塊,開半孔,邊緣鍍金包邊,整塊板作為模塊焊接到母板上。子板和母板都是 1.0mm 板厚。
上圖是常規電源板 1.6mm 板厚。
可以用它來做FPGA開發,并進行板級仿真。適用于小規模的PCB。
PADS,以前的版本是power PCB,分成三個組件:logic(原理圖)、layout(布局和設置規則)、route(布線),最具特色的功能是:使用極坐標放置元件和自動布線(這個自動布線可沒有AD那么爛)。適用于中小規模的PCB,但是logic相當不好用,所以有些人用orcad+PADS來彌補這個缺點。