摘要:為了能夠靈活地驗證和實現(xiàn)自主設(shè)計的基于NoC的多核處理器,縮短NoC多核處理器的設(shè)計周期,提出了設(shè)計集成4片Virtex-6—550T FPGA的NoC多核處理器原型芯片設(shè)計/驗證平臺。分析和評估了NoC多核處理器的規(guī)模以及對FPGA硬件資源的需求,在此基礎(chǔ)上給出了集成4片F(xiàn)PGA的開發(fā)板詳細設(shè)計方案,并對各主要模塊如互聯(lián)架構(gòu)、電源、板級時鐘分布、接口技術(shù)、存儲資源等關(guān)鍵設(shè)計要點進行闡述。描述了開發(fā)板各個主要模塊的測試過程和結(jié)果,表明了該設(shè)計的可行性。
0 引 言
由于基于傳統(tǒng)SoC (system-on-chip)的單芯片處理器在內(nèi)核頻率、片上通信、功耗以及面積等方面面臨著很大問題,基于NoC (network-on-chip)的多核處理器應運而生,從體系架構(gòu)上解決了前者所面臨的諸多問題。NoC互連結(jié)構(gòu)具有IP間的并行通信、擴展性好以及吞吐量大等優(yōu)勢,并且解決了多核處理器的體系結(jié)構(gòu)問題以及困擾總線結(jié)構(gòu)的全局時鐘問題。因此,NoC互連結(jié)構(gòu)是多核處理器系統(tǒng)最有前途的解決方案。
目前,F(xiàn)PGA芯片作為承載和驗證基于NoC的多核處理器硬件設(shè)計的途徑,已經(jīng)成為了研究熱點,但是隨著硬件設(shè)計的規(guī)模不斷增加,單片F(xiàn)GPA的硬件資源并不能滿足基于NoC的多核處理器需求。因此,本文設(shè)計的驗證平臺采用了4片Xilinx公司的40nm Virtex-6系列中的XC6VLX550T (FF1759);該芯片具有將近50萬的邏輯單元、840個最大可用I/0、內(nèi)部信號可達600MHz、36組2.5Gbps高速吉比特收發(fā)器端口以及豐富的分布式RAM、Block ft 。由此觀之,集成4片該型號FPGA芯片的開發(fā)板能夠為FPGA硬件設(shè)計人員提供足夠多硬件資源,以便驗證和實現(xiàn)基于NoC的多核處理器的原型芯片設(shè)計,也為以后在片上網(wǎng)絡(NoO 上研究多核并行計算提供了條件。
1 多FPGA開發(fā)板設(shè)計的總體方案
1.1 多FPGA的互聯(lián)結(jié)構(gòu)
該開發(fā)板總體架構(gòu)如圖1所示,平臺上有4片Xilinx XC6VLX550T FPGA芯片,因此可以將需要處理的任務劃分多個子任務分配到不同F(xiàn)PGA芯片上的處理單元分別處理,從而實現(xiàn)任務處理的并行化;其任務間數(shù)據(jù)通信速度和同步時間等不僅取決于處理單元本身的通信速度,還取決于鏈接處理單元的通信互聯(lián)網(wǎng)絡。所以本平臺的4片芯片利用FPGA提供的全雙工差分高速GTX接口(low-voltage diferential signaling,LVDS)_6]和單端模式的高速普通GPIOE ,實現(xiàn)片間的全互聯(lián)網(wǎng)絡結(jié)構(gòu);其中差分高速GTX接口的數(shù)據(jù)通信遵循Aurora協(xié)議,實現(xiàn)FPGA間的大量數(shù)據(jù)的高速傳輸,而單端模式的高速GPIO為FPGA開發(fā)人員提供自定義接口空間。
1.2 開發(fā)板的具體實現(xiàn)及其特點
該開發(fā)板的具體實現(xiàn)如下:3大組GTX 10 (每組GTX IO由4路獨立的GTX IO通道構(gòu)成)分別與另外3塊FPGA芯片的對應GTX IO相連,提供64位寬,125MHz的數(shù)據(jù)傳輸通道,實現(xiàn)4塊FPGA芯片的全互聯(lián),片間吞吐率達lOGbps;以及1O對單端模式的高速GPIO。每片F(xiàn)PGA子系統(tǒng)包如圖2所示,含如下模塊:電源管理模塊、獨立的存儲系統(tǒng)、板級時鐘管理模塊、FPGA的配置方式以及對外對內(nèi)的接口模塊。該開發(fā)板具有以下特點:
(1)豐富的邏輯資源,4片F(xiàn)PGA 總邏輯資源:549888*4= 2199552。
(2)豐富的存儲資源,24片DDR3共計48Gb,片外SRAM達到256Mb,片內(nèi)RAM共計115.8Mb。
(3)存儲端口吞吐率大:DDRIII 400MHz*16*12=76.8Gbps,片外SRAM 167 MHz*64*4= 42.752Gbps。
(4)FPGA設(shè)計靈活性、通用性強:可以采用不同的處理器,也可以采用相同的處理器,如ARM等。
(5)仿真綜合軟件支持好:第三方的Modelsim能很好地完成功能仿真,而Xilinx公司的ISE則能很好地完成綜合。
2 開發(fā)板各模塊具體設(shè)計方案
2.1 系統(tǒng)電源設(shè)計
為了能夠承載更多的硬件設(shè)計,開發(fā)板在設(shè)計中使用了4片F(xiàn)PGA為處理核心。因此,系統(tǒng)的功耗要遠遠超出普通系統(tǒng)的設(shè)計要求。所以,能否設(shè)計出滿足系統(tǒng)功耗需求的穩(wěn)壓電源成為系統(tǒng)能否正常運行的關(guān)鍵。通常,電源設(shè)計有兩種實現(xiàn)方式:低壓差線性穩(wěn)壓電源LIX)與開關(guān)電源(DC_DC)開關(guān)電源(DC-DC)。u)O的特點是電源精度高、噪聲小,比較適合于精密電路供電,其缺點是輸出功率往往不夠大,并且功率的轉(zhuǎn)換效率偏低[8]。I)C-DC的特點是功率轉(zhuǎn)換效率高,能夠提供較大的電源功率,但相比較LIND而言其電源噪聲會有所提高,因此I)C-DC一般作為系統(tǒng)整體穩(wěn)壓電源使用或直接為大功率器件供電。
2.1.1 系統(tǒng)功耗估計
根據(jù)圖1和圖2可以得出系統(tǒng)的核心部分主要4片XC6VLX550T FPGA、24片DDR3 s亡IRAM、8片SRAM及8片NOR Flash,它們占據(jù)了系統(tǒng)功耗的主要部分。因此,主要對這部分的功耗進行大致上的估算,同時考慮到板上的其它器件,對估算的結(jié)果適當放寬,最終給出電源部分的具體設(shè)計參數(shù)。
本文對系統(tǒng)核心部份其中一個子系統(tǒng)所需的電壓品種的對應的功耗進行了一個估算,參見表1。
表1的數(shù)據(jù)計算均參考每片芯片最大工作電流,為了提高電源的穩(wěn)定性,本設(shè)計中電源的設(shè)計輸出電流能力大于估算系統(tǒng)總功耗值的5O 系統(tǒng)總功耗即可,并對FPGA進行功耗估算時使用Xilinx公司的功耗計算工具XPE(XPower
estimator) 對FPGA的功耗進行估算,當FPGA內(nèi)部時鐘工作在100MHz時,使用了90 以上的內(nèi)部資源,實際使用時一般不能用到所有的內(nèi)部資源。
2.1.2 系統(tǒng)電源設(shè)計方案
為了使該系統(tǒng)更具穩(wěn)定性和擴展性,本文設(shè)計的電源管理系統(tǒng)的帶載能力至少是現(xiàn)有估計功耗的兩倍。由于系統(tǒng)需要0.75V、1.0V、1.2V、1.5V、1.8V、2.5V 和3.3V穩(wěn)壓電源,考慮到整個系統(tǒng)的功耗,整個系統(tǒng)主要采用DC-DC這種效率高、輸出功率大的開關(guān)電源,而局部功耗較小、精度要求高的部分電路則采用LDO線性穩(wěn)壓電源,充分結(jié)合開關(guān)電源與線性穩(wěn)壓電源各自的優(yōu)勢進行系統(tǒng)電源的設(shè)計。DC-DC開關(guān)電源的芯片采用了凌力爾特公司的LTM4601;整個系統(tǒng)的外部供電12V。本文設(shè)計的電源方案如圖3所示。
因為1.OV、1.5V、1.8V及2.5V的電源所需電流較大,所以我們采用一個相位震蕩器來并聯(lián)兩片LTM4601得到24A的電流輸出,而其中的0.75V是DDR3所需的一個參考電壓則通過1.5V分壓得到;1.2V 和3.3V 通過LTM4601降到5V后通過一個LD0得到。
雖然采用的LTM4601的效率高,但是考慮到PCB板的空間以及有超過IOA的輸出電流,整個系統(tǒng)的散熱成為了考慮的關(guān)鍵。在進行PCB的版圖設(shè)計時,盡可能的加大鋪銅的面積,并每片F(xiàn)PGA上貼有散熱片和風扇,以便系統(tǒng)散熱。
2.2 板級時鐘分布
基于SoC結(jié)構(gòu)的處理器要求單一系統(tǒng)時鐘全局同步工作,給設(shè)計帶來了極大的困難。然而,基于NoC結(jié)構(gòu)的多核處理器采用全局異步一局部同步的通訊機制,很好地解決了單一時鐘同步問題,也為驗證平臺的時鐘分布設(shè)計提供了便利。本文為每個FPGA子系統(tǒng)設(shè)計相應的時鐘驅(qū)動,實現(xiàn)全局異步一局部同步的板級時鐘分布。
本文設(shè)計的多核處理器原型芯片設(shè)計的驗證平臺實現(xiàn)了兩種RTC方案。一種是外接有源晶振,選用EPSON公司的EG-2101CA125M為整個系統(tǒng)的差分高速GTX接口提供125MHz的差分時鐘驅(qū)動;另外一種是利用25MHz的無源晶振和ICS公司的低噪聲頻率合成器ICS8430011-22,通過配置和調(diào)節(jié)芯片可以精準的產(chǎn)生200MHz差分時鐘,并通過時鐘芯片ICS8543BGT分出4路提供給每片F(xiàn)PGA所掛載的DDR3的參考差分時鐘,具體電路參見圖4。第二種方式因為其時鐘輸出頻率的可調(diào)節(jié),使得其更具靈活性,也就為整個平臺的通用性和可擴展性做好了鋪墊。
雖然只提供兩個外部時鐘,可以利用FPGA芯片內(nèi)部的PLL產(chǎn)生400MHz的DDR3工作時鐘;100MHz系統(tǒng)時鐘和SRAM 工作時鐘。
2.3 系統(tǒng)接口設(shè)計
2.3.1 SDRAM DDR3接口設(shè)計
NoC多核處理器的各處理單元在進行并行處理任務時,需要快速存儲和讀取數(shù)據(jù),避免各個處理單元處理數(shù)據(jù)時產(chǎn)生沖突,就需要提供數(shù)量足夠多、數(shù)據(jù)傳輸帶寬和存儲空間足夠大的存儲器。因此,本文設(shè)計的平臺采用數(shù)據(jù)存取頻率能達到1333MHz DDR3芯片。
開發(fā)板的每片F(xiàn)GPA芯片外接有3組美光公司的容量為2Gb,單片位寬為8bit的MT41J256M8HX-15E (DDR3 1033)的存儲器,由兩片組成16bit寬度的數(shù)據(jù)總線。XC6VLX550T FPGA能夠支持SSTL15電平標準,能夠和DDR3 SDRAM進行無縫連接,F(xiàn)GPA與DDR3 SDRAM 的接口如圖5所示。
圖5中只是給出了其中一組DDR3與FPGA的連接,其所連接的FPGA BANK是通過Xilinx公司的官方軟件ISE開發(fā)環(huán)境鎖定得到。FPGA的不同BANK的電平標準,用戶可以自己定義,本文在設(shè)計時是參考ISE生成的UCF文件來給各個BANK輸入電源,比如BANK28和BANK38的VCCO使用1.5V的電源進行供電。兩片DDR3芯片的數(shù)據(jù)、時鐘、讀寫閃爍信號和數(shù)據(jù)掩碼信號使用FPGA分別控制,地址和控制命令信號共享。
2.3.2 N0R Flash接口設(shè)計與FPGA的配置方式
FPGA是基于SRAM 架構(gòu)來實現(xiàn)邏輯設(shè)計,所以在掉電后,編程信息立即丟失。芯片在每次加電時,都必須重新下載由設(shè)計文件生成的配置數(shù)據(jù)燒寫文件。本系統(tǒng)每片F(xiàn)PGA芯片外接有兩片相同的BPI NOR Flash,容量為256Mbit,位寬為16bit。其中的一片F(xiàn)lash接口在系統(tǒng)初始化過程中使用,當系統(tǒng)上電后或FPGA原型芯片復位鍵有效時,系統(tǒng)從片外的Flash加載硬件設(shè)計程序的bit文件到各個FPGA的本地程序存儲器,實現(xiàn)對FPGA BPI方式的配置和編程;另外,在這一片F(xiàn)lash還用來加載軟件程序設(shè)計的bit文件。
使用同一片BPI FLASH保存軟件bit文件。BPI方式通過NOR型FLASH加載FPGA配置,無需Bootloader搬移FLASH中的應用軟件bit文件,就可以直接運行。
同樣,XC6VLX550T FPGA能夠支持LVCOMS2.5V電平標準,能夠和NOR Flash進行無縫連接,F(xiàn)PGA 與NOR Flash的接口如圖6所示。
圖6中BPI Flash與FPGA相連兩個是特定的BANK,分別是BANK24和BANK34;Flash的數(shù)據(jù)線和控制信號與FPGA BANK24相連,地址信號與BANK34相連,其中的復位信號與BANK0的PROG—B相連,硬件設(shè)計人員可以自行設(shè)定對應BANK的電平標準。
BPI方式中,M0,M1和M2配置管腳的設(shè)置,010和110都是BPI方式,當M0為0時,F(xiàn)PGA加載時由BPI Flash的OxO00000地址遞增讀取配置文件;MO為1時,F(xiàn)PGA加載時有BPI Flash的0xFFFFFF地址遞減讀取配置文件 ,如圖7所示。
每片F(xiàn)PGA都是一個子系統(tǒng),有可作為獨立的模塊獨立工作,4片F(xiàn)PGA芯片相互獨立,因此4片F(xiàn)PGA使用了相互獨立的Flash。此外,在本系統(tǒng)中,4片F(xiàn)PGA芯片還連成傳統(tǒng)的菊花鏈,以便可以通過JTAG鏈式并結(jié)合Xilinx的iMPACT軟件配置FPGAl”],從而提高了系統(tǒng)的通用性。
配置方式的選擇:通過FPGA BANK0的M0,M1,M2進行配置方式的選擇,本系統(tǒng)使用了兩種配置方式:BPI和JTAG,管腳的設(shè)置如表2所示。
2.3.3 數(shù)據(jù)傳輸端口的設(shè)計
為了加大整個系統(tǒng)的數(shù)據(jù)吞吐率和更加合理的利用FPGA芯片的高速吉比特收發(fā)器,所以在FPGA2和FPGA4的BANK118各外接一個光纖接口,吞吐率可達2.5Gbps,比普通的千兆網(wǎng)口快了許多,從而增強了系統(tǒng)的實時性。光口與系統(tǒng)相連的情況如圖8所示。
該系統(tǒng)數(shù)據(jù)處理的工作流程如下:待處理的數(shù)據(jù)通過前端數(shù)據(jù)傳輸接口(光口)在前端FPGA2進行處理,通過FPGA之間的高性能數(shù)據(jù)傳輸通道(LVDS)發(fā)送到后端的FPGA進行進一步處理,最后通過后端FPGA4傳輸?shù)胶笙驍?shù)據(jù)傳輸端口。4片F(xiàn)AGA實現(xiàn)流水線并行,能夠很好的滿足片上多核處理器并行性要求。
3 開發(fā)板調(diào)試實驗過程和結(jié)果
在開發(fā)板制版和貼片結(jié)束之后,剩下的主要工作是完成開發(fā)板整體功能的調(diào)試和驗證。作者主要從電源配置電路、核心系統(tǒng)電路以及接口電路等方面對開發(fā)板的各功能模塊進行調(diào)試,并進行整體功能驗證。目前,已順利完成電源配置電路、4片F(xiàn)PGA互聯(lián)結(jié)構(gòu)、FPGA菊花鏈的加載電路、存儲器接口電路等電路系統(tǒng)的調(diào)試實驗工作。硬件設(shè)計的功能驗證則由相關(guān)的硬件設(shè)計人員進行完成,開發(fā)板設(shè)計人員從旁輔助。開發(fā)板實物圖如圖9所示。
在測試電源管理模塊的過程中,采用了線性直流穩(wěn)壓電源,型號是HK1000—11PEP(12V,18A)為開發(fā)板提供電源;采用了HP 33401A對開發(fā)板上個保險絲測試點進行各種電壓的測試,測試結(jié)果如表3所示 表3的數(shù)據(jù)表明電源管理模塊能夠穩(wěn)定正常的工作。
因為開發(fā)板是集成4片超大規(guī)模的FPGA芯片,所以4片芯片之間的互聯(lián)能否正常通訊成為了本設(shè)計的關(guān)鍵芯片間互連是差分信號相互連接以完成通訊,并遵循Aurora Frame協(xié)議,在源芯片包鏈路傳輸接口端加入測試激勵模塊, 目的芯片包鏈路傳輸接口端加入監(jiān)測器,其中設(shè)置數(shù)值比較模塊,使用Xilinx公司的Chipscope軟件觀測控制信號波形的正確性,并通過比較模塊測試數(shù)值正確性。圖lO為FPGA3芯片到FPGA4芯片數(shù)據(jù)傳輸圖,上半部分為發(fā)送端,下半部分為接收端,證明了FPGA芯片間通過GTX差分高速I()進行通訊的可行性。
至于FPGA菊花鏈的加載電路已經(jīng)通過impact軟件成功燒寫Flash間接證明了鏈路能夠正常工作;存儲器接口電路則通過下載IP到開發(fā)板對應的FPGA芯片上,能成功地對存儲器進行簡單的讀寫數(shù)據(jù)。
4 結(jié)束語
本文設(shè)計并實現(xiàn)了基于4片Virtex-6 FPGA的NoC多核處理器原型芯片設(shè)計的驗證平臺。該平臺具有超大規(guī)模的邏輯資源和豐富的數(shù)據(jù)存儲帶寬和空間,片間基于LVDS標準的無縫連接,支持高吞吐率和高速實時的數(shù)據(jù)傳輸能力,能夠很好的滿足片上網(wǎng)絡(NoC)多核理器的要求。另外,該平臺采用開關(guān)電源與線性穩(wěn)壓電源結(jié)合的方式,有效的保證了整個系統(tǒng)的供電_15]需要指出的是,系統(tǒng)設(shè)計時選用了多FPGA并行的基本設(shè)計構(gòu)架,對未來研究片上網(wǎng)絡(NoC)并行計算也有重要意義。
評論