《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 在FPGA設(shè)計(jì)中如何充分利用NoC資源去支撐創(chuàng)新應(yīng)用設(shè)計(jì)

在FPGA設(shè)計(jì)中如何充分利用NoC資源去支撐創(chuàng)新應(yīng)用設(shè)計(jì)

一個(gè)運(yùn)用NoC訪(fǎng)問(wèn)片外GDDR6的例子
2020-08-21
作者:黃侖,,Achronix資深現(xiàn)場(chǎng)應(yīng)用工程師
來(lái)源:Achronix
關(guān)鍵詞: Achronix FPGA NoC 可編程邏輯

日益增長(zhǎng)的數(shù)據(jù)加速需求對(duì)硬件平臺(tái)提出了越來(lái)越高的要求,FPGA作為一種可編程可定制化的高性能硬件發(fā)揮著越來(lái)越重要的作用,。近年來(lái),,高端FPGA芯片采用了越來(lái)越多的Hard IP去提升FPGA外圍的數(shù)據(jù)傳輸帶寬以及存儲(chǔ)器帶寬。但是在FPGA內(nèi)部,,可編程邏輯部分隨著工藝提升而不斷進(jìn)步的同時(shí),,內(nèi)外部數(shù)據(jù)交換性能的提升并沒(méi)有那么明顯,所以FPGA內(nèi)部數(shù)據(jù)的交換越來(lái)越成為數(shù)據(jù)傳輸?shù)钠款i,。

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

作為Speedster7t FPGA器件中的重要?jiǎng)?chuàng)新之一,2D NoC為FPGA設(shè)計(jì)提供了幾項(xiàng)重要優(yōu)勢(shì),,包括:

l 提高設(shè)計(jì)的性能,,讓FPGA內(nèi)部的數(shù)據(jù)傳輸不再成為瓶頸。

l 節(jié)省FPGA可編程邏輯資源,,簡(jiǎn)化邏輯設(shè)計(jì),,由NoC去替代傳統(tǒng)的邏輯去做高速數(shù)據(jù)傳輸和數(shù)據(jù)總線(xiàn)管理。

l 增加了FPGA的布線(xiàn)資源,,對(duì)于資源占用很高的設(shè)計(jì)有效地降低布局布線(xiàn)擁塞的風(fēng)險(xiǎn),。

l 實(shí)現(xiàn)真正的模塊化設(shè)計(jì),減小FPGA設(shè)計(jì)人員調(diào)試的工作量,。

本文用了一個(gè)具體的FPGA設(shè)計(jì)案例,,來(lái)體現(xiàn)上面提到的NoC在FPGA設(shè)計(jì)中的幾項(xiàng)重要作用。這個(gè)設(shè)計(jì)的主要目的是展示FPGA內(nèi)部的邏輯如何去訪(fǎng)問(wèn)片外的存儲(chǔ)器,。如圖1所示,,本設(shè)計(jì)包含8個(gè)讀寫(xiě)模塊,這8個(gè)讀寫(xiě)模塊需要訪(fǎng)問(wèn)8個(gè)GDDR6通道,,這樣就需要一個(gè)8x8的AXI interconnect模塊,,同時(shí)需要有跨時(shí)鐘域的邏輯去將每個(gè)GDDR6用戶(hù)接口時(shí)鐘轉(zhuǎn)換到邏輯主時(shí)鐘,。除了圖1中的8個(gè)讀寫(xiě)模塊外,紅色區(qū)域的邏輯都需要用FPGA的可編程邏輯去實(shí)現(xiàn),。

 

圖片32.png

圖1 傳統(tǒng)FPGA實(shí)現(xiàn)架構(gòu)

對(duì)于AXI interconnect模塊,,我們采用Github上開(kāi)源的AXI4總線(xiàn)連接器來(lái)實(shí)現(xiàn),這個(gè)AXI4總線(xiàn)連接器將4個(gè)AXI4總線(xiàn)主設(shè)備連接到8個(gè)AXI4總線(xiàn)從設(shè)備,,源代碼可以在參考文獻(xiàn)2的鏈接中下載。我們?cè)谶@個(gè)代碼的基礎(chǔ)上進(jìn)行擴(kuò)展,,增加到8個(gè)AXI4總線(xiàn)主設(shè)備連接到8個(gè)AXI4總線(xiàn)從設(shè)備,,同時(shí)加上了跨時(shí)鐘域邏輯。

為了進(jìn)行對(duì)比,,我們用另外一個(gè)設(shè)計(jì),,目的還是用這8個(gè)讀寫(xiě)模塊去訪(fǎng)問(wèn)8個(gè)GDDR6通道;不同的是,,這次我們將8個(gè)讀寫(xiě)模塊連接到Achronix的Speedster7t FPGA器件的2D NoC上,,然后通過(guò)2D NoC去訪(fǎng)問(wèn)8個(gè)GDDR6通道。如圖2所示:

 

圖片33.png

圖2 Speedster7t 1500的實(shí)現(xiàn)架構(gòu)

首先,,我們從資源和性能上做一個(gè)對(duì)比,,如圖3所示:

 

圖片34.png

圖3 資源占用和性能對(duì)比

從資源占用上看,用AXI總線(xiàn)連接器的設(shè)計(jì)會(huì)比用2D NoC的設(shè)計(jì)占用多出很多的資源,,以實(shí)現(xiàn)AXI interconnect還有跨時(shí)鐘域的邏輯,。這里還要說(shuō)明一點(diǎn),這個(gè)開(kāi)源的AXI interconnect實(shí)現(xiàn)的是一種最簡(jiǎn)單的總線(xiàn)連接器,,并不支持2D NoC所能提供的所有功能,,比如地址表映射,優(yōu)先級(jí)配置,。

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

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

從性能上來(lái)看,使用AXI總線(xiàn)連接器的設(shè)計(jì)只能跑到157MHz,,而使用NoC的設(shè)計(jì)則能跑到500MHz,。如果我們看一下設(shè)計(jì)后端的布局布線(xiàn)圖,就會(huì)有更深刻的認(rèn)識(shí),。圖4所示的是使用AXI總線(xiàn)連接器的設(shè)計(jì)后端布局布線(xiàn)圖,。

 

圖片35.png

圖4 使用AXI interconnect的設(shè)計(jì)后端布局布線(xiàn)圖

從圖中可以看到,因?yàn)镚DDR6控制器分布在器件的兩側(cè)(圖中彩色高亮的部分),,所以AXI總線(xiàn)連接器的布局基本分布在器件的中間,,既不能靠近左邊,也不能靠近右邊,,所以這樣就導(dǎo)致了性能上不去,。如果增加pipeline的寄存器可以提高系統(tǒng)的性能,但是這樣會(huì)占用大量的寄存器資源,,同時(shí)會(huì)給GDDR的訪(fǎng)問(wèn)帶來(lái)很大的延時(shí),。

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

 

圖片36.png

圖5 使用2D NoC設(shè)計(jì)的后端布局布線(xiàn)圖

從本設(shè)計(jì)的整個(gè)流程來(lái)看,,使用2D NoC會(huì)極大的簡(jiǎn)化設(shè)計(jì),,提高性能,同時(shí)節(jié)省大量的資源,;FPGA設(shè)計(jì)工程師可以花更多的精力在核心模塊或者算法模塊設(shè)計(jì)上面,,把總線(xiàn)傳輸、外部接口訪(fǎng)問(wèn)仲裁和接口異步時(shí)鐘域的轉(zhuǎn)換等工作全部交給2D NoC吧,。

參考文獻(xiàn):

1. 使用帶有片上高速網(wǎng)絡(luò)的FPGA的八大好處

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

3. Achronix官方網(wǎng)站:www.achronix.com


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected],。