基于FPGA和ARM9的片上網(wǎng)絡(luò )系統硬件平臺
IC制造技術(shù)的發(fā)展推動(dòng)著(zhù)芯片向更高集成度方向前進(jìn),從而能夠將整個(gè)系統設計到單個(gè)芯片中構成片上系統SoC(System on Chip)。SoC采用全局同步型共享總線(xiàn)通信結構。這類(lèi)系統由于掛在總線(xiàn)上的設備在通信時(shí)對總線(xiàn)的獨占性以及單一系統總線(xiàn)對同步時(shí)鐘的要求,使得在片上IP核越來(lái)越多的芯片中,不可避免地存在通信效率低下、全局同步時(shí)鐘開(kāi)銷(xiāo)大等問(wèn)題。
本文引用地址:http://dyxdggzs.com/article/189626.htm片上網(wǎng)絡(luò )NoC(Network on Chip)的提出有效地解決了上述問(wèn)題。該系統借鑒了計算機網(wǎng)絡(luò )中分組交換的通信方法,可以根據應用靈活地采用多種網(wǎng)絡(luò )拓撲結構互連片上IP核[1]。各IP核間有多條鏈路可以進(jìn)行并行通信,由FIFO跨接處于異步時(shí)鐘域中的IP核,實(shí)現全局異部局部同步時(shí)鐘系統。具有可擴展性好、低互連功耗和低延遲等特點(diǎn)。
然而目前NoC還處于研究階段,國內許多科研機構和院校圍繞著(zhù)網(wǎng)絡(luò )拓撲結構、映射算法、路由算法、測試方法、路由節點(diǎn)的設計等展開(kāi)研究[2]。各種基礎理論的驗證通常依賴(lài)于軟件建模和硬件仿真。但針對NoC具體的應用系統少有報道。本文闡述了一個(gè)小型NoC系統的硬件實(shí)現,對系統的硬件實(shí)現方案、通信接口及信號完整性等問(wèn)題進(jìn)行了細致地研究。通過(guò)對完整系統的設計與實(shí)現,探索了NoC系統應用過(guò)程中的關(guān)鍵技術(shù)與難點(diǎn),同時(shí)驗證了NoC相關(guān)理論算法與結構、路由節點(diǎn)的設計和FPGA的多核技術(shù)等。
1 硬件平臺的設計
NoC應用的最終目標是將大型的多核系統設計到單芯片中,使得片內可以容納大量處理器核、專(zhuān)用IP核、存儲器、數據通信單元等。然而這類(lèi)龐大的系統在流片之前都需要合適的硬件平臺來(lái)進(jìn)行仿真、驗證工作。另外某些場(chǎng)合的NoC系統更可能會(huì )直接選擇使用FPGA作為其最終的硬件實(shí)現方案。因此基于FPGA的NoC應用系統設計具有實(shí)用性??紤]到FPGA的資源限制與NoC系統特點(diǎn),針對3×3 的2D Mesh結構設計了基于FPGA的NoC應用系統框架,如圖1所示。

