02.27 技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

Achronix 最新基於臺積電(TSMC)的7nm FinFET工藝的Speedster7t FPGA器件包含了革命性的新型二維片上網絡(2D NoC)。2D NoC如同在FPGA可編程邏輯結構上運行的高速公路網絡一樣,為FPGA外部高速接口和內部可編程邏輯的數據傳輸提供了超高帶寬(~27Tbps)。

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

圖1 Speedster 7t FPGA結構圖

NoC使用一系列高速的行和列網絡通路在整個FPGA內部分發數據,從而在整個FPGA結構中以水平和垂直方式分發數據流量。NoC中的每一行或每一列都有兩個256位的、單向的、行業標準的AXI通道,可以在每個方向上以512Gbps(256bit x 2GHz)的傳輸速率運行。

NoC為FPGA設計提供了幾項重要優勢,包括:

提高設計的性能。

減少邏輯資源閒置,在高資源佔用設計中降低佈局佈線擁塞的風險。

減小功耗。

簡化邏輯設計,由NoC去替代傳統的邏輯去做高速接口和總線管理。

實現真正的模塊化設計。

本文用一個具體的FPGA設計例子來展現NoC在FPGA內部邏輯互連中發揮的重要作用。本設計主要是實現三重數據加密解密算法(3DES)。該算法是DES加密算法的一種模式,它是對於每個數據塊應用三次DES加密算法,通過增加DES的密鑰長度增加安全性。

在該FPGA設計中,我們將輸入輸出管腳放在的FPGA上下左右四個方向上。上面管腳進來的數據經過邏輯1進行解密然後通過藍色的走線送到邏輯2加密以後從下面的管腳送出。左邊管腳進來的數據經過邏輯3進行解密然後通過紅色的走線送到邏輯4加密以後從右邊的管腳送出。如圖2 所示。

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

圖2 3DES設計(沒有用NoC)後端佈局佈線圖

本設計遇到的問題如下:

加密和解密模塊中間的連線延時太長,如果不增加流水寄存器(pipeline),設計性能會收到很大限制。但是由於連接總線位寬是256位,增加幾級流水寄存器又會佔用很多額外的寄存器資源。

上下模塊之間的連接總線和左右模塊之間的連接總線出現了交叉,如果設計再複雜一點有可能會遇到佈局佈線局部擁塞,會大大增加工具佈局佈線時間。

上面兩個問題也是廣大FPGA設計者在複雜FPGA設計中或多或少會遇到的問題,導致的原因有可能是設計比較複雜,也有可能是硬件平臺的限制,或者設計必須連接不同位置的外圍Hard IP導致。

NoC的出現讓我們上面遇到的問題迎刃而解。NoC為FPGA邏輯內部互連提供了雙向288bit的原始數據模式(Raw data mode)。 用戶可以通過這288bit的信號進行邏輯直連或者自定義協議互連。

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

圖3 利用2D NoC進行內部邏輯互連

在NoC的每個交叉點上都有兩個網絡接入點(NAP),用戶只要簡單地通過例化NAP的原語或者宏定義就可以將自己的邏輯接入到NoC並進行互連。

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

圖4 網絡接入點NAP

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

圖5 例化NAP宏定義示例

這樣通過在3DES加密和解密模塊上分別例化NAP,就可以實現3DES加密和解密模塊之間的NoC互連。

技術文章—2D NoC可實現FPGA內部超高帶寬邏輯互連

圖6 3DES設計(利用NoC)後端佈局佈線圖

這樣在簡化用戶設計的同時,設計性能有了很大的提高,從之前的260MHz提高到了750MHz。 圖6中可以看到之前邏輯之間大量的連接總線已經看不到,總線的連接都由NoC接管,在後端佈局佈線圖中只能看到綠色時鐘走線和白色模塊內部的邏輯走線。

本文主要想通過這樣一個例子給廣大FPGA設計者展示如何利用NoC來進行FPGA內部邏輯的互連,從而給廣大FPGA設計者提供另一種考慮問題的思路。在傳統的FPGA設計中出現了性能無法提升,佈局佈線擁塞的時候,是否可以考慮利用Achronix新一代的Speedster7t FPGA來簡化和加速用戶的設計。


分享到:


相關文章: