當設計工程師必須將一個大型設計置入於單片FPGA中,並使用多個實例的智慧財產權時,要如何在系統內有效地共享資源成了主要的挑戰之一。賽靈思Aurora串列通訊核心的共用邏輯特性,可協助使用者在多個實例中共享資源。Vivado設計套件中的IP整合器工具對於充分運用共享資源相當重要。


電子產業正快速轉向高速串列連接解決方案,並同時逐漸捨棄平行通訊標準。產業標準串列協定具固定的線路速率和定義通道寬度,有時無法充分利用十億位元級串列收發器的功能。


賽靈思Aurora為高速串列通訊協定,而Aurora通常是在應用領域中,產業協定執行過程太複雜或耗費資源時的首選方案。其能實現低成本、高資料速率的可擴展IP解決方案,亦提供靈活的方式來建構高速串列資料通道。


需要同時對線路速率和通道寬度進行擴展的高效能系統和應用正期待將Aurora作為解決方案。而Aurora亦可應用於ASIC設計及在系統內建置多個FPGA與背板傳輸Gigabit的資料。


Aurora採用簡易的架構,並具有用於封裝現有協定資料的擴展流量控制功能,其電力需求須與商品設備相容。賽靈思提供Aurora 64b66b和Aurora 8b10b核心作為Vivado設計套件IP目錄的一環。


Vivado IP整合器(IPI)是複雜多核心系統中協助資源最佳化的重要工具。就這點而言,IPI將協助使用者充分利用Aurora 64b66b和Aurora 8b10b核心中的「共用邏輯」特性以共享資源。為了方便起見,以下將重點介紹Aurora 64b66b IP,同時也可順帶瞭解具有相似技術的Aurora 8b10b核心。


AURORA共用資源一覽

圖1為Aurora 64b66b核心的典型方塊圖。橘色部分為時脈資源,如混合模式時脈管理器(MMCM)、BUFG和IBUFDS;及Gigabit收發器(GT)資源,如GT common和GT通道,在圖中標示為賽靈思7系列元件雙路線設計的GT1和GT2。