圖中NoC系統包含9個(gè)資源節點(diǎn),分為3行3列排列,每個(gè)資源節點(diǎn)有一個(gè)相鄰的路由節點(diǎn)R與其相連。9個(gè)路由節點(diǎn)按規則的二維網(wǎng)狀排列,由并行互連線(xiàn)連接構成通信網(wǎng)絡(luò )。資源節點(diǎn)包括資源網(wǎng)絡(luò )接口SNI(Source Network Interface)、片內存儲器M和IP核等。其中IP核可以是處理器核NIOS、專(zhuān)用IP核、DSP核,也可以是用戶(hù)設計的專(zhuān)用電路,而處理器核運行所需的存儲任務(wù)在驗證過(guò)程中由片外存儲器SDRAM和Flash實(shí)現;通信網(wǎng)絡(luò )包括路由節點(diǎn)R和并行互連線(xiàn),路由節點(diǎn)實(shí)現與本節點(diǎn)相連的資源節點(diǎn)的數據收發(fā)和相鄰路由節點(diǎn)的數據轉發(fā)功能?;ミB線(xiàn)構成路由節點(diǎn)間信息傳輸的載體,FPGA內部大量的可編程互連線(xiàn)可以保障路由節點(diǎn)間足夠的通信帶寬。
1.1 NoC系統設計
NoC系統中資源節點(diǎn)使用的IP核、路由節點(diǎn)所需的FIFO緩沖器以及大量的互連線(xiàn), 對平臺的核心器件FPGA提出了嚴峻的挑戰。以目前最先進(jìn)的FPGA來(lái)構建大型的NoC系統仍顯不足,解決的方法通常由多片FPGA組合實(shí)現系統功能??紤]到本平臺主要由一個(gè)小型應用系統的實(shí)現,以及算法和路由的驗證等組成,采用了單片大容量器件構成獨立的系統平臺,并設計了擴展接口,可進(jìn)行多片組合實(shí)現更大的應用系統。
目前,大容量可編程器件的供應商主要有Xilinx公司、Altera公司和Actel公司。各大供應商都提供了大容量與高速度的產(chǎn)品、完善的開(kāi)發(fā)工具支持和常用IP核。綜合應用的速度、軟核的開(kāi)放性、器件的定購周期與性?xún)r(jià)比,最終選定了Altera公司Cyclone IV 系列的EP4CE115F29芯片。該器件具有115 KLE,432 個(gè)M9K存儲塊,4個(gè)鎖相環(huán),20個(gè)全局同步時(shí)鐘網(wǎng)絡(luò ),780腳的BGA封裝內提供528個(gè)用戶(hù)I/O端口[3]。
處理器核是多核系統中應用功能實(shí)現的常用部件。作為一款32位RISC處理器,Altera提供的軟核NIOS II在僅占用3 KLE的情況下提供超過(guò)200 DMIPS的性能,并提供了豐富的外設接口IP和高性能的AVLEN總線(xiàn)。開(kāi)發(fā)工具SoPC Builder軟件支持單芯片內多個(gè)獨立NIOS核的定制,同時(shí)NIOS II IDE軟件提供了多核的程序開(kāi)發(fā)與調試環(huán)境。因此NIOS II可以作為NoC應用系統中的軟核處理器。
路由節點(diǎn)負責NoC的通信工作,其通信帶寬與可靠性直接影響著(zhù)系統的性能。許多研究人員深入研究了路由節點(diǎn)的設計,并針對多種應用設計進(jìn)行了優(yōu)化[4]。這類(lèi)優(yōu)化大多圍繞著(zhù)提高通信吞吐量、減少通信延遲,解決擁塞等問(wèn)題。路由的改進(jìn)給節點(diǎn)的RTL綜合提出了新的要求。例如一個(gè)緩沖式快速蟲(chóng)孔交換路由節點(diǎn),片內設計有10個(gè)以上獨立的32×16 FIFO,然而許多的小FIFO在綜合時(shí)都會(huì )各自占用一個(gè)包含32×256 的M9K單元。造成內部存儲單元的使用效率低下、資源緊缺的問(wèn)題。另外由于片上網(wǎng)絡(luò )全局異步時(shí)鐘的特點(diǎn),現代FPGA越來(lái)越豐富的全局時(shí)鐘樹(shù)網(wǎng)絡(luò )顯得多余而浪費。器件供應商們如果能在FPGA的設計過(guò)程中引入對這些問(wèn)題的解決方案,必然會(huì )極大地推動(dòng)未來(lái)NoC應用系統的FPGA實(shí)現。
1.2 基于A(yíng)RM的資源網(wǎng)絡(luò )節點(diǎn)設計
ARM(Advanced RISC Machines)系列處理器因其高性能、低功耗、開(kāi)放性好等優(yōu)點(diǎn),在許多領(lǐng)域廣泛應用。長(cháng)期的應用開(kāi)發(fā)形成了許多相關(guān)的軟硬件資源。例如三星公司的S3C24XX系列處理器,不僅提供了豐富的外設接口,移植了成熟的ARM-Linux,更可以提供完整的TCP/IP協(xié)議支持和相當豐富的外設驅動(dòng),加速了應用的開(kāi)發(fā)速度。NoC系統如能將片外的ARM處理器作為片上多核系統中的片外資源節點(diǎn),充分利用現有軟硬件資源,將給NoC系統帶來(lái)巨大的應用空間。片外硬核與NoC系統的信息交換,即ARM同路由節點(diǎn)的通信由專(zhuān)用資源網(wǎng)絡(luò )接口SNI完成。針對ARM 處理器AHB總線(xiàn)時(shí)序,設計了基于DMA通信的SNI單元,如圖2所示。圖中ARM的數據總線(xiàn)為雙向數據總線(xiàn),需要通過(guò)SNIC(Source NetworkInterface Controller)的控制實(shí)現分時(shí)復用。數據傳輸由SNIC發(fā)起,經(jīng)過(guò)nXDREQ向DMAC發(fā)送請求信號,DMAC在獲得總路控制權后發(fā)出nXDACK信號[5]。隨后AHB總線(xiàn)將產(chǎn)生源和目的地址的讀寫(xiě)信號進(jìn)行數據傳送,最終完成一次DMA傳輸。

