FPGA SoC透過融合FPGA和ASIC兩者的元件,跨越了靈活性和效能之間的界限。但隨著它們進入高安全性、任務關鍵型市場,它們也面臨著與標準SoC相同的問題,包括在日益複雜的器件中快速傳輸越來越多的資料,以及在驗證和除錯中可能出現的一切棘手的問題。

FPGA SoC是一種混合器件,隨著晶片製造商和系統公司每年要完成更多的設計工作,它正獲得越來越多的關注,尤其是協議和演算法仍在變化的市場中,比如汽車、醫療器械和安全性市場。使用標準的FPGA晶片可以提供必要的靈活性,但是隻有ASIC才能滿足更高的效能要求,無論是在新市場還是在現有的市場,如航空航天。FPGA SoC提供了一種折中解決方案,既提供了ASIC的一些效能和低功耗優勢,也提供了靈活性,以避擴音早過時。

但是這種複雜性也帶來了SoC設計團隊非常熟悉的問題。

Aldec公司硬體部總經理Zibi Zalewski表示:“FPGA的複雜性和功能日益增長,你可以在一顆FPGA中構建具有多種介面和協議的大型系統,而這種設計需要一種結構來整合不同的IP和硬體模組,使它們可以工作在各種時鐘域和資料協議上。”

現代FPGA,尤其是那些具有硬核嵌入式處理器和控制器的FPGA,適用於傳統邏輯FPGA和ASIC之間的某個地帶,並向ASIC方向發展。Zalewski說:“我們肯定需要NoC,因為從驗證的角度來看,NoC簡化了介面。NoC設計允許工程團隊管理頂層介面,它可以進一步用於為主機或轉發器建立一個主原型通道,以進行模擬,而不是去管理多個介面,那樣會增加驗證過程的複雜性、時間和成本。”

這對FPGA SoC工具有一些有趣的影響。FPGA供應商通常連同他們的硬體銷售他們自己的工具,這使得EDA供應商很難在這個市場上產生重大影響。但是,隨著這兩個世界開始合併,問題就出現了,例如,FPGA SoC是否需要使finFET成為可能的複雜工具和IP,特別是在需要可追溯性的安全關鍵應用中。

Cadence公司的產品管理總監Juergen Jaeger說:“當使用大容量FPGA進行設計驗證和原型設計時,關鍵的要求之一就是要具備適當的除錯功能。但是,在今天的no-NoC FPGA的架構中,提供這樣的除錯功能是很困難的,主要是由於FPGA中連線資源有限,尤其是因為需要所有FPGA內部路由資源來實現設計本身,並且用足夠的效能執行它。此外,除錯還要求能夠訪問儘可能多的內部設計節點(理想情況是全部節點),並將這些測試點路由到外部。這幾乎是不可能的,還會導致許多挑戰和除錯缺陷。此處便是FPGA內部NoC可以提供幫助的地方,因為它可以提供測試許多本地節點的能力,透過NoC將資料路由到聚合器,而不會浪費寶貴的FPGA路由資源,然後透過某些標準介面(如千兆乙太網)輸出除錯資料。”

然而,並非所有的FPGA都需要NoC。Jaeger表示:“如果是資料路徑密集的設計,需要傳輸大量的資料,那麼NoC可能會有所幫助。但是,如果設計更加以控制為中心,並且要求效能儘可能強,那麼NoC的固有延遲和非確定性性質可能會適得其反。它還需要新的FPGA設計工具,可以利用FPGA內部的NoC元件。”

FPGA的新變化 | 半導體行業觀察

圖1:英特爾的FPGA SoC系列產品。 (來源:英特爾)

更低的功率

ASIC天生比FPGA更節能。現在的問題是:透過組合這些器件,以及利用為SoC開發的一些低功耗技術,比如透過NoC進行更高效的訊號路由,可以減少多少功耗。

Aldec公司的Zalewski說:“NoC使FPGA資源可以由IP核心和外部介面共享,並簡化了電源管理技術。使用NoC,FPGA邏輯可以被劃分成不同的區域,每個區域都可以被稱為路由器的單獨的NoC節點處理,如果不使用的話,可以選擇地關閉為睡眠模式。”

這種靈活性的概念促成了CCIX Consortium的成立,CCIX Consortium旨在為新出現的加速應用提供互連服務,例如機器學習、網路處理、儲存解除安裝、記憶體資料庫,以及4G/5G無線技術。

該標準旨在允許基於不同指令集架構的處理器將快取一致性、對等處理(peer processing)等優點擴充套件到多種加速器件,包括FPGA、GPU、網路/儲存介面卡、智慧網路,以及定製ASIC。

