摘 要: 設計了基于FPGA的片上網絡系統(tǒng)硬件平臺。系統(tǒng)由大容量的FPGA、存儲器、高速A/D與D/A、通信接口和一個擴展的ARM9系統(tǒng)組成。完成了集高速數(shù)字信號處理、視頻編解碼和網絡傳輸功能與一體的多核系統(tǒng)設計。針對典型的3×3 2D Mesh結構的NoC系統(tǒng)應用進行了探討,闡述了NoC系統(tǒng)設計過程中的關鍵技術,并使用SigXplorer軟件對系統(tǒng)的信號完整性解決方案進行了PCB的反射與串擾仿真。
關鍵詞: 片上網絡;信號完整性;驗證平臺;片上端接
中圖分類號:TN47 文獻標識碼:B 文章編號:0258-7998(2012)02-0117-03
IC制造技術的發(fā)展推動著芯片向更高集成度方向前進,從而能夠將整個系統(tǒng)設計到單個芯片中構成片上系統(tǒng)SoC(System on Chip)。SoC采用全局同步型共享總線通信結構。這類系統(tǒng)由于掛在總線上的設備在通信時對總線的獨占性以及單一系統(tǒng)總線對同步時鐘的要求,使得在片上IP核越來越多的芯片中,不可避免地存在通信效率低下、全局同步時鐘開銷大等問題。
片上網絡NoC(Network on Chip)的提出有效地解決了上述問題。該系統(tǒng)借鑒了計算機網絡中分組交換的通信方法,可以根據(jù)應用靈活地采用多種網絡拓撲結構互連片上IP核[1]。各IP核間有多條鏈路可以進行并行通信,由FIFO跨接處于異步時鐘域中的IP核,實現(xiàn)全局異部局部同步時鐘系統(tǒng)。具有可擴展性好、低互連功耗和低延遲等特點。
然而目前NoC還處于研究階段,國內許多科研機構和院校圍繞著網絡拓撲結構、映射算法、路由算法、測試方法、路由節(jié)點的設計等展開研究[2]。各種基礎理論的驗證通常依賴于軟件建模和硬件仿真。但針對NoC具體的應用系統(tǒng)少有報道。本文闡述了一個小型NoC系統(tǒng)的硬件實現(xiàn),對系統(tǒng)的硬件實現(xiàn)方案、通信接口及信號完整性等問題進行了細致地研究。通過對完整系統(tǒng)的設計與實現(xiàn),探索了NoC系統(tǒng)應用過程中的關鍵技術與難點,同時驗證了NoC相關理論算法與結構、路由節(jié)點的設計和FPGA的多核技術等。
1 硬件平臺的設計
NoC應用的最終目標是將大型的多核系統(tǒng)設計到單芯片中,使得片內可以容納大量處理器核、專用IP核、存儲器、數(shù)據(jù)通信單元等。然而這類龐大的系統(tǒng)在流片之前都需要合適的硬件平臺來進行仿真、驗證工作。另外某些場合的NoC系統(tǒng)更可能會直接選擇使用FPGA作為其最終的硬件實現(xiàn)方案。因此基于FPGA的NoC應用系統(tǒng)設計具有實用性??紤]到FPGA的資源限制與NoC系統(tǒng)特點,針對3×3 的2D Mesh結構設計了基于FPGA的NoC應用系統(tǒng)框架,如圖1所示。
圖1 NoC平臺的FPGA系統(tǒng)結構圖
圖中NoC系統(tǒng)包含9個資源節(jié)點,分為3行3列排列,每個資源節(jié)點有一個相鄰的路由節(jié)點R與其相連。9個路由節(jié)點按規(guī)則的二維網狀排列,由并行互連線連接構成通信網絡。資源節(jié)點包括資源網絡接口SNI(Source Network Interface)、片內存儲器M和IP核等。其中IP核可以是處理器核NIOS、專用IP核、DSP核,也可以是用戶設計的專用電路,而處理器核運行所需的存儲任務在驗證過程中由片外存儲器SDRAM和Flash實現(xiàn);通信網絡包括路由節(jié)點R和并行互連線,路由節(jié)點實現(xiàn)與本節(jié)點相連的資源節(jié)點的數(shù)據(jù)收發(fā)和相鄰路由節(jié)點的數(shù)據(jù)轉發(fā)功能?;ミB線構成路由節(jié)點間信息傳輸?shù)妮d體,F(xiàn)PGA內部大量的可編程互連線可以保障路由節(jié)點間足夠的通信帶寬。
1.1 NoC系統(tǒng)設計
NoC系統(tǒng)中資源節(jié)點使用的IP核、路由節(jié)點所需的FIFO緩沖器以及大量的互連線, 對平臺的核心器件FPGA提出了嚴峻的挑戰(zhàn)。以目前最先進的FPGA來構建大型的NoC系統(tǒng)仍顯不足,解決的方法通常由多片F(xiàn)PGA組合實現(xiàn)系統(tǒng)功能??紤]到本平臺主要由一個小型應用系統(tǒng)的實現(xiàn),以及算法和路由的驗證等組成,采用了單片大容量器件構成獨立的系統(tǒng)平臺,并設計了擴展接口,可進行多片組合實現(xiàn)更大的應用系統(tǒng)。
目前,大容量可編程器件的供應商主要有Xilinx公司、Altera公司和Actel公司。各大供應商都提供了大容量與高速度的產品、完善的開發(fā)工具支持和常用IP核。綜合應用的速度、軟核的開放性、器件的定購周期與性價比,最終選定了Altera公司Cyclone IV 系列的EP4CE115F29芯片。該器件具有115 KLE,432 個M9K存儲塊,4個鎖相環(huán),20個全局同步時鐘網絡,780腳的BGA封裝內提供528個用戶I/O端口[3]。
處理器核是多核系統(tǒng)中應用功能實現(xiàn)的常用部件。作為一款32位RISC處理器,Altera提供的軟核NIOS II在僅占用3 KLE的情況下提供超過200 DMIPS的性能,并提供了豐富的外設接口IP和高性能的AVLEN總線。開發(fā)工具SoPC Builder軟件支持單芯片內多個獨立NIOS核的定制,同時NIOS II IDE軟件提供了多核的程序開發(fā)與調試環(huán)境。因此NIOS II可以作為NoC應用系統(tǒng)中的軟核處理器。
路由節(jié)點負責NoC的通信工作,其通信帶寬與可靠性直接影響著系統(tǒng)的性能。許多研究人員深入研究了路由節(jié)點的設計,并針對多種應用設計進行了優(yōu)化[4]。這類優(yōu)化大多圍繞著提高通信吞吐量、減少通信延遲,解決擁塞等問題。路由的改進給節(jié)點的RTL綜合提出了新的要求。例如一個緩沖式快速蟲孔交換路由節(jié)點,片內設計有10個以上獨立的32×16 FIFO,然而許多的小FIFO在綜合時都會各自占用一個包含32×256 的M9K單元。造成內部存儲單元的使用效率低下、資源緊缺的問題。另外由于片上網絡全局異步時鐘的特點,現(xiàn)代FPGA越來越豐富的全局時鐘樹網絡顯得多余而浪費。器件供應商們如果能在FPGA的設計過程中引入對這些問題的解決方案,必然會極大地推動未來NoC應用系統(tǒng)的FPGA實現(xiàn)。
1.2 基于ARM的資源網絡節(jié)點設計
ARM(Advanced RISC Machines)系列處理器因其高性能、低功耗、開放性好等優(yōu)點,在許多領域廣泛應用。長期的應用開發(fā)形成了許多相關的軟硬件資源。例如三星公司的S3C24XX系列處理器,不僅提供了豐富的外設接口,移植了成熟的ARM-Linux,更可以提供完整的TCP/IP協(xié)議支持和相當豐富的外設驅動,加速了應用的開發(fā)速度。NoC系統(tǒng)如能將片外的ARM處理器作為片上多核系統(tǒng)中的片外資源節(jié)點,充分利用現(xiàn)有軟硬件資源,將給NoC系統(tǒng)帶來巨大的應用空間。片外硬核與NoC系統(tǒng)的信息交換,即ARM同路由節(jié)點的通信由專用資源網絡接口SNI完成。針對ARM 處理器AHB總線時序,設計了基于DMA通信的SNI單元,如圖2所示。圖中ARM的數(shù)據(jù)總線為雙向數(shù)據(jù)總線,需要通過SNIC(Source NetworkInterface Controller)的控制實現(xiàn)分時復用。數(shù)據(jù)傳輸由SNIC發(fā)起,經過nXDREQ向DMAC發(fā)送請求信號,DMAC在獲得總路控制權后發(fā)出nXDACK信號[5]。隨后AHB總線將產生源和目的地址的讀寫信號進行數(shù)據(jù)傳送,最終完成一次DMA傳輸。
圖2 ARM通信接口結構圖