1.3 外圍電路及電源設計
系統為實(shí)現各類(lèi)功能驗證提供了大量的外圍電路,包括多套NIOS軟核運行所需的存儲器、雙通道高速模擬信號輸入與輸出單元、攝像頭模組接口、VGA視頻輸出單元、10 M/100 M以太網(wǎng)接口單元和音頻接口單元。
電壓要求的多樣化需要多組的電源設計,其中FPGA由1.2 V核心電壓、3.3 V與2.5 V I/O Buffer電壓、2.5 V模擬PLL電壓以及1.2 V數字PLL電壓組成。模擬PLL電壓需選用線(xiàn)性整流降壓得到,以獲得低紋波輸出的穩定電壓源;其他數字部分電源適合采用開(kāi)關(guān)型整流器電路供應。例如TI的TPS54550器件,具有輸出電流大、效率高、外圍器件少等優(yōu)點(diǎn)。值得一提的是,CYCLONE IV 內部具有電壓檢測與電源管理功能,沒(méi)有上電順序要求,簡(jiǎn)化了電源的設計。
2 信號完整性分析
大量高速器件的采用、FPGA的高密度封裝、敏感的A/D和D/A轉換芯片和許多開(kāi)關(guān)整流器的噪聲,這些都決定著(zhù)需要對信號完整性分析予以足夠的重視。設計過(guò)程中對疊層、電源隔離、地線(xiàn)處理做了細致的工作。采用Cyclone片內端接OCT(On-Chip Termination)的源端端接方案,并通過(guò)精心的布局布線(xiàn),有效地克服了各種信號干擾。最后使用SigXplorer 軟件提取PCB模型對信號的反射和串擾進(jìn)行仿真,驗證了系統的信號完整性設計。
2.1 疊層設計
疊層設計涉及電源與信號層的規劃、走線(xiàn)的密度與層數的折衷等問(wèn)題。本系統中29×29的BGA780封裝的扇出是決定信號層層數的重要因素,假設1 mm球間距間扇出一根導線(xiàn),在沒(méi)有考慮頂層扇出限制和扇出線(xiàn)物理連接限制的情況下,可以計算出528個(gè)用戶(hù)I/O端口加上少量配置線(xiàn)至少需要5個(gè)信號層,加上電源層后的總層數將達到8~12層,導致層數過(guò)大。結合加工工藝和串擾分析等情況,在允許的范圍內盡可能降低層數的原則,最終確定間距39.37 mils扇出2根導線(xiàn), 其中包括14 mils 的扇出過(guò)孔、5 mils的線(xiàn)寬和扇出線(xiàn)間距。采用信號1-電源-信號2-信號3-地-信號4的層疊方案。信號線(xiàn)線(xiàn)寬為5mils時(shí)的特征阻抗控制為50 ?贅。
tcp/ip相關(guān)文章:tcp/ip是什么
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
評論