在使用FPGA加速工作負載時,這一點尤為關鍵。NetSpeed Systems公司營銷副總裁Anush Mohandass指出,在幾年前的Hot Chip會議期間,微軟表示希望使用FPGA加速Bing的影象搜尋,而不是在常規伺服器中執行。“他們發現,使用FPGA加速影象可以提高效率、降低延遲,所以,在這個領域,FPGA可以進入最前沿。不要將它用作通用計算機,而是將其用於加速。”

事實上,Mohandass認為這是CCIX時刻背後的起源。“即使微軟做到了,並且說‘我們有Xeon處理器,它是主CPU,是主引擎……’當它檢測到FPGA可以做的事情時,就會拋給FPGA。如果是這樣的話,那為什麼要把加速器當成二等公民呢?在CCIX中,加速在字面上與核心計算叢集具有相同的許可權。”

當今先進的FPGA還存在其他技術問題,這些問題可能也會透過NoC結構得到解決。

Synopsys公司高階營銷總監Piyush Sancheti說:“就門數和複雜性而言,每個FPGA架構看上去都像一個SoC,但現在你已經擁有了所有這些功能,很明顯,你把更多的功能塞進了一個器件中,這就產生了多功能的複雜性,就像時鐘一樣。我們看到FPGA中的時鐘結構變得越發複雜,從而產生了一大堆新問題。”

IP重用

這也簡化了設計重用。Sancheti說:“通常情況下,如果設計採用任何型別的SoC環境,無論是在ASIC還是FPGA上實現,整合的IP越多,設計中的非同步時鐘就越多。可能有一個PCIe執行在66 MHz,設計的其他部分可能會以更高的頻率執行,而這些設計並不是相互同步的。本質上,這意味著存在以不同頻率執行的邏輯,但是這個邏輯是在相互通訊的。這會導致時鐘域交叉問題。如何確保訊號從快速時鐘域轉為慢速訊號,或從慢速轉為快速時,訊號是可靠的?並且你沒有元穩定訊號(peer processing),本質上這些訊號的時序不是完全同步的。”

就像SoC設計一樣,此處需要一個非常複雜的同步方案,以及確保正確同步的工具和方法。Sancheti說:“除了jelly bean系統的FPGA以外,大家都有一套完整的方法來進行時鐘域交叉驗證,這對FPGA設計社群來說實際上是個新鮮事。如果你把所有這些挑戰都對映到設計流程和方法上,就會有新東西新增到他們的流程中,先前,他們不擔心純粹是因為他們沒有那麼多的IP,而且他們也沒有那麼多的時鐘域要處理。它可以追溯到設計和最終應用的簡單性。隨著FPGA變得更像SoC,他們不得不應對一切SoC設計挑戰。”

縮小差距

那麼,如今的FPGA SoC是否足夠像傳統的、數字SoC那樣,所有相同的規則都適用於片上網路呢?似乎或多或少有點像,但又不完全一樣。

ArterisIP公司CTO Ty Garibay表示:“兩家主要的FPGA供應商都有專門的片上網路工具,如果使用者選擇使用其中的一種,那麼他們可以使用某種形式的片上網路來連線他們的功能。這更多的是一種系統的概念性方法。它是否足夠像標準SoC,將NoC視為連線主幹是否更有意義?許多FPGA應用都不是這樣。它們看起來更像是網路晶片或主幹晶片,基本上是資料流。資料從左邊進來,中間經過一大堆的資料傳輸單元,然後資料從右邊輸出。這不是傳統的SoC。這是一個普通的網路處理器、或基帶調變解調器、或類似的東西,它是一個數據流晶片。所以在這些型別的FPGA軟設計中,不需要片上網路。 ”

但是如果它在概念上看起來像一堆相互通訊並且通常由中心點控制的獨立功能單元,那麼將這些單元連線到晶片上的軟網路確實是有意義的。Ty Garibay表示:“預計下一代高效能FPGA將包含片內的硬核NoC,因為它們正在達到相當高速的資料流量——特別是當你擁有100千兆位的SerDes和HBM2的時候,此時你想透過軟邏輯為每個通道提供1-2太位元,這基本上會使用掉所有的軟邏輯,剩餘的軟邏輯不足以用於處理。”

因此,這種頻寬將需要將資料傳輸硬體化,這與強制使用硬核DSP或硬核儲存控制器的方式非常相似。未來幾代FPGA可能會看起來像棋盤似的街道,此處的街道是硬核的128、256、512個12位的匯流排,在1-2個週期內從頭走到尾,並且不會使用任何軟邏輯。

Garibay說:“與此同時,還有一個綜合功能,作為將這些功能硬體化到FPGA中的一部分,即為這些通道分配入口和出口,因為我們正在傳輸海量的資料,我不知道如何透過軟邏輯做到這一點。這是真正將NoC加入FPGA的開始,因為NoC總是個好主意。”