![20160401 FPGA TA 01FIG1](//images.contentful.com/644o4pfp4ld4/27VOaOPonG6Ugsm6UuqKgy/f1b8e5e6347d11bfd357ee19deb41077/20160401_FPGA_TA_01FIG1.jpg)
圖1 橘色部分為Aurora 64b66b內核中的共用資源。



如Kintex-7 FPGA KC705評估套件一般,典型的16通道Aurora 64b66b核心所需的時脈和GT資源已列於表1中。


![20160401 FPGA TA 01FIG1-1](//images.contentful.com/644o4pfp4ld4/2ahwh48HpWAu4Eo8O4eKiC/e07ab3aa31a9709f5773a46901c13879/20160401_FPGA_TA_01FIG1-1.jpg)
表1 Kintex-7 FPGA KC705評估套件上的時鐘和GT資源利用率。



FPGA中的時脈和GT資源取決於所選元件和封裝類型。通常多個IP核心會要求在系統級使用資源,如此便須讓這些寶貴資源最佳化,以降低系統成本和功耗。


IPI工具將核心進行視覺化以作為頂層模組;而目前標準介面之間的連接將更加直接和智慧化,並在某些情況下可實現自動化。正確的設計規則檢查內建至工具及IP周圍,以確保能強調並顯示錯誤連接,以協助設計人員在設計輸入時能發現。自動生成的頂層封裝檔及正確調用的引腳級I/O要求,使該工具能提高系統設計人員的生產效率。如果已設計了客制化子模組,可考慮使其不限於單個Quad的共用。Aurora核心的共用邏輯定義可廣泛的用於任意數量的支援通道。


下列實例將展示Aurora共用邏輯特性的應用情況。


多個單通道設計

單片FPGA中的多個單通道設計與多通道設計的不同之處在於前者需綁定通道。我們可直覺地看到多個單通道設計所需的資源會增加系統級線性。讓我們考慮並思考共用邏輯特性如何在每種情況下起作用。


首先從包含四條單通道的設計開始。透過實體四個單通道Aurora核心,可直接建構這類設計,而若實際執行該建置,便會發現每個Aurora設計都有一個GT common實例;因此,該設計的佈局和資源利用會遍及四個GT Quad,然而此方法消耗太多資源,因此不一定是最好的方案。為了在功耗和資源上提供最佳的佈署和解決方案,因此所選的四個GT應來自同一個GT Quad 。


AURORA資源分享

作為支援多個以GT為基礎之賽靈思核心的共享邏輯性特性的一部份,Aurora核心可配置為「核心(主機)中的共用邏輯」或「實例設計(從機)中的共用邏輯」。當產生系統級實體時,兩種配置的組合,可支援在主機與從機之間的共用時脈和GT資源。


對於需要使用共用邏輯特性的應用,手動建立多個IP之間的連接將可能產生錯誤,並增加總設計輸入時間。借助工具進行設計輸入是解決該問題的一種方法,而賽靈思的IP整合器能輕鬆地完成該任務。


依照賽靈思應用指南1168,「針對Vivado IP整合器的包裝客制化AXI IP」(XAPP1168) 對設計進行包裝,並在IPI中使用子模組。


Aurora的共用邏輯特性不僅可讓使用者在多個實例中共用資源,並使其能在相同的GT Quad封裝中,無需編輯GT common、PLL、時脈及相關模組,便能使用GT通道。唯一的限制是「共用」核心的線路速率應該相同(只要能接受其對時脈資源的影響,便可允許諧波的存在)。


在一個Quad中,典型的共用邏輯設計包含一個主機及一個或多個實例。與其它多數通訊IP不同,Aurora若無共用邏輯特性,則需花費相當大的精力透過手動處理所產生的設計來滿足該要求。因此,若想有效率地使用共用邏輯特性,便需要一個主機模式的Aurora核心及其它三個從機模式的Aurora核心,如圖2所示。另外,還需考慮一些系統級因素,如主機核心控制了進入從機核心的時脈,因此需重新設定核心。只有透過相同的線路速率配置Aurora核心,才能實現此種配置和資源最佳化。表2定量說明在系統中四個單通道設計使用共用邏輯特性所實現的優勢。


![20160401 FPGA TA 01FIG2](//images.contentful.com/644o4pfp4ld4/4dl8mbGOnuEmaq6Ic4Oyai/8d45f9f2125f540f740aec5c3ac74c09/20160401_FPGA_TA_01FIG2.jpg)
圖2 使用一個主機Aurora核心(左)和三個從機的共用邏輯設計。



![20160401 FPGA TA 01FIG2-1](//images.contentful.com/644o4pfp4ld4/3irdyhTpEk0so6ugQmQwqo/847ec35f0efb5d8c0572db24cdb1b346/20160401_FPGA_TA_01FIG2-1.jpg)
表2 在包含四條單通道的設計中使用共用邏輯所實現的資源利用率優勢。

(未完,請參閱下頁更多內文及附圖){pagination}

佔12個GT通道的設計

對7系列FPGA而言,以南北時脈為基礎的GT需求是,若從中階Quad中選擇單個參考時脈資源,將可服務最多達12個GT通道。


考慮在12個單通道設計中,盡可能使用最少時脈資源的情況。


如將圖2所示的「一個主機加三個從機」配置進行延伸,便可節省時脈資源。若將此種1+3配置延伸為三個Quad,此設計便一共需要六個差分時脈資源。不過,若選擇讓其中兩個主機設計接受一個單端INIT_CLK和一個GT參考時脈,那便能節省更多資源。如此也可將該系統的差分時脈輸入從六個減少至兩個,進而節省IBUFDS/IBUFDS_GTE2資源需求(參見表3)。設計中的IBUFDS_GTE2資源節省實際上還意味著可節省外部時脈資源及設計接腳,並可針對MMCM進行類似的最佳化。


![20160401 FPGA TA 01FIG2-2](//images.contentful.com/644o4pfp4ld4/5DUs2EA7mgUCOqu6qUuUOe/4c67c3273ec33ff724712d2ed90c02ea/20160401_FPGA_TA_01FIG2-2.jpg)
表3 在包含12條單通道的設計中使用共用邏輯特性所實現的資源優勢。



3×4 通道設計

假設需要3個四通道設計,若沒有共用邏輯特性,便須創造3個主機模式的四通道Aurora核心,並對產生的設計進行手動處理,以獲得最佳的時脈資源利用率。如果能直接實現同樣的結果呢?可按圖3所示,對一個主機核心和兩個從機核心進行客制化,以實現此目的。


![20160401 FPGA TA 01FIG3](//images.contentful.com/644o4pfp4ld4/6s5AXTk7RYYy0qUYQkgyqo/9e3472aaa5311fce48acc61749a98ea5/20160401_FPGA_TA_01FIG3.jpg)
圖3 面向3個連續Quad上四通道Aurora設計的「1個主機和2個從機」配置。



而更大尺寸(16個或以上)的單通道Aurora設計就更需要共用邏輯,有時甚至需要48個單通道獨立雙工鏈路。允許的Aurora單通道鏈路數量僅受限於所選元件的可用GT資源數量。在此情況下,若不有效利用共用邏輯特性,便很難實現這類的系統設計。


![20160401 FPGA TA 01FIG3-1](//images.contentful.com/644o4pfp4ld4/4noEoXbMfYGcaGaGmau8i/959e8d8b9c2909f7a56c7b50e01ce8ad/20160401_FPGA_TA_01FIG3-1.jpg)
表4 3個四通道設計的優化通道選擇。



從電路板設計角度看,該設計覆蓋12 個Quad,因此需要2×12個差分時脈,這的確是項令人生畏的艱巨任務。可利用12條單通道設計案例中所提到的技術方法,以減少整個系統的差分時脈和MMCM需求(參見表5)。


![20160401 FPGA TA 01FIG3-2](//images.contentful.com/644o4pfp4ld4/5RtXtQapaMEcOciO6i0a0a/7b6c41c10526a3651656ad844b6a47e6/20160401_FPGA_TA_01FIG3-2.jpg)
表5 在48條單通道設計中使用共用邏輯特性所實現的資源優勢。



非對稱通道和其它客製化最佳化

在視訊投影機這樣的設備中,主流資料以高傳輸量單向流動,而傳輸量較低的反向通道則用來輔助傳輸或控制資訊。而此類應用設備中,採用全面的雙工鏈路意味著使用更少的頻寬,其本質上會降低系統設計的投資回報率。此種問題的理想解決方案是:如圖4所示,採用非對稱的鏈路寬度及 最佳化的GT資源利用率,其中較高傳輸量資料流的單一方向通道數量,可能比較低傳輸量的資料流方向來的高。


![20160401 FPGA TA 01FIG4](//images.contentful.com/644o4pfp4ld4/15Inl6SLJGU2sYmuSaw8aQ/a67e9c4e3de42316662cb13553eeeef4/20160401_FPGA_TA_01FIG4.jpg)
圖4 用Aurora實現跨鏈路的非對稱資料傳輸。



目前Aurora核心中現有的資料流模式(單工/雙工),只能以相同的TX和RX通道數量配置核心。要想使兩個方向的通道數量不同,便需要為每個方向產生兩個Aurora單工核心。在賽靈思應用指南1227,「採用Aurora 64B/66B IP核心的非對稱通道設計」(XAPP1227)中便介紹了在7系列FPGA上建構非對稱通道設計的方法。


另一個有用的設計策略是BUFG資源最佳化。通常,為了實現在相同或不同線路速率下工作的多個Aurora核心,系統設計人員需了解元件具體的時脈要求與限制。而要實現多條Aurora鏈路,就必須為每條鏈路提供時脈。此外,節約時脈資源可提高系統的成本效益。若系統設計具有多個模組,且時脈資源(BUFG)不足,則應考慮用BUFR/BUFH代替BUFG。儘管如此,仍建議使用相同類型的緩衝器同時驅動GT核心的兩個TX路徑使用者時脈。


7系列Aurora核心需要一個額外的動態重配置接腳(dynamic reconfiguration port,DRP)時脈輸入,否則將需要使用一個BUFG。而若Aurora的任意運作時脈頻率選定在允許的DRP時脈範圍內,那麼Aurora輸出的任意運作時脈即可重複使用,並連接回到DRP時脈,如此也可節省設計中的BUFG數量。


在為多個Aurora設計選擇線路速率時,應切記:如果線路速率為整數倍數,即可分享時脈資源,並透過鏈路輕易得到時脈推導與分享。而若將共用邏輯特性延伸到諧波線路速率,則可以透過少量的額外時脈除頻器,為從機Aurora核心產生所需的輸入頻率。


未來可能

Aurora具有高度的靈活性,可用於創造多種系統配置和應用。在賽靈思Vivado IP整合器工具協助下,所提升的設計輸入生產效率和系統級資源共享正加速All Programmable應用領域的創新。


藉由賽靈思UltraScale架構,具備更多GT通道的元件可受益於更強的GT線路速率支援,並能實現提升設計可能性和資源利用率。