什么是FPGA芯片?FPGA芯片的生產(chǎn)廠(chǎng)商?FPGA芯片在工業(yè)領(lǐng)域的應(yīng)用?


什么是FPGA芯片
PGA中文全稱(chēng)為現(xiàn)場(chǎng)可編程門(mén)陣列(FieldProgrammableGateArray),是邏輯芯片的一種。FPGA自問(wèn)世以來(lái),經(jīng)過(guò)了幾個(gè)不同的發(fā)展階段,在工藝技術(shù)和應(yīng)用需求等因素的驅(qū)動(dòng)下,F(xiàn)PGA的特性和工具都發(fā)生了明顯變化,并在靈活性、性能、功耗、成本之間具有較好的平衡性?;谏鲜鎏攸c(diǎn),F(xiàn)PGA芯片早期作為ASIC(專(zhuān)用集成電路)芯片的半定制化電路替代品應(yīng)用于部分場(chǎng)景中,近年來(lái),F(xiàn)PGA芯片在工業(yè)領(lǐng)域的應(yīng)用范圍也不斷拓寬。集成電路芯片包括數(shù)字芯片和模擬芯片兩大類(lèi),數(shù)字芯片可以分為存儲(chǔ)器芯片和邏輯芯片,我們熟知的邏輯芯片一般包括CPU、GPU、DSP等通用處理器芯片,以及專(zhuān)用集成電路芯片ASIC。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列,FieldProgrammableGateArray)也是邏輯芯片的一種。
FPGA是在PAL(可編程邏輯陣列)、GAL(通用陣列邏輯)、CPLD(復(fù)雜可編程邏輯器件)等傳統(tǒng)邏輯電路和門(mén)陣列的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它利用計(jì)算機(jī)輔助設(shè)計(jì),繪制出實(shí)現(xiàn)用戶(hù)要求的原理圖、編輯布爾方程或用硬件描述語(yǔ)言等方式作為設(shè)計(jì)輸入;然后經(jīng)一系列轉(zhuǎn)換程序、自動(dòng)布局布線(xiàn)、模擬仿真的過(guò)程;最后生成FPGA的數(shù)據(jù)文件,對(duì)FPGA器件初始化。這樣就實(shí)現(xiàn)了滿(mǎn)足用戶(hù)要求的專(zhuān)用集成電路,真正達(dá)到了用戶(hù)自行設(shè)計(jì)、自行研制和自行生產(chǎn)集成電路的目的。
FPGA與CPU、GPU、ASIC等芯片的核心區(qū)別是:其底層邏輯運(yùn)算單元的連線(xiàn)和邏輯布局未固化。用戶(hù)可通過(guò)EDA軟件對(duì)邏輯單元和開(kāi)關(guān)陣列編程,進(jìn)行功能配置,從而去實(shí)現(xiàn)特定功能的集成電路芯片。而其他類(lèi)別邏輯芯片,像ASIC、CPU和GPU等,物理底層邏輯單元的運(yùn)算關(guān)系均已固定且不可變。簡(jiǎn)單地說(shuō),如果CPU、GPU、ASIC等是像建好的樓房,樓房中房間、走廊及樓梯等格局是已經(jīng)固定了;而FPGA的內(nèi)部類(lèi)似霍格沃茲中的魔法樓梯,可以隨時(shí)改變房間到房間的路線(xiàn)關(guān)系。
FPGA由可編程邏輯塊(CLB)、輸入/輸出模塊(IOB)、可編程互連資源(PIR)等三種可編程電路和用于存放編程數(shù)據(jù)的靜態(tài)存儲(chǔ)器SRAM組成。CLB是實(shí)現(xiàn)邏輯功能的基本單元,它們通常規(guī)則排列成一個(gè)陣列,散布于整個(gè)芯片中。IOB主要完成芯片上的邏輯與外部引腳的接口,通常排列在芯片的四周。PIR提供了豐富的連線(xiàn)資源,包括縱橫網(wǎng)狀連線(xiàn)、可編程開(kāi)關(guān)矩陣和可編程連接點(diǎn)等,它們將各個(gè)CLB之間、CLB與IOB之間以及IOB之間連接起來(lái),構(gòu)成特定功能的電路。靜態(tài)存儲(chǔ)器SRAM用于存放內(nèi)部IOB、CLB和PIR的編程數(shù)據(jù),并形成對(duì)IOB、CLB及PIR的控制,從而完成系統(tǒng)邏輯功能。
由于FPGA需要被反復(fù)燒寫(xiě),它實(shí)現(xiàn)的組合邏輯基本結(jié)構(gòu)無(wú)法通過(guò)固定的與非門(mén)來(lái)完成,而只能采用一種易于反復(fù)配置的結(jié)構(gòu)。查找表(Look-Up-Table,簡(jiǎn)稱(chēng)為L(zhǎng)UT)可以很好地滿(mǎn)足這一要求。
LUT實(shí)質(zhì)上是一個(gè)RAM,當(dāng)用戶(hù)描述了一個(gè)邏輯電路后,軟件會(huì)計(jì)算所有可能的結(jié)果,并寫(xiě)入RAM。每一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算,就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,輸出結(jié)果。這樣也大大加快了FPGA的運(yùn)算速度。目前主流FPGA都采用了基于SRAM工藝的查找表結(jié)構(gòu),也有一些FPGA采用Flash或反熔絲工藝的查找表結(jié)構(gòu)。
FPGA芯片的生產(chǎn)廠(chǎng)商
兩大巨頭: Xilinx 和 Altera。
一群小弟:紫光同創(chuàng)、京微雅格、高云半導(dǎo)體、上海安路、西安智多晶等,同國(guó)外領(lǐng)先廠(chǎng)商相比,國(guó)產(chǎn) FPGA 廠(chǎng)商不論從產(chǎn)品性能、功耗、功能上都有較大差距。
ZYNQ
ZYNQ = FPGA + ARM 核,可以自己定制電路,還可以做普通的嵌入式開(kāi)發(fā)。
PYNQ:Python Productivity for Zynq
PYNQ = Python + ZYNQ,是 Xilinx 推出的一種開(kāi)放源代碼框架,使用 Python 語(yǔ)言和庫(kù),使設(shè)計(jì)人員可以利用 zynq 中可編程邏輯和微處理器的優(yōu)勢(shì)來(lái)快速構(gòu)建高性能的嵌入式應(yīng)用程序。
Xilinx A7 系列 FPGA 芯片
于是 FPGA 應(yīng)運(yùn)而生,于 1985 年由 Xilinx 創(chuàng)始人之一 Ross Freeman 發(fā)明,屬于可編程邏輯器件 PLD(Programmable Logic Device)的一種。
真正意義上的第一顆 FPGA 芯片 XC2064 為 Xilinx 所發(fā)明,這個(gè)時(shí)間差不多比著名的摩爾定律晚 20 年左右,但是 FPGA 一經(jīng)問(wèn)世,后續(xù)的發(fā)展速度之快,超出大多數(shù)人的想象。
我們要知道一塊專(zhuān)用的 ASIC 定制集成電路的芯片他在出廠(chǎng)前功能就已經(jīng)定死了,就拿上面的數(shù)字時(shí)鐘來(lái)舉例,假如我現(xiàn)在拿到一塊全新的數(shù)字時(shí)鐘芯片,那么我只需要看看廠(chǎng)家給我提供的數(shù)據(jù)手冊(cè),看看它是怎么操作的,可能僅僅只需要給它通上電然后簡(jiǎn)單的配置一下它就能工作了。它的功能是不可更改的,就只能跑個(gè)數(shù)字時(shí)鐘,而且它內(nèi)部電路是啥樣的我也不知道,雖然用起來(lái)簡(jiǎn)單,但是缺乏靈活性,但 FPGA 就不一樣了,它在出廠(chǎng)的那一刻是不具備任何功能的,可以說(shuō)就是一張白紙。你可以在這張白紙上肆意創(chuàng)作,你想要它實(shí)現(xiàn)數(shù)字時(shí)鐘的功能沒(méi)問(wèn)題,通過(guò)特定的編輯語(yǔ)言,例如 Verilog、VHDL 等硬件描述語(yǔ)言將數(shù)字時(shí)鐘的邏輯編寫(xiě)好,下載到 FPGA 內(nèi)部,它就會(huì)生成一個(gè)數(shù)字時(shí)鐘的電路,去完成數(shù)字時(shí)鐘的功能。當(dāng)你不想要這個(gè)功能了,沒(méi)問(wèn)題你可以隨時(shí)將內(nèi)部程序擦除,或者用一個(gè)新的設(shè)計(jì)去覆蓋原有的設(shè)計(jì)。理論上我們可以用 FPGA 去生成一個(gè)任意我們想要的功能,正是基于這種強(qiáng)大的可編輯能力,F(xiàn)PGA 近年來(lái)越來(lái)越受到市場(chǎng)的認(rèn)可,在未來(lái) FPGA 的適用范圍必將越來(lái)越廣闊。
FPGA芯片在工業(yè)領(lǐng)域的應(yīng)用
當(dāng)前,隨著AI、大數(shù)據(jù)、物聯(lián)網(wǎng)、無(wú)人駕駛等新興技術(shù)的發(fā)展,F(xiàn)PGA憑借靈活性、可重構(gòu)性贏(yíng)得了更多增量市場(chǎng)。由于FPGA芯片通過(guò)專(zhuān)用EDA軟件現(xiàn)場(chǎng)對(duì)硬件進(jìn)行變成即可實(shí)現(xiàn)具體功能,這樣的高靈活性使得其下游應(yīng)用領(lǐng)域豐富,包括汽車(chē)電子、工業(yè)控制、軍事、醫(yī)療、消費(fèi)電子、人工智能等。這些領(lǐng)域增長(zhǎng)明確,發(fā)展空間廣闊,是FPGA芯片需求增長(zhǎng)核心源動(dòng)力。
例如,F(xiàn)PGA通常被應(yīng)用在汽車(chē)電子領(lǐng)域中的網(wǎng)關(guān)控制器、車(chē)用PC機(jī)、遠(yuǎn)程信息處理系統(tǒng);軍事領(lǐng)域中的安全通信、雷達(dá)、聲納;消費(fèi)產(chǎn)品領(lǐng)域中的顯示器、投影儀、數(shù)字電視和機(jī)頂盒、家庭網(wǎng)絡(luò);醫(yī)療領(lǐng)域中的大型醫(yī)療成像設(shè)備、臨床設(shè)備等方面。
在加速轉(zhuǎn)型的工業(yè)領(lǐng)域,企業(yè)對(duì)于數(shù)據(jù)處理能力的要求越來(lái)越高。此外,隨著制造業(yè)智能工廠(chǎng)的建設(shè)需求越來(lái)越盛,設(shè)備的高度靈活性和多功能性顯得尤為重要,新設(shè)備需要具有可重新編程的能力,以應(yīng)對(duì)不斷變化的市場(chǎng)標(biāo)準(zhǔn)和多樣化性能需求。FPGA的可重復(fù)編程、并行計(jì)算能力強(qiáng)、靈活性強(qiáng)等特點(diǎn)能很好地滿(mǎn)足上述需求。特別是FPGA在電機(jī)控制、機(jī)器視覺(jué)、工業(yè)機(jī)器人等場(chǎng)景的應(yīng)用成為了制造業(yè)構(gòu)建智能工廠(chǎng)的新選擇。
當(dāng)前,電機(jī)控制的發(fā)展越來(lái)越趨于多樣化、復(fù)雜化,F(xiàn)PGA芯片固有的可編程性和并行處理能力十分適合高端產(chǎn)品的電機(jī)控制,尤其是工業(yè)領(lǐng)域。FPGA以硬件方式進(jìn)行并行處理,并不占用CPU資源,可以促使系統(tǒng)性能達(dá)到最大化。目前很多廠(chǎng)商會(huì)將一些優(yōu)化算法整合到FPGA中,可以基于FPGA器件,通過(guò)一個(gè)平臺(tái)實(shí)現(xiàn)多個(gè)電機(jī)控制,極大程度的提高了能源的利用效率。例如,GEMBO公司與英特爾及貝加萊(B&R)三方合作,聯(lián)合開(kāi)發(fā)了基于FPGA的端到端的電機(jī)控制和監(jiān)控解決方案,實(shí)現(xiàn)電機(jī)的電流、轉(zhuǎn)速和溫度采集及電機(jī)進(jìn)行實(shí)時(shí)控制。
在機(jī)器視覺(jué)方面,目前主流的工業(yè)相機(jī)解決方案,由于CPU的計(jì)算性能有限,對(duì)于計(jì)算復(fù)雜度很高的視覺(jué)算法,其處理速度難以滿(mǎn)足系統(tǒng)實(shí)時(shí)性的需求。隨著FPGA集成度越來(lái)越高,基于FPGA的嵌入式視覺(jué)系統(tǒng)成為機(jī)器視覺(jué)發(fā)展的重要方向。例如,英特爾?FPGA解決方案在單個(gè)FPGA上集成多種功能,如圖像采集、攝像頭接口、預(yù)處理和通信功能。隨著攝像頭傳感器不斷進(jìn)行技術(shù)升級(jí),智能互聯(lián)網(wǎng)協(xié)議攝像頭逐漸取代模擬攝像頭,基于人工智能和深度學(xué)習(xí)的視頻分析取得進(jìn)展,F(xiàn)PGA出色的低延遲、確定性、靈活性都超出了基于視覺(jué)的系統(tǒng)所需的許多關(guān)鍵要求。
當(dāng)前,工業(yè)機(jī)器人產(chǎn)業(yè)市場(chǎng)增長(zhǎng)強(qiáng)勁。由于勞動(dòng)力供應(yīng)的短缺和成本的上升,提高流程效率和自動(dòng)化程度更加迫切。因此,在制造業(yè),能夠執(zhí)行各種操作和運(yùn)輸任務(wù)的多軸機(jī)器人的使用范圍正在迅速擴(kuò)大。FPGA內(nèi)部豐富的布線(xiàn)資源、嵌入式專(zhuān)用IP、基本可編程邏輯單元等使其可以同時(shí)處理不同種類(lèi)的任務(wù),實(shí)現(xiàn)更加靈活的同時(shí),滿(mǎn)足一些高速接口的時(shí)序要求,這些都是工業(yè)機(jī)器人實(shí)現(xiàn)控制功能必備的條件。例如,工業(yè)機(jī)器人制造商安川電機(jī)為了獲得更高的性能和精度,選擇采用多款英特爾?FPGA,用于機(jī)器人控制和伺服控制。
可以看到,F(xiàn)PGA所提供的靈活性、優(yōu)秀的并行計(jì)算性能可以幫助制造企業(yè)在實(shí)現(xiàn)數(shù)字化、智能化的條件下,極大程度地降低成本、功耗。據(jù)研究機(jī)構(gòu)MarketResearchFuture(MRFR)統(tǒng)計(jì),預(yù)計(jì)到2025年,全球FPGA在工業(yè)市場(chǎng)應(yīng)用占比將從2019年的12%增長(zhǎng)至19%,市場(chǎng)前景廣闊。
工業(yè)數(shù)字化轉(zhuǎn)型升級(jí)為FPGA的應(yīng)用開(kāi)辟了新的處女地,帶來(lái)了良好的發(fā)展契機(jī)。但在技術(shù)壁壘極高的FPGA領(lǐng)域,不論是芯片架構(gòu)、關(guān)鍵IP、高速接口等芯片硬件設(shè)計(jì),還是設(shè)計(jì)工具和生態(tài)系統(tǒng)建設(shè),都需要在正確的發(fā)展路徑上不斷積累和加速,才能針對(duì)不同的應(yīng)用場(chǎng)景、市場(chǎng)環(huán)境,靈活應(yīng)對(duì),突破重圍。
FPGA芯片有什么用
FPGA 所能應(yīng)用的領(lǐng)域大概可以分成六大類(lèi):
1)通信領(lǐng)域
FPGA 在通信領(lǐng)域的應(yīng)用可以說(shuō)是無(wú)所不能,得益于 FPGA 內(nèi)部結(jié)構(gòu)的特點(diǎn),它可以很容易地實(shí)現(xiàn)分布式的算法結(jié)構(gòu),這一點(diǎn)對(duì)于實(shí)現(xiàn)無(wú)線(xiàn)通信中的高速數(shù)字信號(hào)處理十分有利。因?yàn)樵跓o(wú)線(xiàn)通信系統(tǒng)中,許多功能模塊通常都需要大量的濾波運(yùn)算,而這些濾波函數(shù)往往需要大量的乘和累加操作。而通過(guò) FPGA 來(lái)實(shí)現(xiàn)分布式的算術(shù)結(jié)構(gòu),就可以有效地實(shí)現(xiàn)這些乘和累加操作。尤其是 Xilinx 公司的 FPGA內(nèi)部集成了大量的適合通信領(lǐng)域的一些資源比如:基帶處理(通道卡)、接口和連接功能以及 RF(射頻卡)三大類(lèi):
(1)基帶處理資源
基帶處理主要包括信道編解碼(LDPC、Turbo、卷積碼以及 RS 碼的編解碼算法)和同步算法的實(shí)現(xiàn)(WCDMA 系統(tǒng)小區(qū)搜索等)。
(2)接口和連接資源
接口和連接功能主要包括無(wú)線(xiàn)基站對(duì)外的高速通信接口(PCI Express、以太網(wǎng) MAC、高速 AD/DA 接口)以及內(nèi)部相應(yīng)的背板協(xié)議(OBSAI、CPRI、EMIF、LinkPort)的實(shí)現(xiàn)。
(3)RF 應(yīng)用資源
RF 應(yīng)用主要包括調(diào)制/解調(diào)、上/下變頻(WiMAX、WCDMA、TD-SCDMA 以及 CDMA2000 系統(tǒng)的單通道、多通道 DDC/DUC)、削峰(PC-CFR)以及預(yù)失真(Predistortion)等關(guān)鍵技術(shù)的實(shí)現(xiàn)。
總而言之只要你 FPGA 學(xué)的好,在通信領(lǐng)域你絕對(duì)可以大展身手。
2)數(shù)字信號(hào)處理領(lǐng)域
在數(shù)字信號(hào)處理領(lǐng)域 FPGA 同樣所向披靡,主要是因?yàn)樗母咚俨⑿刑幚砟芰?。FPGA 最大優(yōu)勢(shì)是其并行處理機(jī)制,即利用并行架構(gòu)實(shí)現(xiàn)數(shù)字信號(hào)處理的功能。這一并行機(jī)制使得 FPGA 特別適合于完成 FIR 等數(shù)字濾波這樣重復(fù)性的數(shù)字信號(hào)處理任務(wù),對(duì)于高速并行的數(shù)字信號(hào)處理任務(wù)來(lái)說(shuō),F(xiàn)PGA 性能遠(yuǎn)遠(yuǎn)超過(guò)通用 DSP 處理器的串行執(zhí)行架構(gòu),還有就是它接口的電壓和驅(qū)動(dòng)能力都是可編程配置的不像傳統(tǒng)的 DSP 需要受指令集控制,因?yàn)橹噶罴臅r(shí)鐘周期的限制,不能處理太高速的信號(hào),對(duì)于速率級(jí)為 Gbps 的 LVDS 之類(lèi)信號(hào)就難以涉及。所以在數(shù)字信號(hào)處理領(lǐng)域 FPGA 的應(yīng)用也是十分廣泛的。
3)視頻圖像處理領(lǐng)域
隨著時(shí)代的變換,人們對(duì)圖像的穩(wěn)定性、清晰度、亮度和顏色的追求越來(lái)越高, 像以前的標(biāo)清(SD)慢慢演變成高清(HD),到現(xiàn)在人們更是追求藍(lán)光品質(zhì)的圖像。這使得處理芯片需要實(shí)時(shí)處理的數(shù)據(jù)量越來(lái)越大,并且圖像的壓縮算法也是越來(lái)越復(fù)雜,使得單純的使用 ASSP 或者 DSP 已經(jīng)滿(mǎn)足不了如此大的數(shù)據(jù)處理量了。這時(shí) FPGA 的優(yōu)勢(shì)就凸顯出來(lái)了,它可以更加高效的處理數(shù)據(jù),所以在圖像處理領(lǐng)域在綜合考慮成本后,F(xiàn)PGA 也越來(lái)越受到市場(chǎng)的歡迎。
4)高速接口設(shè)計(jì)領(lǐng)域
其實(shí)看了 FPGA 在通信領(lǐng)域和數(shù)字信號(hào)處理領(lǐng)域的表現(xiàn),我想大家也已應(yīng)該猜 到了在高速接口設(shè)計(jì)領(lǐng)域,F(xiàn)PGA 必然也是有一席之地的。它的高速處理能力和多達(dá)成百上千個(gè)的 IO 決定了它在高速接口設(shè)計(jì)領(lǐng)域的獨(dú)特優(yōu)勢(shì)。比如說(shuō)我需要和 PC 端做數(shù)據(jù)交互,將采集到的數(shù)據(jù)送給 PC 機(jī)處理,或者將處理后的結(jié)果傳給 PC 機(jī)進(jìn)行顯示。PC 機(jī)與外部系統(tǒng)通信的接口比較豐富,如 ISA、PCI、PCI Express、PS/2、USB 等。傳統(tǒng)的做法是對(duì)應(yīng)的接口使用對(duì)應(yīng)的接口芯片,例如 PCI 接口芯片,當(dāng)我需要很多接口時(shí)我就需要多個(gè)這樣的接口芯片,這無(wú)疑會(huì)使我們的硬件外設(shè)變得復(fù)雜,體積變得龐大,會(huì)很不方便,但是如果使用 FPGA 優(yōu)勢(shì)立馬就出來(lái)了,因?yàn)椴煌慕涌谶壿嫸伎梢栽?FPGA 內(nèi)部去實(shí)現(xiàn),完全沒(méi)必要那么多的接口芯片,在配合 DDR 存儲(chǔ)器的使用,將使我們接口數(shù)據(jù)的處理變得更加得心應(yīng)手。
5)人工智能領(lǐng)域
如果大家比較喜歡關(guān)注科技板塊的新聞的話(huà)最近一定會(huì)被 5G 通信和人工智能充斥 眼球,確實(shí) 21 世紀(jì)已經(jīng)不知不覺(jué)走到了 2020 年,在這 20 年間,人工智能迅速發(fā)展,5G 的順利研發(fā)也使人工智能如虎添翼,可以預(yù)見(jiàn),未來(lái)必將是人工智能的天下。FPGA 在人工智能系統(tǒng)的前端部分也是得到了廣泛的應(yīng)用,例如自動(dòng)駕駛,需要對(duì)行駛路線(xiàn)、紅綠燈、路障和行駛速度等各種交通信號(hào)進(jìn)行采集,需要用到多種傳感器,對(duì)這些傳感器進(jìn)行綜合驅(qū)動(dòng)和融合處理就可以使用 FPGA。還有一些智能機(jī)器人,需要對(duì)圖像進(jìn)行采集和處理,或者對(duì)聲音信號(hào)進(jìn)行處理都可以使用 FPGA 去完成,所以 FPGA 在人工智能系統(tǒng)的前端信息處理上使用起來(lái)得心應(yīng)手。
6)IC 驗(yàn)證領(lǐng)域
IC 這個(gè)詞大家可能一聽(tīng)到就覺(jué)得特別高深,不是凡人所能觸及到的,而 IC 設(shè)計(jì)更是一些神人才能勝任的工作。不可否認(rèn)的是 IC 設(shè)計(jì)門(mén)檻確實(shí)比較高,但是我們也沒(méi)必要把它過(guò)于神話(huà),其實(shí)簡(jiǎn)單點(diǎn)來(lái)講我們可以拿 PCB 設(shè)計(jì)來(lái)與之比較,PCB 是拿一個(gè)個(gè)元器件在印制線(xiàn)路板上去搭建一個(gè)特定功能的電路組合,而 IC 設(shè)計(jì)呢是拿一個(gè)個(gè) MOS 管,PN 節(jié)在硅基襯底上去搭建一個(gè)特定功能的電路組合,一個(gè) 宏觀(guān)一個(gè)微觀(guān)。PCB 如果設(shè)計(jì)廢了大不了重新設(shè)計(jì)再打樣也不會(huì)造成太大損失,但是如果 IC 設(shè)計(jì)廢了再重新設(shè)計(jì)那損失就很慘重了,俗話(huà)說(shuō)大炮一開(kāi),黃金萬(wàn)兩,那么在 IC 領(lǐng)域光刻機(jī)一開(kāi)黃金萬(wàn)兩也不是吹的,光刻膠貴的要命,光刻板開(kāi)模也不便宜,加上其他多達(dá)幾百上千道工序,其中人力、物力、機(jī)器損耗、機(jī)器保養(yǎng),絕對(duì)是讓人肉疼的損失,所以 IC 設(shè)計(jì)都要強(qiáng)調(diào)一版成功。保證 IC 一版成功就要進(jìn)行充分的仿真測(cè)試和 FPGA 驗(yàn)證,仿真驗(yàn)證是在服務(wù)器上面跑仿真軟件進(jìn)行測(cè)試,類(lèi)似 ModelSim/VCS 軟件;FPGA 驗(yàn)證主要是把 IC 的代碼移植到 FPGA 上面,使用 FPGA 綜合工具進(jìn)行綜合、布局布線(xiàn)到最終生成 bit 文件,然后下載到 FPGA 驗(yàn)證板上面進(jìn)行驗(yàn)證,對(duì)于復(fù)雜的 IC 我們還可以給他拆成幾個(gè)部分功能去分別驗(yàn)證,每個(gè)功能模塊放在一個(gè) FPGA 上面,F(xiàn)PGA 生成的電路非常接近真實(shí)的 IC 芯片。這樣極大的方便我們 IC 設(shè)計(jì)人員去驗(yàn)證自己的 IC 設(shè)計(jì)。
FPGA的優(yōu)勢(shì)
經(jīng)過(guò)多年發(fā)展,F(xiàn)PGA在靈活性、性能、功耗、成本之間具有較好的平衡性。其優(yōu)勢(shì)體現(xiàn)在以下幾個(gè)方面:
設(shè)計(jì)靈活:屬于硬件可重構(gòu)的芯片結(jié)構(gòu),內(nèi)部設(shè)置數(shù)量豐富的輸入輸出單元引腳及觸發(fā)器。
兼容性強(qiáng):FPGA芯片可與CMOS、TTL等大規(guī)模集成電路兼容,協(xié)同完成計(jì)算任務(wù)。
并行計(jì)算:FPGA內(nèi)部結(jié)構(gòu)可按數(shù)據(jù)包步驟多少搭建相應(yīng)數(shù)量流水線(xiàn),不同流水線(xiàn)處理不同數(shù)據(jù)包,實(shí)現(xiàn)流水線(xiàn)并行、數(shù)據(jù)并行功能。
適用性強(qiáng):是專(zhuān)用電路中開(kāi)發(fā)周期最短、應(yīng)用風(fēng)險(xiǎn)最低的器件之一。
相較于CPU,F(xiàn)PGA并行計(jì)算能力可提升運(yùn)算速率并降低時(shí)延。CPU的本質(zhì)是利用大規(guī)模存儲(chǔ)器在時(shí)間維度內(nèi)復(fù)用處理單元,并在強(qiáng)大邏輯數(shù)據(jù)庫(kù)支持下實(shí)現(xiàn)更多應(yīng)用邏輯,但同時(shí)也會(huì)失去處理單元的并行處理能力。
相較于GPU,F(xiàn)PGA在功耗和靈活性等方面具備優(yōu)勢(shì)。一方面,由于GPU采用大量的處理單元并且大量訪(fǎng)問(wèn)片外存儲(chǔ)SDRAM,其計(jì)算峰值更高,同時(shí)功耗也較高,F(xiàn)PGA的平均功耗(10W)遠(yuǎn)低于GPU的平均功耗(200W),可有效改善散熱問(wèn)題;另一方面,GPU在設(shè)計(jì)完成后無(wú)法改動(dòng)硬件資源,而FPGA根據(jù)特定應(yīng)用對(duì)硬件進(jìn)行編程,更具靈活性。
相較于A(yíng)SIC芯片,F(xiàn)PGA具備短周期、高性?xún)r(jià)比的優(yōu)勢(shì)。ASIC需從標(biāo)準(zhǔn)單元進(jìn)行設(shè)計(jì),當(dāng)芯片的功能及性能需求發(fā)生變化時(shí)或者工藝進(jìn)步時(shí),ASIC需重新投片,由此帶來(lái)較高的沉沒(méi)成本以及較長(zhǎng)的開(kāi)發(fā)周期;而FPGA包括預(yù)制門(mén)和觸發(fā)器,具有編程、除錯(cuò)、再編程和重復(fù)操作等優(yōu)點(diǎn),可實(shí)現(xiàn)芯片功能重新配置。因此早期FPGA常作為定制化ASIC領(lǐng)域的半定制電路出現(xiàn),被業(yè)內(nèi)認(rèn)為是構(gòu)建原型和開(kāi)發(fā)設(shè)計(jì)的較快推進(jìn)的路徑之一。
FPGA芯片選擇策略和原則
由于FPGA具備設(shè)計(jì)靈活、可以重復(fù)編程的優(yōu)點(diǎn),因此在電子產(chǎn)品設(shè)計(jì)領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用。在工程項(xiàng)目或者產(chǎn)品設(shè)計(jì)中,選擇FPGA芯片可以參考以下的幾點(diǎn)策略和原則。
盡量選擇成熟的產(chǎn)品系列
FPGA芯片的工藝一直走在芯片設(shè)計(jì)領(lǐng)域的前列,產(chǎn)品更新?lián)Q代速度非常快。穩(wěn)定性和可靠性是產(chǎn)品設(shè)計(jì)需要考慮的關(guān)鍵因素。廠(chǎng)家最新推出的FPGA系列產(chǎn)品一般都沒(méi)有經(jīng)過(guò)大批量應(yīng)用的驗(yàn)證。選擇這樣的芯片會(huì)增加設(shè)計(jì)的風(fēng)險(xiǎn)。
而且,最新推出的FPGA芯片因?yàn)楫a(chǎn)量比較小,一般供貨情況都不會(huì)很理想,價(jià)格也會(huì)偏高一些。如果成熟的產(chǎn)品能滿(mǎn)足設(shè)計(jì)指標(biāo)要求,那么最好選這樣的芯片來(lái)完成設(shè)計(jì)。
例如,要用FPGA設(shè)計(jì)一塊數(shù)據(jù)采集卡。采用Altera公司的Cyclone、CyloneII和CycloneIII等3個(gè)系列的芯片都可以完成這個(gè)功能??紤]到Cyclone和CyloneII是成熟產(chǎn)品,同時(shí)CyloneII又是Cyclone的升級(jí)產(chǎn)品,因此選擇CyloneII是比較理想的方案。
盡量選擇兼容性好的封裝
FPGA系統(tǒng)設(shè)計(jì)一般采用硬件描述語(yǔ)言(HDL)來(lái)完成設(shè)計(jì)。這與基于CPU的軟件開(kāi)發(fā)又有很大不同。特別是算法實(shí)現(xiàn)的時(shí)候,在設(shè)計(jì)之前,很難估算這個(gè)算法需要占多少FPGA的邏輯資源。
作為代碼設(shè)計(jì)者,希望算法實(shí)現(xiàn)之后再選擇FPGA的型號(hào)。但是,現(xiàn)在的設(shè)計(jì)流程一般都是軟件和硬件并行開(kāi)始設(shè)計(jì)。也就是說(shuō),在HDL代碼設(shè)計(jì)之前,就開(kāi)始硬件板卡的設(shè)計(jì)。這就要求硬件板卡具備一定的兼容性,可以兼容不同規(guī)模的FPGA芯片。
幸運(yùn)的是,F(xiàn)PGA芯片廠(chǎng)家考慮到了這一點(diǎn)。目前,同系列的FPGA芯片一般可以做到相同物理封裝兼容不同規(guī)模的器件。例如,Xilinx的Spartan3系列FPGA,在BGA456封裝下,可以選擇3S200、2S400、3S1000、3S1500這4種型號(hào)的FPGA。
正是因?yàn)檫@一點(diǎn),將來(lái)的產(chǎn)品就具備非常好的擴(kuò)展性,可以不斷地增加新的功能或者提高性能,而不需要修改電路板的設(shè)計(jì)文件。
盡量選擇一個(gè)公司的產(chǎn)品
如果在整個(gè)電子系統(tǒng)中需要多個(gè)FPGA器件,那么盡量選擇一個(gè)公司的產(chǎn)品。這樣的好處不僅可以降低成本,而且降低開(kāi)發(fā)難度。因?yàn)殚_(kāi)發(fā)環(huán)境和工具是一致的,芯片接口電平和特性也一致,便于互聯(lián)互通。
很多第一次接觸FPGA的設(shè)計(jì)師在芯片選型的時(shí)候都有過(guò)這個(gè)疑問(wèn)。其實(shí)這兩個(gè)最大的FPGA廠(chǎng)家位于美國(guó)的同一座城市,人員和技術(shù)交流都很頻繁,因此產(chǎn)品各有的優(yōu)勢(shì)和特色,很難說(shuō)清楚誰(shuí)好誰(shuí)壞。
在全球不同的地區(qū),這兩家公司的FPGA芯片產(chǎn)品的市場(chǎng)表現(xiàn)會(huì)有所差別。在中國(guó)市場(chǎng),兩家公司可以說(shuō)是平分秋色,在高校里面Altera的客戶(hù)會(huì)略多一些。針對(duì)特定的應(yīng)用,兩個(gè)廠(chǎng)家的產(chǎn)品目錄里面都可以找到適合的系列或者型號(hào)。
比如,針對(duì)低成本應(yīng)用,Altera公司的Cyclone系列和Xilinx公司的Spartan3系列是對(duì)應(yīng)的。針對(duì)高性能應(yīng)用,Altera公司的Stratix系列和Xilinx公司的Virtex系列是對(duì)應(yīng)的。所以,最終選擇那個(gè)公司的產(chǎn)品還是看開(kāi)發(fā)者的使用習(xí)慣。
FPGA的發(fā)展歷程
自問(wèn)世以來(lái),F(xiàn)PGA經(jīng)過(guò)了幾個(gè)不同的發(fā)展階段。賽靈思于1984年發(fā)明了世界首款FPGA,接下來(lái)的幾十年里,這種名為FPGA的器件,在容量和速度上都有大幅度提升,成本和能耗也大大降低。這些進(jìn)步主要由工藝技術(shù)所驅(qū)動(dòng),而且人們很容易認(rèn)為FPGA的發(fā)展只是隨著工藝的發(fā)展簡(jiǎn)單地增大了容量。其實(shí)并沒(méi)有這么簡(jiǎn)單,真正的FPGA發(fā)展之路要精彩得多。
發(fā)明時(shí)代:1984-1992年
首款FPGA,即賽靈思XC2064,只包含64個(gè)邏輯模塊,每個(gè)模塊含有兩個(gè)3輸入查找表和一個(gè)寄存器。盡管容量很小,XC2064晶片的尺寸卻非常大,比當(dāng)時(shí)的微處理器還要大,因此,其成本高達(dá)數(shù)百美元。在成本壓力下,F(xiàn)PGA架構(gòu)師尋求通過(guò)架構(gòu)和工藝創(chuàng)新來(lái)盡可能提高FPGA設(shè)計(jì)效率。由于基于SRAM的FPGA面積比較大,而基于反熔絲的FPGA可以避免SRAM存儲(chǔ)系統(tǒng)片上占位面積過(guò)大問(wèn)題。于是1990年出現(xiàn)的最大容量的FPGA是基于反熔絲的Actel1280。
擴(kuò)展時(shí)代:1992-1999年
FPGA初創(chuàng)公司都是無(wú)晶圓廠(chǎng)的公司,難以獲得領(lǐng)先的芯片技術(shù)。因此FPGA開(kāi)啟了擴(kuò)展時(shí)代。90年代后期,基于SRAM的FPGA體現(xiàn)出明顯的產(chǎn)品優(yōu)勢(shì),因?yàn)榛赟RAM的器件可立即使用密度更高的新工藝,而反熔絲則額外需要大量時(shí)間。IC代工廠(chǎng)意識(shí)到只要能用新工藝產(chǎn)出晶體管和電線(xiàn),就能制造基于SRAM的FPGA,每一代新工藝的出現(xiàn)都會(huì)將晶體管數(shù)量增加一倍,使成本減半,并將FPGA的尺寸增大一倍。此時(shí),更大的FPGA設(shè)計(jì)需要具有自動(dòng)布局布線(xiàn)功能的綜合工具。到90年代末,自動(dòng)綜合、布局和布線(xiàn)已經(jīng)成為設(shè)計(jì)流程的必要步驟,F(xiàn)PGA公司對(duì)EDA工具依賴(lài)程度大大增加。
積累時(shí)代:2000-2007年
新千年伊始,F(xiàn)PGA已成為數(shù)字系統(tǒng)中的通用組件。容量和設(shè)計(jì)尺寸快速增加,使得FPGA在數(shù)據(jù)通信領(lǐng)域開(kāi)辟了巨大市場(chǎng)。然而,單純提高容量不足以保證市場(chǎng)增長(zhǎng),F(xiàn)PGA廠(chǎng)商通過(guò)如下兩種方式解決了這一挑戰(zhàn)。針對(duì)低端市場(chǎng),廠(chǎng)商更關(guān)注效率問(wèn)題,并生產(chǎn)低容量、低性能的FPGA系列。針對(duì)高端市場(chǎng),F(xiàn)PGA廠(chǎng)商開(kāi)發(fā)了針對(duì)重要功能的軟邏輯(IP)庫(kù),以獲取更高性能的FPGA。此外,F(xiàn)PGA的設(shè)計(jì)特點(diǎn)在2000年代發(fā)生了改變。FPGA用戶(hù)不再只是實(shí)現(xiàn)邏輯,他們需要使FPGA設(shè)計(jì)符合系統(tǒng)標(biāo)準(zhǔn)要求,這些標(biāo)準(zhǔn)主要是指信號(hào)和協(xié)議方面的通信標(biāo)準(zhǔn),可用來(lái)連接外部組件或者實(shí)現(xiàn)內(nèi)部模塊通信。積累時(shí)代末期,F(xiàn)PGA已發(fā)展為集成有可編程邏輯的復(fù)雜功能集,儼然變成了一個(gè)系統(tǒng)。
系統(tǒng)時(shí)代:2008年至今
為解決系統(tǒng)設(shè)計(jì)問(wèn)題,F(xiàn)PGA越來(lái)越多地整合系統(tǒng)模塊:高速收發(fā)器、存儲(chǔ)器、DSP處理單元和完整處理器。同時(shí)還進(jìn)一步集成了重要控制功能:比特流加密與驗(yàn)證、混合信號(hào)處理、電源與溫度監(jiān)控以及電源管理等。
近年來(lái),F(xiàn)PGA的開(kāi)發(fā)工具也在不斷發(fā)展。雖然FPGA可使用Verilog或VHDL等低層次硬件描述語(yǔ)言來(lái)編程,但系統(tǒng)FPGA需要高效的系統(tǒng)編程語(yǔ)言,目前已有多種高層次綜合(HLS)工具,采用以C/C++等更高層次的語(yǔ)言編寫(xiě)算法,并將其轉(zhuǎn)換為Verilog或VHDL等低層次的硬件描述語(yǔ)言,以便對(duì)FPGA器件進(jìn)行快速編程。
FPGA芯片設(shè)計(jì)及關(guān)鍵技術(shù)
本文來(lái)自“FPGA專(zhuān)題:萬(wàn)能芯片點(diǎn)燃新動(dòng)力,國(guó)產(chǎn)替代未來(lái)可期(2023)”,F(xiàn)PGA又稱(chēng)現(xiàn)場(chǎng)可編程門(mén)陣列,是在硅片上預(yù)先設(shè)計(jì)實(shí)現(xiàn)的具有可編程特性的集成電路,用戶(hù)在使用過(guò)程中可以通過(guò)軟件重新配置芯片內(nèi)部的資源實(shí)現(xiàn)不同功能。通俗意義上講,F(xiàn)PGA 芯片類(lèi)似于集成電路中的積木,用戶(hù)可根據(jù)各自的需求和想法,將其拼搭成不同的功能、特性的電路結(jié)構(gòu),以滿(mǎn)足不同場(chǎng)景的應(yīng)用需求。鑒于上述特性,F(xiàn)PGA 芯片又被稱(chēng)作“萬(wàn)能”芯片。
FPGA 芯片由可編程的邏輯單元(Logic Cell,LC)、輸入輸出單元(Input Output Block,IO)和開(kāi)關(guān)連線(xiàn)陣列(Switch Box,SB)三個(gè)部分構(gòu)成:
(1)邏輯單元:通過(guò)數(shù)據(jù)查找表(Look-up Table,LUT)中存放的二進(jìn)制數(shù)據(jù)來(lái)實(shí)現(xiàn)不同的電路功能。LUT 的本質(zhì)是一種靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random Access Memory,SRAM),其大小是由輸入端的信號(hào)數(shù)量決定的,常用的查找表電路是四輸入查找表(4-input LUT,LUT4)、五輸入查找表(5-input LUT,LUT5)和六輸入查找表(6-input LUT,LUT6)。查找表輸入端越多,可以實(shí)現(xiàn)的邏輯電路越復(fù)雜,因此邏輯容量越大,但是查找表的面積和輸入端數(shù)量成指數(shù)關(guān)系,輸入端數(shù)量增加一個(gè),查找表使用的 SRAM 存儲(chǔ)電路面積增加約一倍。不同的邏輯單元結(jié)構(gòu)可以使用不同大小的查找表,或者是不同查找表類(lèi)型的組合。此外,邏輯單元內(nèi)部還包含選擇器、進(jìn)位鏈和觸發(fā)器等其他組件。為了提高芯片架構(gòu)效率,若干邏輯單元可以進(jìn)一步組成邏輯塊(Logic Block),邏輯塊內(nèi)部提供快速局部資源,從而形成層次化芯片架構(gòu)。
(2)輸入輸出單元:是芯片與外界電路的接口部分,用于實(shí)現(xiàn)不同條件下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求。
(3)開(kāi)關(guān)陣列:能夠通過(guò)內(nèi)部 MOS 管的開(kāi)關(guān)控制信號(hào)連線(xiàn)的走向。
FPGA 從 Xilinx 公司 1985 年推出世界首款 FPGA 芯片“XC2064”經(jīng)歷過(guò)數(shù)十年發(fā)展,在硬件架構(gòu)上大致經(jīng)歷了四個(gè)階段:從 PROM 階段(簡(jiǎn)單的數(shù)字邏輯)到 PAL/GAL 階段(“與”&“或”陣列)再到 CPLD/FPGA 階段(超大規(guī)模電路),到如今 FPGA 與 ASIC 技術(shù)融合、向系統(tǒng)級(jí)發(fā)展的 SoC FPGA/eFPGA 階段。硬件水平整體趨向更大規(guī)模、更高靈活性、更優(yōu)性能。
FPGA 芯片屬于邏輯芯片大類(lèi)。邏輯芯片按功能可分為四大類(lèi)芯片:通用處理器芯片(包含中央處理芯片 CPU、圖形處理芯片 GPU,數(shù)字信號(hào)處理芯片 DSP等)、存儲(chǔ)器芯片(Memory)、專(zhuān)用集成電路芯片(ASIC)和現(xiàn)場(chǎng)可編程邏輯陣列芯片(FPGA)。
FPGA 兼具靈活性和并行性?xún)纱筇攸c(diǎn)。
(1)靈活性:FPGA芯片擁有更高的靈活性和更豐富的選擇性,通過(guò)對(duì) FPGA 編程,用戶(hù)可隨時(shí)改變芯片內(nèi)部的連接結(jié)構(gòu),實(shí)現(xiàn)任何邏輯功能。尤其是在技術(shù)標(biāo)準(zhǔn)尚未成熟或發(fā)展更迭速度快的行業(yè)領(lǐng)域,F(xiàn)PGA 能有效幫助企業(yè)降低投資風(fēng)險(xiǎn)及沉沒(méi)成本,是一種兼具功能性和經(jīng)濟(jì)效益的選擇。
(2)并行性:CPU、GPU 在執(zhí)行任務(wù)時(shí),執(zhí)行單元需按順序通過(guò)取指、譯碼、執(zhí)行、訪(fǎng)存以及寫(xiě)回等一系列流程完成數(shù)據(jù)處理,且多方共享內(nèi)存導(dǎo)致部分任務(wù)需經(jīng)訪(fǎng)問(wèn)仲裁,從而產(chǎn)生任務(wù)延時(shí)。而 FPGA 每個(gè)邏輯單元與周?chē)壿媶卧倪B接構(gòu)造在重編程(燒寫(xiě))時(shí)就已經(jīng)確定,寄存器和片上內(nèi)存屬于各自的控制邏輯,無(wú)需通過(guò)指令譯碼、共享內(nèi)存來(lái)通信,各硬件邏輯可同時(shí)并行工作,大幅提升數(shù)據(jù)處理效率。尤其是在執(zhí)行重復(fù)率較高的大數(shù)據(jù)量處理任務(wù)時(shí),F(xiàn)PGA 相比 CPU 等優(yōu)勢(shì)明顯。
相較于其他邏輯芯片而言,F(xiàn)PGA 在靈活性、性能、功耗、成本之間具有較好的平衡:
(1)相較于 GPU,F(xiàn)PGA 在功耗和靈活性等方面具備優(yōu)勢(shì)。一方面,由于GPU 采用大量的處理單元并且大量訪(fǎng)問(wèn)片外存儲(chǔ) SDRAM,其計(jì)算峰值更高,同時(shí)功耗也較高,F(xiàn)PGA 的平均功耗(10W)遠(yuǎn)低于 GPU 的平均功耗(200W),可有效改善散熱問(wèn)題;另一方面,GPU 在設(shè)計(jì)完成后無(wú)法改動(dòng)硬件資源,而 FPGA根據(jù)特定應(yīng)用對(duì)硬件進(jìn)行編程,更具靈活性。機(jī)器學(xué)習(xí)使用多條指令平行處理單一數(shù)據(jù),F(xiàn)PGA 的定制化能力更能滿(mǎn)足精確度較低、分散、非常規(guī)深度神經(jīng)網(wǎng)絡(luò)計(jì)算需求。
(2)相較于 ASIC 芯片,F(xiàn)PGA 在項(xiàng)目初期具備短周期、高性?xún)r(jià)比的優(yōu)勢(shì)。ASIC 需從標(biāo)準(zhǔn)單元進(jìn)行設(shè)計(jì),當(dāng)芯片的功能及性能需求發(fā)生變化時(shí)或者工藝進(jìn)步時(shí),ASIC 需重新投片,由此帶來(lái)較高的沉沒(méi)成本以及較長(zhǎng)的開(kāi)發(fā)周期;而 FPGA具有編程、除錯(cuò)、再編程和重復(fù)操作等優(yōu)點(diǎn),可實(shí)現(xiàn)芯片功能重新配置,因此早期 FPGA 常作為定制化 ASIC 領(lǐng)域的半定制電路出現(xiàn),被業(yè)內(nèi)認(rèn)為是構(gòu)建原型和開(kāi)發(fā)設(shè)計(jì)的較快推進(jìn)的路徑之一。
FPGA邏輯結(jié)構(gòu)中的內(nèi)存大致分為三個(gè)層次(以Intel Agilex-M FPGA為例),包括超本地化片上內(nèi)存、以 HBM2e 堆棧形式提供的本地封裝內(nèi)存,以及 DDR5和 LPDDR5 等外部?jī)?nèi)存架構(gòu)和接口。
片上內(nèi)存(MLAB 模塊和 M20K 模塊):最本地化的內(nèi)存;
封裝內(nèi)存(HBM):彌合內(nèi)存層次結(jié)構(gòu)中關(guān)鍵缺口的內(nèi)存,其容量遠(yuǎn)大于片上內(nèi)存(兩個(gè)數(shù)量級(jí)以上),同時(shí)帶寬又遠(yuǎn)大于片外內(nèi)存(兩個(gè)數(shù)量級(jí)以上);
片外內(nèi)存(DDR5、LPDDR5 等):對(duì)于超出 HBM2e 容量的應(yīng)用,或?qū)Κ?dú)立內(nèi)存的靈活性有要求時(shí),需要 DDR5 和 LPDDR5 以及其他主流的內(nèi)存架構(gòu)。
HBM2e 與 FPGA 裸片集成在同一封裝中可以在小尺寸外形規(guī)格中實(shí)現(xiàn)更高帶寬、更低功耗、更低時(shí)延。
(1)內(nèi)存容量方面:每個(gè) HBM2e 堆??砂?4 層或 8 層,每層提供 2GB 內(nèi)存,因此單個(gè) Intel Agilex-M 系列 FPGA 可包含 16GB或 32 GB 的高帶寬內(nèi)存;
(2)帶寬方面:HBM2e 可實(shí)現(xiàn)每堆棧高達(dá) 410Gbps 的內(nèi)存帶寬,較 DDR5 組件的帶寬提升高達(dá) 18 倍,較 GDDR6 組件提升 7 倍。兩個(gè) HBM2e 堆棧加起來(lái)可提供高達(dá) 820Gbps 的峰值內(nèi)存帶寬;
(3)功耗和時(shí)延方面:由于 HBM2e 集成在封裝中,因此也不需要使用外部 I/O 引腳,從而節(jié)省了電路板空間,并消除了它們會(huì)帶來(lái)的功耗和互連時(shí)延。
片上網(wǎng)絡(luò)(NoC,Network on Chip)是指在單芯片上集成大量的計(jì)算資源以及連接這些資源的片上通信網(wǎng)絡(luò),用于在可編程邏輯(PL)、處理器系統(tǒng)(PS)和其它硬核塊中的 IP 端點(diǎn)之間共享數(shù)據(jù)。
與之對(duì)應(yīng)的概念——片上系統(tǒng)(SoC)則是包含一整套多樣化和互連單元的單芯片,旨在解決一定范圍的任務(wù)。傳統(tǒng)上,SoC 包括幾個(gè)計(jì)算內(nèi)核、內(nèi)存控制器、I/O 子系統(tǒng)以及它們之間的連接與切換方式(總線(xiàn)、交叉開(kāi)關(guān)、NoC 元件)。
片上網(wǎng)絡(luò) NoC 包括計(jì)算和通信兩個(gè)子系統(tǒng)。計(jì)算子系統(tǒng)(由 PE,Processing Element 構(gòu)成的子系統(tǒng))完成廣義的“計(jì)算”任務(wù),PE 既可以是現(xiàn)有意義上的CPU、SoC,也可以是各種專(zhuān)用功能的 IP 核或存儲(chǔ)器陣列、可重構(gòu)硬件等。通信子系統(tǒng)(由 Switch 組成的子系統(tǒng))負(fù)責(zé)連接 PE,實(shí)現(xiàn)計(jì)算資源之間的高速通信。通信節(jié)點(diǎn)及其間的互連線(xiàn)所構(gòu)成的網(wǎng)絡(luò)即為片上通信網(wǎng)絡(luò)。
類(lèi)比城市高速公路網(wǎng)絡(luò),NoC 架構(gòu)簡(jiǎn)化互連路徑,提高 FPGA 傳輸速率。Achronix 基于臺(tái)積電(TSMC)的 7nm FinFET 工藝的 Speedster7t FPGA 器件包含了 2D NoC 架構(gòu),為 FPGA 外部高速接口和內(nèi)部可編程邏輯的數(shù)據(jù)傳輸提供了超高帶寬(~27Tbps)。NoC 使用一系列高速的行和列網(wǎng)絡(luò)通路(水平和垂直方式)在整個(gè) FPGA 內(nèi)部分發(fā)數(shù)據(jù),每一行或每一列都有兩個(gè) 256 位的、單向的、行業(yè)標(biāo)準(zhǔn)的 AXI 通道,可以在每個(gè)方向上以 512Gbps(256bit x 2GHz)的傳輸速率運(yùn)行。
NoC 為 FPGA 設(shè)計(jì)提供了幾項(xiàng)重要優(yōu)勢(shì),包括:(1)提高設(shè)計(jì)的性能;(2)減少邏輯資源閑置,在高資源占用設(shè)計(jì)中降低布局布線(xiàn)擁塞的風(fēng)險(xiǎn);(3)減小功耗;(4)簡(jiǎn)化邏輯設(shè)計(jì),由 NoC 去替代傳統(tǒng)的邏輯去做高速接口和總線(xiàn)管理;(5)實(shí)現(xiàn)真正的模塊化設(shè)計(jì)。
Intel(Altera)利用 NoC 架構(gòu)實(shí)現(xiàn)內(nèi)存和可編程邏輯結(jié)構(gòu)之間的現(xiàn)高帶寬數(shù)據(jù)傳輸。如下圖所示,每個(gè)片上 HBM2e 堆棧通過(guò) UIB 與其 NoC 通信。片外內(nèi)存(DDR4、DDR5 等)則通過(guò) IO96 子系統(tǒng)與 NoC 通信。NoC 通過(guò)一個(gè)由交換機(jī)(路由器)、互連鏈路(導(dǎo)線(xiàn))、發(fā)起程序(I)和目標(biāo)(T)組成的網(wǎng)絡(luò),將數(shù)據(jù)從數(shù)據(jù)源傳輸?shù)侥康牡亍C總€(gè) NoC 都提供一個(gè)橫向網(wǎng)絡(luò),通過(guò) AXI4 發(fā)起程序?qū)⒖删幊踢壿嫿Y(jié)構(gòu)中的邏輯連接到集成 NoC 的目標(biāo)內(nèi)存。此外,每個(gè) NoC 也都提供一個(gè)縱向網(wǎng)絡(luò),通過(guò)優(yōu)化的路由將橫向網(wǎng)絡(luò)路徑讀取的內(nèi)存數(shù)據(jù)分發(fā)到 FPGA的可編程邏輯結(jié)構(gòu)深處(可編程邏輯結(jié)構(gòu)和/或 M20K 模塊)。
AMD(Xilinx)在 AI 引擎和可編程邏輯之間部署 NoC 架構(gòu),可大幅降低功耗。AMD Versal 產(chǎn)品最突出的優(yōu)勢(shì)之一,是能夠在自適應(yīng)引擎中將 AI 引擎陣列與可編程邏輯(PL)結(jié)合使用,由 AI 引擎陣列接口連接 AI 引擎陣列和可編程邏輯。這樣的資源結(jié)合為在最佳資源、AI 引擎、自適應(yīng)引擎或標(biāo)量引擎中實(shí)現(xiàn)功能提供了極大的靈活性。該方案與傳統(tǒng)可編程邏輯 DSP 和 ML 實(shí)現(xiàn)方案相比,可將芯片面積計(jì)算密度提高達(dá) 8 倍,從而在額定值情況下,可將功耗降低 40%。
淺析FPGA芯片的散熱設(shè)計(jì)
任何芯片要工作,必須滿(mǎn)足一個(gè)溫度范圍,這個(gè)溫度是指硅片上的溫度,通常稱(chēng)之為結(jié)溫(junction temperature)。
ALTERA的FPGA分為商用級(jí)(commercial)和工業(yè)級(jí)(induatrial)兩種,商用級(jí)的芯片可以正常工作的結(jié)溫范圍為0~85攝氏度,而工業(yè)級(jí)芯片的范圍是-40~100攝氏度。在實(shí)際電路中,我們必須保證芯片的結(jié)溫在其可以承受的范圍之內(nèi)。
隨著芯片的功耗越來(lái)越大,在工作的時(shí)候就會(huì)產(chǎn)生越來(lái)越多的熱量。如果要維持芯片的結(jié)溫在正常的范圍以?xún)?nèi),就需要采取一定的方法使得芯片產(chǎn)生的熱量迅速發(fā)散到環(huán)境中去。
學(xué)過(guò)中學(xué)物理的人都知道,熱量傳遞主要采用三種方法,即傳導(dǎo)、對(duì)流和輻射,芯片向外散熱同樣是采用這幾種方式。
下圖所示為一個(gè)芯片散熱的簡(jiǎn)化模型。圖中芯片產(chǎn)生的熱量主要傳給芯片外封裝,如果沒(méi)有貼散熱片,就由芯片封裝外殼直接散布到環(huán)境中去;如果加了散熱片,熱量就會(huì)由芯片的外封裝通過(guò)散熱片膠傳到散熱片上,再由散熱片傳到環(huán)境中。一般來(lái)說(shuō),散熱片的表面積都做的相當(dāng)大,與空氣的接觸面就大,這樣有利于傳熱。在平時(shí)的實(shí)踐中已經(jīng)發(fā)現(xiàn),絕大多數(shù)散熱片都是黑色的,由于黑色物體容易向外輻射熱量,這樣也有利于熱量向外散發(fā)。而且散熱片表面的風(fēng)速越快,散熱越好。
簡(jiǎn)化的芯片熱流模型
除此之外,有一小部分熱量經(jīng)過(guò)芯片襯底傳導(dǎo)到芯片的焊錫球上,再經(jīng)由PCB把熱量散步到環(huán)境中。由于這部分熱量所占的比例比較小,所以在下面討論芯片封裝和散熱片的熱阻時(shí)就忽略了這一部分。
首先需要理解“熱阻(thermal resistance)”的概念,熱阻是描述物體導(dǎo)熱的能力,熱阻越小,導(dǎo)熱性越好,反之越差,這一點(diǎn)有點(diǎn)類(lèi)似電阻的概念。
從芯片的硅片到環(huán)境的熱阻,假設(shè)所有的熱量都最終由散熱片散布到環(huán)境中,這樣可以得到一個(gè)簡(jiǎn)單的熱阻模型,如下圖:
帶散熱片的芯片散熱模型
從硅片到環(huán)境的總熱阻稱(chēng)為JA,因此滿(mǎn)足:
JA=JC+CS+SA
JC是指芯片到外封裝的熱阻,一般由芯片供應(yīng)商提供;CS是指芯片外封裝到散熱片的熱阻,如果散熱片采用導(dǎo)熱膠附著在芯片表面,這個(gè)熱阻就是指導(dǎo)熱膠的熱阻,一般由導(dǎo)熱膠供應(yīng)商提供;SA是指散熱片到環(huán)境的熱阻,一般由散熱片廠(chǎng)家給出這個(gè)熱阻值,這個(gè)熱阻值是隨著風(fēng)速的提高而降低的,廠(chǎng)家通常會(huì)給出不同風(fēng)速情況下的熱阻值。
芯片的封裝本身就是作為一個(gè)散熱裝置。如果芯片沒(méi)有加散熱片,JA就是硅片經(jīng)過(guò)外封裝,再到環(huán)境中的熱阻值,這個(gè)值顯然要大于有散熱片是的JA值。這個(gè)值取決于芯片本身封裝的特性,一般由芯片廠(chǎng)家提供。
下圖顯示為ALTERA的STRATIX IV器件的封裝熱阻。其中給出了各種風(fēng)速下的芯片的JA值,這些值可以用來(lái)計(jì)算無(wú)散熱器時(shí)的情況。另外,其中的JC是用來(lái)計(jì)算帶散熱片時(shí)的總JA值。
Stratix iv器件封裝的熱阻
假設(shè)硅片消耗的功率是P,則:
TJ(結(jié)溫)=TA+P*JA
需要滿(mǎn)足TJ不能超過(guò)芯片允許的最大的結(jié)溫,再根據(jù)環(huán)境溫度和芯片實(shí)際消耗的功率,可以計(jì)算出對(duì)JA最大允許的要求。
JAMax=(TJMax - TA)/P TA(環(huán)境溫度)
如果芯片封裝本身的JA大于這個(gè)值,那么必須考慮給芯片加合適的散熱裝置,以降低芯片到環(huán)境的有效JA值,防止芯片過(guò)熱。
在實(shí)際的系統(tǒng)中,部分熱量也會(huì)從PCB散出,如果PCB層數(shù)多,面積較大,也是非常有利于散熱的。
解讀FPGA芯片SOPC發(fā)射端電路設(shè)計(jì)
本文設(shè)計(jì)基于FPGA 芯片EP3C16Q240C8N 的片上可編程系統(tǒng),該系統(tǒng)可用于實(shí)現(xiàn)IFFT運(yùn)算和接口模塊,利用可嵌入到此FPGA 芯片的NiosII 軟核處理器來(lái)實(shí)現(xiàn)數(shù)據(jù)傳輸和控制。功能電路中的ADI 的數(shù)字上變頻芯片AD9957 和可控增益芯片AD8369 用于實(shí)現(xiàn)DAB 基帶信號(hào)的上變頻和信號(hào)放大。這套DAB 發(fā)射機(jī)電路板尺寸為100cm*160cm,經(jīng)過(guò)測(cè)試,能很好的完成發(fā)射,具有較高的可靠性。
DAB 發(fā)射機(jī)是數(shù)字音頻廣播重要組成部分。DAB 技術(shù)是歐洲尤里卡項(xiàng)目之一,目前已經(jīng)非常成熟.DAB 采用先進(jìn)的數(shù)字技術(shù),正交分頻復(fù)用技術(shù)(OFDM),能以極低的數(shù)據(jù)傳輸率及失真下傳送CD 質(zhì)量之立體聲節(jié)目,可解決傳統(tǒng)模擬廣播接收不良及干擾問(wèn)題.DAB 發(fā)射系統(tǒng)包括信源編碼。信道編碼。 時(shí)間交織。頻率交織.OFDM 調(diào)制和射頻部分。射頻部分包括上變頻和增益放大,用來(lái)把基帶信號(hào)搬移到發(fā)射頻率上并將其放大。
FPGA 技術(shù)不斷進(jìn)步,成本和功耗不斷下降的同時(shí)性能和容量在大幅上升,F(xiàn)PGA 也代替MCU 越來(lái)越多的嵌入到系統(tǒng)中去。為了便于系統(tǒng)集成,本文設(shè)計(jì)FPGA 系統(tǒng)嵌入到DAB 發(fā)射系統(tǒng)中,使得開(kāi)發(fā)變得方便靈活,同時(shí)也降低了成本。
FPGA 的SOPC 系統(tǒng)構(gòu)成
該系統(tǒng)硬件框圖如圖1所示。系統(tǒng)中FPGA采用ALTERA 公司的CycloneIII 系列芯片EP3C16Q240C8N.FPGA 中的NiosII 軟核處理器完成數(shù)據(jù)的控制和指令傳送,還可以在FPGA 上實(shí)現(xiàn)OFDM 調(diào)制。配置芯片選用EPCS16,片外擴(kuò)展存儲(chǔ)器為IS42S16100-7T.框圖中,功能電路是用來(lái)實(shí)現(xiàn)DAB 發(fā)射功能的,它包括數(shù)字上變頻(其中已經(jīng)包括A/D 和D/A 轉(zhuǎn)換)。信號(hào)放大.USB 傳輸?shù)取?/span>
根據(jù)DAB 發(fā)射系統(tǒng)設(shè)計(jì)可以得出系統(tǒng)中各個(gè)單元所需的資源:邏輯單元。寄存器。引腳。內(nèi)存。乘法器單元。鎖相環(huán)分別為8839.4719.104.202752bits.6和1.這款芯片為QPFP 封裝。
配置電路
FPGA 芯片按配置速度快慢依次為:
Active parallel(AP)模式.Fast passiveparallel(FPP)模式.Active serial(AS)模式.Passive serial(PS)模式。另外還有用于調(diào)試的Joint Test Action Group(JTAG)模式。本文FPGA 同時(shí)配置AS 模式和JTAG 模式。根據(jù)cycloneIII 的數(shù)據(jù)手冊(cè),配置方案由MSEL 引腳決定。當(dāng)使用AS 和JTAG 兩種方式時(shí),MSEL[3:0]為“010”。如圖2所示為ATERA 給出的AS 和JTAG 配置電路。AS
AS 模式是指FPGA 的EPCS 控制器發(fā)出讀取數(shù)據(jù)的信號(hào),從而把串行FLASH(EPCS系列芯片)的數(shù)據(jù)讀入FPGA 中,實(shí)現(xiàn)對(duì)FPGA 的編程。配置數(shù)據(jù)通過(guò)FPGA 的DATA0引腳送入,數(shù)據(jù)被同步在DCLK 輸入上,1個(gè)時(shí)鐘周期傳送1位數(shù)據(jù)。 本文中選取的配置芯片EPCS16SI8,有16Mbits 的存儲(chǔ)空間,可以支持DCLK 時(shí)鐘工作在20MHz 和40MHz.JTAG 接口是一個(gè)業(yè)界標(biāo)準(zhǔn)接口,主要用于芯片測(cè)試等功能.ALTERA 的FPGA 基本上都可以支持JTAG 命令來(lái)配置FPGA 的方式,而且JTAG 配置方式比其他任何方式優(yōu)先級(jí)高.JTAG 模式是將配置數(shù)據(jù)存儲(chǔ)在SRAM,掉電后需重新下載。它與FPGA 的接口有4個(gè)必需的信號(hào)TDI,TDO,TMS 和TCK 以及1個(gè)可選信號(hào)TRST 構(gòu)成。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開(kāi)資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀(guān)點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。