《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 在FPGA設計中如何充分利用NoC資源去支撐創新應用設計

在FPGA設計中如何充分利用NoC資源去支撐創新應用設計

一個運用NoC訪問片外GDDR6的例子
2020-08-21
作者:黃侖,Achronix資深現場應用工程師
來源:Achronix

日益增長的數據加速需求對硬件平臺提出了越來越高的要求,FPGA作為一種可編程可定制化的高性能硬件發揮著越來越重要的作用。近年來,高端FPGA芯片采用了越來越多的Hard IP去提升FPGA外圍的數據傳輸帶寬以及存儲器帶寬。但是在FPGA內部,可編程邏輯部分隨著工藝提升而不斷進步的同時,內外部數據交換性能的提升并沒有那么明顯,所以FPGA內部數據的交換越來越成為數據傳輸的瓶頸。

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

作為Speedster7t FPGA器件中的重要創新之一,2D NoC為FPGA設計提供了幾項重要優勢,包括:

l 提高設計的性能,讓FPGA內部的數據傳輸不再成為瓶頸。

l 節省FPGA可編程邏輯資源,簡化邏輯設計,由NoC去替代傳統的邏輯去做高速數據傳輸和數據總線管理。

l 增加了FPGA的布線資源,對于資源占用很高的設計有效地降低布局布線擁塞的風險。

l 實現真正的模塊化設計,減小FPGA設計人員調試的工作量。

本文用了一個具體的FPGA設計案例,來體現上面提到的NoC在FPGA設計中的幾項重要作用。這個設計的主要目的是展示FPGA內部的邏輯如何去訪問片外的存儲器。如圖1所示,本設計包含8個讀寫模塊,這8個讀寫模塊需要訪問8個GDDR6通道,這樣就需要一個8x8的AXI interconnect模塊,同時需要有跨時鐘域的邏輯去將每個GDDR6用戶接口時鐘轉換到邏輯主時鐘。除了圖1中的8個讀寫模塊外,紅色區域的邏輯都需要用FPGA的可編程邏輯去實現。

 

圖片32.png

圖1 傳統FPGA實現架構

對于AXI interconnect模塊,我們采用Github上開源的AXI4總線連接器來實現,這個AXI4總線連接器將4個AXI4總線主設備連接到8個AXI4總線從設備,源代碼可以在參考文獻2的鏈接中下載。我們在這個代碼的基礎上進行擴展,增加到8個AXI4總線主設備連接到8個AXI4總線從設備,同時加上了跨時鐘域邏輯。

為了進行對比,我們用另外一個設計,目的還是用這8個讀寫模塊去訪問8個GDDR6通道;不同的是,這次我們將8個讀寫模塊連接到Achronix的Speedster7t FPGA器件的2D NoC上,然后通過2D NoC去訪問8個GDDR6通道。如圖2所示:

 

圖片33.png

圖2 Speedster7t 1500的實現架構

首先,我們從資源和性能上做一個對比,如圖3所示:

 

圖片34.png

圖3 資源占用和性能對比

從資源占用上看,用AXI總線連接器的設計會比用2D NoC的設計占用多出很多的資源,以實現AXI interconnect還有跨時鐘域的邏輯。這里還要說明一點,這個開源的AXI interconnect實現的是一種最簡單的總線連接器,并不支持2D NoC所能提供的所有功能,比如地址表映射,優先級配置。

最重要的一點是AXI interconnect只支持阻塞訪問(blocking),不支持非阻塞訪問(non-blocking)。阻塞訪問是指發起讀或者寫請求以后,要等到本次讀或者寫操作完成以后,才能發起下一次的讀或者寫請求。而非阻塞訪問是指可以連續發起讀或者寫請求,而不用等待上次的讀或者寫操作完成。在提高GDDR6的訪問效率上面,阻塞訪問會讓讀寫效率大大下降。

如果用FPGA的可編程邏輯去實現完整的2D NoC功能,包括64個接入點、128bit位寬和400MHz的速率,大概需要850 k LE,等效于占用了Speedster7t 1500 FPGA器件56%的可編程資源。而2D NoC則可以提供 80個接入點、256bit位寬和2GHz速率,而且不占用FPGA可編程邏輯。

從性能上來看,使用AXI總線連接器的設計只能跑到157MHz,而使用NoC的設計則能跑到500MHz。如果我們看一下設計后端的布局布線圖,就會有更深刻的認識。圖4所示的是使用AXI總線連接器的設計后端布局布線圖。

 

圖片35.png

圖4 使用AXI interconnect的設計后端布局布線圖

從圖中可以看到,因為GDDR6控制器分布在器件的兩側(圖中彩色高亮的部分),所以AXI總線連接器的布局基本分布在器件的中間,既不能靠近左邊,也不能靠近右邊,所以這樣就導致了性能上不去。如果增加pipeline的寄存器可以提高系統的性能,但是這樣會占用大量的寄存器資源,同時會給GDDR的訪問帶來很大的延時。

如果再看一下圖5中使用了2D NoC的布局布線圖,就會有很明顯的對比。首先,因為用2D NoC實現了AXI總線連接器和跨時鐘域的模塊,這就節省了大量的資源;另外,因為2D NoC遍布在整個器件上,一共有80個接入點,所以8個讀寫模塊可以由工具放置在器件的任何地方,而不影響設計的性能。

 

圖片36.png

圖5 使用2D NoC設計的后端布局布線圖

從本設計的整個流程來看,使用2D NoC會極大的簡化設計,提高性能,同時節省大量的資源;FPGA設計工程師可以花更多的精力在核心模塊或者算法模塊設計上面,把總線傳輸、外部接口訪問仲裁和接口異步時鐘域的轉換等工作全部交給2D NoC吧。

參考文獻:

1. 使用帶有片上高速網絡的FPGA的八大好處

2. https://github.com/Verdvana/AXI4_Interconnect

3. Achronix官方網站:www.achronix.com


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 欧美一级毛片无遮无挡 | 国产xh98hx在线观看 | 亚洲精品国产第一区二区多人 | 亚洲黄色三级视频 | a网站免费| 欧美aa一级| 国产精品手机在线观看 | 亚洲精品福利一区二区三区 | 精品三级网站 | 国产成人综合久久亚洲精品 | 成人免费观看国产高清 | 无码免费一区二区三区免费播放 | 午夜神马视频 | 美女张开腿让男人桶的 视频 | 俄罗斯一级黄色片 | 色吊丝在线观看国产 | 综合558欧美成人永久网站 | 国产夫妻视频 | 久久久久久久久一级毛片 | 怡红院亚洲红怡院天堂麻豆 | 国产精品久久久久久久久久久不卡 | 最刺激黄a大片免费观看下截 | 久久免费精品视频 | 久久国产精品岛国搬运工 | 国产免费久久精品99re丫y | 亚洲精品高清国产一线久久97 | 国产中文在线视频 | 孕妇交 | av大片| 91精品久久久久久久久久 | 成人软件网18免费视频 | 三级黄色免费看 | 超级碰碰碰在线观看 | 亚洲国产精品一区二区九九 | 欧美一区二区三区免费高 | 成人精品视频网站 | 成 人 黄 色 免费网 | 午夜三级a三级三点在线观看 | 欧美日韩视频一区三区二区 | 长腿嫩模打开双腿呻吟 | 国产高清视频在线播放 |