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