AFDX-ES SoC驗(yàn)證平臺(tái)的構(gòu)建與實(shí)現(xiàn)
摘 要: 以SoC軟硬件協(xié)同設(shè)計(jì)方法學(xué)及驗(yàn)證方法學(xué)為指導(dǎo),系統(tǒng)介紹了以ARM9為核心的AFDX-ES SoC設(shè)計(jì)過程中,軟硬件協(xié)同設(shè)計(jì)和驗(yàn)證平臺(tái)的構(gòu)建過程及具體實(shí)施。應(yīng)用實(shí)踐表明該平臺(tái)具有良好的實(shí)用價(jià)值。
航空系統(tǒng)中的控制系統(tǒng)對(duì)數(shù)據(jù)的安全性、實(shí)時(shí)性、可靠性及可維修性有極高的要求。在這種環(huán)境下,必須使用最具可靠性與實(shí)時(shí)性的通信鏈路。航空全雙工交換以太網(wǎng)AFDX(Avionics Full-Duplex Ethernet)的開發(fā)滿足了商業(yè)航空應(yīng)用的需要。AFDX[1]是一種航空電子子系統(tǒng)間進(jìn)行數(shù)據(jù)交換的網(wǎng)絡(luò)標(biāo)準(zhǔn),它是在IEEE802.3以太網(wǎng)技術(shù)的基礎(chǔ)上增加一些特殊機(jī)制,提供一個(gè)具有確定性和可靠性的網(wǎng)絡(luò)。冗余鏈路的設(shè)置,保證了數(shù)據(jù)報(bào)文傳輸?shù)目煽啃?。幀管理機(jī)制負(fù)責(zé)在數(shù)據(jù)報(bào)文發(fā)送給應(yīng)用程序之前檢查幀的完整性和管理冗余。
AFDX-ES(End System)是指AFDX的終端系統(tǒng),主要功能是提供服務(wù),確保提供給應(yīng)用方的數(shù)據(jù)具有安全性和可靠性。每一個(gè)終端系統(tǒng)與交換機(jī)之間不僅有一條直接的雙向連接,同時(shí)還與另一臺(tái)交換機(jī)之間保持第二條雙向連接,確保終端系統(tǒng)具有冗余性。
AFDX-ES SoC是從航電系統(tǒng)總線應(yīng)用需求出發(fā),規(guī)劃出以高性能ARM922T處理器為核心、可實(shí)現(xiàn)AFDX協(xié)議主要功能的高速互聯(lián)網(wǎng)終端系統(tǒng)芯片。
典型的SoC驗(yàn)證平臺(tái)通常采用3種體系結(jié)構(gòu):黑匣子結(jié)構(gòu)、通用現(xiàn)場(chǎng)可編程門陣列FPGA板和開放式結(jié)構(gòu)。開放式結(jié)構(gòu)因其在系統(tǒng)資源使用和擴(kuò)展上的靈活性,已成為SoC驗(yàn)證平臺(tái)的主流,典型的平臺(tái)有加州伯克利大學(xué)的BEE、Hardi公司的HAPS和Aptix公司的MP4CF。BEE和HAPS采用大規(guī)模FPGA陣列,MP4CF則采用現(xiàn)場(chǎng)可編程互聯(lián)元件(FPIC)技術(shù)。在國(guó)內(nèi)一些大學(xué)也開發(fā)了規(guī)模相對(duì)較小的FPGA陣列驗(yàn)證平臺(tái)。
SoC驗(yàn)證所花費(fèi)的工作量平均占總設(shè)計(jì)工作量的80%以上,驗(yàn)證已逐漸成為大規(guī)模集成電路設(shè)計(jì)的主要瓶頸。隨著我國(guó)航電系統(tǒng)大規(guī)模芯片設(shè)計(jì)的快速發(fā)展,SoC的規(guī)模越來越大,設(shè)計(jì)與驗(yàn)證流程越來越冗長(zhǎng),如何縮短驗(yàn)證時(shí)間、提高驗(yàn)證效率和質(zhì)量、縮短芯片面市時(shí)間, 已是SoC設(shè)計(jì)領(lǐng)域中最受關(guān)注的問題。為了加速SoC的驗(yàn)證,縮短開發(fā)周期,有效解決AFDX-ES SoC設(shè)計(jì)邏輯驗(yàn)證的瓶頸限制,本文提出了用于驗(yàn)證AFDX-ES SoC芯片邏輯功能的FPGA驗(yàn)證平臺(tái),采用軟硬件協(xié)同驗(yàn)證方式,以確保在流片之前對(duì)設(shè)計(jì)進(jìn)行充分、有效的驗(yàn)證。
1 AFDX-ES芯片架構(gòu)
AFDX-ES SoC芯片的片上總線采用ARM公司的AMBA(Advanced MicroController Bus Architecture)總線,包括高速總線(AHB)和外設(shè)總線(APB)等。AHB總線提供高帶寬、低延遲的連接,APB總線為連接具有不同總線寬度和時(shí)序要求的外設(shè)提供一條途徑,避免低性能設(shè)備對(duì)高性能設(shè)備的影響。ARM922T處理器、ES-CCU(終端系統(tǒng)中央控制單元)控制器、PCI總線控制器、SRAM、中斷控制器、SDRAM控制器、Flash接口、DMA和測(cè)試接口控制器(TIC)掛接在AHB總線上,TIMER、RTC、WDT、串口控制器及通用輸入輸出接口等掛接在APB總線上,AHB/APB橋接器可以提供兩種總線之間的訪問控制。
目前基于0.18 ?滋m的復(fù)雜芯片一次投片成功率只有35%左右,造成芯片重復(fù)投片的主要原因是驗(yàn)證不夠充分。SoC設(shè)計(jì)的驗(yàn)證需要投入的資源已占整個(gè)設(shè)計(jì)資源的60%~80%,如何在流片之前對(duì)設(shè)計(jì)進(jìn)行充分的驗(yàn)證,已成為整個(gè)SoC設(shè)計(jì)流程的關(guān)鍵。
對(duì)于功能復(fù)雜、具有高集成度的SoC,要在流片前充分驗(yàn)證,確保流片功能的正確性,構(gòu)建AFDX-ES SoC設(shè)計(jì)與驗(yàn)證平臺(tái)是確保一次流片成功的前提。
2 AFDX-ES SoC設(shè)計(jì)與驗(yàn)證流程
AFDX-ES SoC設(shè)計(jì)與驗(yàn)證采用層次化驗(yàn)證的方法,軟硬件協(xié)同設(shè)計(jì)與層次化驗(yàn)證由以下4個(gè)階段組成:
(1)IP/模塊級(jí)仿真驗(yàn)證;
(2)基于芯片虛擬原型的軟硬件協(xié)同驗(yàn)證;
(3)基于芯片F(xiàn)PGA原型的軟硬件協(xié)同驗(yàn)證;
(4)物理設(shè)計(jì)后的版圖后仿真。
本文重點(diǎn)描述基于芯片F(xiàn)PGA原型的軟硬件協(xié)同驗(yàn)證。
3 基于芯片F(xiàn)PGA原型的軟硬件協(xié)同仿真驗(yàn)證
基于虛擬原型的驗(yàn)證平臺(tái)可以大量驗(yàn)證設(shè)計(jì)電路的功能,但是存在驗(yàn)證時(shí)間長(zhǎng)、速度相對(duì)較慢的缺點(diǎn)[5]。因此,一些驗(yàn)證時(shí)間比較長(zhǎng)的驗(yàn)證項(xiàng),如大量幀收發(fā)的驗(yàn)證、協(xié)議驗(yàn)證、操作系統(tǒng)驗(yàn)證等適合在基于芯片的FPGA原型中驗(yàn)證。可以充分發(fā)揮此平臺(tái)的驗(yàn)證特點(diǎn),盡可能模擬系統(tǒng)的真實(shí)應(yīng)用環(huán)境,對(duì)于在虛擬原型平臺(tái)上不便于驗(yàn)證和難以驗(yàn)證的驗(yàn)證項(xiàng)進(jìn)行快速驗(yàn)證。此階段的驗(yàn)證可以認(rèn)為完全等同于芯片的邏輯功能的全面驗(yàn)證?;谛酒現(xiàn)PGA原型的軟硬件協(xié)同驗(yàn)證的充分驗(yàn)證,一方面可以發(fā)現(xiàn)設(shè)計(jì)中存在的各種問題;另一方面盡可能地將芯片的FPGA原型置身于應(yīng)用環(huán)境下,*價(jià)芯片能不能用、好不好用。
3.1 芯片F(xiàn)PGA原型的軟硬件協(xié)同驗(yàn)證平臺(tái)的構(gòu)建
在芯片的FPGA原型構(gòu)建過程中采用基于ARM922T-
Core Module+驗(yàn)證母板的模式。ARM922T Core Module板卡實(shí)現(xiàn)ARM922T處理器的功能,并且提供一組標(biāo)準(zhǔn)的接口;驗(yàn)證母板實(shí)現(xiàn)AFDX-ES中除了處理器之外的其他功能模塊的功能及其他測(cè)試手段。
驗(yàn)證母板上包含了AFDX-ES邏輯單元及外圍的輔助測(cè)試資源,驗(yàn)證母板的結(jié)構(gòu)如圖1所示。
3.2 基于芯片F(xiàn)PGA原型平臺(tái)的驗(yàn)證程序的開發(fā)
此階段的程序開發(fā)主要有4個(gè)方面。
(1)對(duì)于虛擬原型中使用的基本資源、基本功能及部分系統(tǒng)級(jí)功能驗(yàn)證程序,需要移植到FPGA驗(yàn)證平臺(tái)。由于FPGA驗(yàn)證平臺(tái)與虛擬原型的驗(yàn)證平臺(tái)有一定的差異,包括地址空間分配等,需要把原來在虛擬原型平臺(tái)上的程序做相應(yīng)的移植。本部分軟件支持3.3節(jié)完成芯片的基本資源、基本功能和系統(tǒng)級(jí)功能的驗(yàn)證工作。
(2)開發(fā)典型的AFDX協(xié)議驗(yàn)證程序。在虛擬原型驗(yàn)證平臺(tái)上受驗(yàn)證速度等因素的限制,一些系統(tǒng)級(jí)的驗(yàn)證和協(xié)議驗(yàn)證必須在FPGA驗(yàn)證平臺(tái)上實(shí)現(xiàn)。本階段開發(fā)的軟件完成3.4節(jié)AFDX協(xié)議的軟硬件協(xié)同驗(yàn)證;
(3)嵌入式操作系統(tǒng)的移植與應(yīng)用驗(yàn)證程序的開發(fā)。本階段開發(fā)的軟件完成3.5節(jié)基于芯片F(xiàn)PGA原型的嵌入式操作系統(tǒng)協(xié)同驗(yàn)證。
(4)開發(fā)典型應(yīng)用驗(yàn)證程序,本階段開發(fā)的軟件可完成3.6節(jié)的典型應(yīng)用驗(yàn)證。
3.3 基于芯片F(xiàn)PGA原型平臺(tái)基本功能驗(yàn)證
基于FPGA原型的驗(yàn)證要對(duì)虛擬原型驗(yàn)證平臺(tái)的所有驗(yàn)證項(xiàng)進(jìn)行驗(yàn)證,保證虛擬平臺(tái)的所有驗(yàn)證內(nèi)容在真實(shí)環(huán)境中也是正確的[6]。首先要進(jìn)行的是資源和功能的驗(yàn)證。在此階段主要還是使用虛擬原型階段開發(fā)的驗(yàn)證程序?qū)τ谫Y源和功能進(jìn)行驗(yàn)證。但是需要注意的是,由于受ARM922TCore Module的限制,虛擬原型和FPGA原型的地址空間分配等有所不同,需要根據(jù)具體情況進(jìn)行相應(yīng)的修改。
在此階段,對(duì)每一個(gè)設(shè)計(jì)模塊都必須進(jìn)行詳細(xì)的測(cè)試驗(yàn)證,尤其是驗(yàn)證在真實(shí)的硬件環(huán)境中各個(gè)模塊的特性和功能是否滿足要求。針對(duì)核心模塊ES-CCU還需要進(jìn)行大量幀收發(fā)的驗(yàn)證,確保在大數(shù)據(jù)量傳輸時(shí)該功能模塊無缺陷。
3.4 基于芯片F(xiàn)PGA原型AFDX協(xié)議的軟硬件協(xié)同驗(yàn)證
芯片實(shí)現(xiàn)了AFDX協(xié)議功能,在實(shí)際應(yīng)用中必須開發(fā)相應(yīng)的協(xié)議軟件以滿足系統(tǒng)要求,在設(shè)計(jì)階段需要開發(fā)協(xié)議軟件進(jìn)行軟硬件協(xié)同驗(yàn)證。主要包括驅(qū)動(dòng)層軟件和協(xié)議層軟件。
驅(qū)動(dòng)軟件實(shí)現(xiàn)設(shè)備管理并提供用戶或操作系統(tǒng)訪問網(wǎng)絡(luò)通道硬件設(shè)備的接口,設(shè)備驅(qū)動(dòng)程序采用結(jié)構(gòu)化的設(shè)計(jì)思想。遵循Linux、Windows等系統(tǒng)的程序設(shè)計(jì)規(guī)范,提供一個(gè)通用的與設(shè)備無關(guān)的程序結(jié)構(gòu),方便系統(tǒng)移植和維護(hù)。按照通用設(shè)備結(jié)構(gòu),為上層用戶提供一組通用的設(shè)備管理和通信函數(shù)。驅(qū)動(dòng)層軟件主要包括初始化軟件和接口函數(shù)。初始化軟件包括上電初始化、通信協(xié)議初始化、DMA初始化配置、PCI初始化配置、協(xié)議初始化配置和中斷初始化等初始化過程。
協(xié)議層軟件主要實(shí)現(xiàn)針對(duì)協(xié)議層要求對(duì)數(shù)據(jù)進(jìn)行分片、打包等轉(zhuǎn)換,并對(duì)從MAC端口接收的數(shù)據(jù)進(jìn)行完整性檢查和余度管理,完成數(shù)據(jù)與包頭的分離、校驗(yàn)和計(jì)算、UDP協(xié)議類型提取等操作,為片上處理器進(jìn)行協(xié)議棧處理提供必要信息。
3.5 基于芯片F(xiàn)PGA原型的嵌入式操作系統(tǒng)協(xié)同驗(yàn)證
芯片F(xiàn)PGA原型的驗(yàn)證能夠最直接和全面地驗(yàn)證設(shè)計(jì)的正確性和完備性,是虛擬原型驗(yàn)證通過之后最接近真實(shí)硬件設(shè)計(jì)的驗(yàn)證。雖然完成了模塊級(jí)、系統(tǒng)級(jí)的驗(yàn)證程序?qū)ζ细鱾€(gè)模塊之間的互動(dòng)操作進(jìn)行模塊級(jí)、系統(tǒng)級(jí)功能驗(yàn)證,但這種方法仍然很難保證驗(yàn)證的充分性。
在此情況下,往往采用基于嵌入式操作系統(tǒng)的系統(tǒng)級(jí)軟件,從資源管理者的角度進(jìn)行功能的充分驗(yàn)證。
嵌入式操作系統(tǒng)作為嵌入式系統(tǒng)的靈魂,對(duì)整個(gè)系統(tǒng)進(jìn)行硬件資源管理、多任務(wù)協(xié)調(diào)調(diào)度、任務(wù)間同步和通信、存儲(chǔ)管理、設(shè)備管理等。在SoC驗(yàn)證中,通過運(yùn)行嵌入式操作系統(tǒng)及基于操作系統(tǒng)的應(yīng)用程序,模擬真實(shí)的軟件應(yīng)用環(huán)境;通過驗(yàn)證平臺(tái)的搭建,能夠移植操作系統(tǒng)和各種實(shí)際應(yīng)用軟件,更加真實(shí)地模擬應(yīng)用環(huán)境,操作系統(tǒng)的移植和運(yùn)行能夠更高效地覆蓋硬件設(shè)計(jì)IP及互聯(lián)的驗(yàn)證項(xiàng),實(shí)現(xiàn)較高的驗(yàn)證覆蓋率。可以在芯片的設(shè)計(jì)階段發(fā)現(xiàn)操作系統(tǒng)是否能夠?qū)τ布Y源進(jìn)行管理、能否有效地進(jìn)行任務(wù)管理等問題,能否對(duì)設(shè)計(jì)中各模塊功能以及系統(tǒng)功能進(jìn)行更為有效的驗(yàn)證,盡早地發(fā)現(xiàn)SoC硬件設(shè)計(jì)中的缺陷,確保設(shè)計(jì)的正確性和可靠性,為芯片的充分驗(yàn)證提供了有效手段。同時(shí),為流片后的芯片測(cè)試及應(yīng)用工作提供了一個(gè)良好的測(cè)試平臺(tái)和應(yīng)用軟件的開發(fā)平臺(tái),加速SoC應(yīng)用開發(fā)的進(jìn)度,加速芯片推廣和盡快上市。
日益復(fù)雜的應(yīng)用需求,加快了嵌入式操作系統(tǒng)的發(fā)展。目前國(guó)內(nèi)外已有幾十種商業(yè)化操作系統(tǒng)可供選擇,如VxWorks、WinCE等。在同一硬件平臺(tái)上可以運(yùn)行不同的嵌入式操作系統(tǒng),但必須根據(jù)自己的硬件平臺(tái)和應(yīng)用場(chǎng)合將某種操作系統(tǒng)進(jìn)行定制和代碼修改,使其能夠運(yùn)行在該硬件平臺(tái)上,這個(gè)過程就是操作系統(tǒng)的移植。在明確驗(yàn)證了芯片的基本硬件資源以后,移植盡可能多的嵌入式操作系統(tǒng)至SoC上,確保驗(yàn)證的充分性。在AFDX-ES設(shè)計(jì)中,在FPGA 原型驗(yàn)證環(huán)境下移植了VxWorks嵌入式操作系統(tǒng),并編寫大量上層應(yīng)用程序來對(duì)SoC硬件設(shè)計(jì)進(jìn)行了詳盡的驗(yàn)證。
VxWorks是美國(guó)風(fēng)河公司設(shè)計(jì)開發(fā)的一套具有微內(nèi)核(最小為8 KB)、可裁剪的高性能實(shí)時(shí)操作系統(tǒng)(RTOS),支持廣泛的網(wǎng)絡(luò)協(xié)議。其在軍事、航天、通信、工業(yè)控制等諸多方面應(yīng)用廣泛,并已成為嵌入式領(lǐng)域使用最多的操作系統(tǒng)之一?;贔PGA平臺(tái)的VxWorks系統(tǒng)移植驗(yàn)證,需要建立開發(fā)環(huán)境,在PC機(jī)上安裝VxWorks集成開發(fā)環(huán)境Tornado2.2 for ARM,采用宿主機(jī)目標(biāo)機(jī)交叉開發(fā),以網(wǎng)口作為內(nèi)核下載通道。編寫一個(gè)可靠的BSP軟件包,是進(jìn)行VxWorks操作系統(tǒng)移植工作的重要部分,直接決定了操作系統(tǒng)移植能否成功。設(shè)計(jì)中根據(jù)具體的硬件點(diǎn),首先配置一個(gè)能生成最小內(nèi)核的BSP包,包括中斷處理程序、定時(shí)器驅(qū)動(dòng),同時(shí)為了方便調(diào)試,還加入網(wǎng)口驅(qū)動(dòng),以便啟動(dòng)WDB調(diào)試工具[10]。在成功運(yùn)行最小內(nèi)核以后,以此BSP包為基礎(chǔ)添加基于AFDX-ES芯片上其他模塊的驅(qū)動(dòng)程序,以達(dá)到對(duì)系統(tǒng)的充分驗(yàn)證。
通過運(yùn)行VxWorks嵌入式操作系統(tǒng),對(duì)片上資源進(jìn)行管理以及各功能模塊進(jìn)行功能調(diào)用,驗(yàn)證了AFDX-ES芯片各IP模塊的工作情況及各 IP模塊在系統(tǒng)中相互配合工作的情況,盡早地發(fā)現(xiàn)了SoC硬件設(shè)計(jì)中的缺陷,確保了設(shè)計(jì)的正確性和可靠性。由此,在SoC上移植嵌入式操作系統(tǒng)可謂SoC 的設(shè)計(jì)中一個(gè)優(yōu)秀的測(cè)試向量集。
3.6 基于芯片F(xiàn)PGA原型的典型應(yīng)用驗(yàn)證
為了進(jìn)一步驗(yàn)證設(shè)計(jì)的SoC是否滿足系統(tǒng)的應(yīng)用需求,利用搭建的芯片F(xiàn)PGA原型構(gòu)建了一個(gè)典型的系統(tǒng)應(yīng)用環(huán)境,對(duì)于AFDX-ES進(jìn)行了典型系統(tǒng)應(yīng)用驗(yàn)證。在此系統(tǒng)中使用了一臺(tái)AFDX交換機(jī)。此階段的驗(yàn)證一方面通過驗(yàn)證證明所設(shè)計(jì)的SoC可以與交換機(jī)進(jìn)行通信;另一方面此階段所開發(fā)的驗(yàn)證原型系統(tǒng)也是所設(shè)計(jì)SoC的一個(gè)系統(tǒng)解決方案。
圖2所示的應(yīng)用驗(yàn)證是一個(gè)典型的應(yīng)用驗(yàn)證環(huán)境。在此基礎(chǔ)上,使用了一臺(tái)AFDX交換機(jī)、2塊AFDX-ES驗(yàn)證板和1臺(tái)PC機(jī)。PC機(jī)與AFDX交換機(jī)連接,可作為服務(wù)器使用,2塊AFDX-ES驗(yàn)證板都連接到交換機(jī),驗(yàn)證系統(tǒng)1可以通過交換機(jī)與系統(tǒng)2通信,同時(shí),也可以通過駐留在PC機(jī)上的監(jiān)控軟件檢測(cè)數(shù)據(jù)交換狀態(tài)。通過上述驗(yàn)證表明所設(shè)計(jì)的AFDX-ES可以與交換機(jī)互相通信,滿足系統(tǒng)應(yīng)用需求。
為了適應(yīng)我國(guó)航電系統(tǒng)大規(guī)模芯片設(shè)計(jì)的快速發(fā)展,解決驗(yàn)證規(guī)模的瓶頸限制,本文提出了以ARM9為核心的AFDX-ES SoC軟硬件協(xié)同驗(yàn)證方法、流程和平臺(tái)。整個(gè)驗(yàn)證過程基于FPGA原型,對(duì)設(shè)計(jì)的基本功能進(jìn)行了充分驗(yàn)證,完成了協(xié)議所要求的最基本的數(shù)據(jù)處理機(jī)制的驗(yàn)證,驗(yàn)證軟件可以很好地應(yīng)用在流片后的系統(tǒng)應(yīng)用中,同時(shí)利用原型平臺(tái)構(gòu)建了與交換機(jī)通信的典型應(yīng)用環(huán)境,并在此環(huán)境中開發(fā)了相應(yīng)的程序,實(shí)現(xiàn)了交換機(jī)的通信驗(yàn)證。此階段開發(fā)的應(yīng)用程序和原型系統(tǒng)可以應(yīng)用在流片后的系統(tǒng)中。
本文介紹的軟硬件協(xié)同設(shè)計(jì)驗(yàn)證方法、流程、平臺(tái)能在流片之前對(duì)設(shè)計(jì)進(jìn)行充分、有效的驗(yàn)證,在項(xiàng)目的實(shí)踐中取得了良好的效果,對(duì)于類似的SoC協(xié)同驗(yàn)證有很好的參考價(jià)值。