一種面向系統(tǒng)芯片的FPGA協(xié)同驗(yàn)證方法
1引 言
隨著SOC(系統(tǒng)芯片)設(shè)計(jì)任務(wù)復(fù)雜度的提高,功能驗(yàn)證已成為系統(tǒng)設(shè)計(jì)中最大的瓶頸。對(duì)于百萬門級(jí)的SOC芯片,每次投片的NRE是巨大的,預(yù)計(jì),在未來兩年,驗(yàn)證在設(shè)計(jì)中所占的比重將達(dá)到50%以上。由于SOC系統(tǒng)普遍涉及實(shí)時(shí)環(huán)境下的應(yīng)用,現(xiàn)有的仿真工具不可能解決所有的功能驗(yàn)證問題,有必要利用FPGA在接近實(shí)時(shí)的條件下進(jìn)行軟硬件協(xié)同驗(yàn)證?;诙嗥現(xiàn)PGA實(shí)現(xiàn)的驗(yàn)證往往面臨系統(tǒng)分割的挑戰(zhàn)。盲目的、缺少優(yōu)化的系統(tǒng)分割,不僅很可能在綜合、分割、板上實(shí)現(xiàn)出現(xiàn)多次反復(fù),浪費(fèi)大量的時(shí)間,而且也難以保證FPGA驗(yàn)證結(jié)果與ASIC設(shè)計(jì)的一致性。
本文在傳統(tǒng)邊界劃分的基礎(chǔ)上,通過靜態(tài)時(shí)序分析工具,利用關(guān)鍵路徑時(shí)延信息,對(duì)分割過程進(jìn)行約束。新的驗(yàn)證策略注重系統(tǒng)分割在時(shí)序收斂、面積、數(shù)量和管腳數(shù)等方面的平衡,目的是使分割結(jié)果趨于合理,驗(yàn)證環(huán)境更加接近SOC設(shè)計(jì)原型,避免傳統(tǒng)FPGA驗(yàn)證在系統(tǒng)分割、綜合和設(shè)計(jì)等環(huán)節(jié)的反復(fù)迭代,實(shí)現(xiàn)了驗(yàn)證和SOC開發(fā)調(diào)試的同步。文章同時(shí)討論了該方法對(duì)于信號(hào)完整性分析的貢獻(xiàn)。
最后,通過一個(gè)分割實(shí)例,就分割效率與傳統(tǒng)方法進(jìn)行了對(duì)比。
2傳統(tǒng)的FPGA驗(yàn)證流程
傳統(tǒng)的FPGA驗(yàn)證流程如圖1所示。這種綜合與分割相互無關(guān)的驗(yàn)證流程存在諸多缺陷。首先,從ASIC結(jié)構(gòu)到FPGA結(jié)構(gòu)的轉(zhuǎn)換存在差異,例如,很多SOC系統(tǒng)設(shè)計(jì)經(jīng)常會(huì)處理時(shí)鐘信號(hào)穿越“與”、“或”、“與非”等門的情況,如圖2所示。
此時(shí),綜合工具一般不會(huì)自動(dòng)選用FPGA專有的時(shí)鐘結(jié)構(gòu),其結(jié)果是產(chǎn)生時(shí)鐘歪斜(clockskew),導(dǎo)致ASIC代碼和綜合出來的FPGA在功能上不一致。即,如果忽略時(shí)鐘樹在時(shí)鐘域范圍的擴(kuò)散效應(yīng),分割時(shí)很有可能導(dǎo)致從ASIC結(jié)構(gòu)到FPGA結(jié)構(gòu)的轉(zhuǎn)換的不一致。這個(gè)例子同時(shí)說明,類似的問題同樣會(huì)在其它電路網(wǎng)絡(luò)中發(fā)生,RTL設(shè)計(jì)在滿足時(shí)序收斂要求的開發(fā)過程中,無論采用的是動(dòng)態(tài)驗(yàn)證還是靜態(tài)驗(yàn)證技術(shù),都應(yīng)當(dāng)重視電路網(wǎng)絡(luò)中路徑延遲的影響。傳統(tǒng)FPGA驗(yàn)證的系統(tǒng)分區(qū)分割策略通常采用沿自然邊界劃分的方式,設(shè)計(jì)者主觀上通常過分依賴幾何拓?fù)潢P(guān)系和層次化的系統(tǒng)模塊劃分,特別是忽略了分割過程與綜合和時(shí)序分析的關(guān)系。這種過于簡單化的分割策略很可能會(huì)導(dǎo)致不合理的結(jié)果,FPGA驗(yàn)證所映射的可能是沒有意義的ASIC結(jié)構(gòu)。
3 基于關(guān)鍵路徑時(shí)延約束的FPGA驗(yàn)證流程
3.1關(guān)鍵路徑時(shí)延提取
關(guān)于FPGA驗(yàn)證,我們認(rèn)為,高效率的系統(tǒng)分割至少應(yīng)該具備兩個(gè)條件:找到最佳的分割點(diǎn)和在系統(tǒng)級(jí)上逼近設(shè)計(jì)。首先,分割在技術(shù)上是可行的,允許將設(shè)計(jì)劃分為多個(gè)適于單個(gè)FPGA實(shí)現(xiàn)的模塊,在接近實(shí)時(shí)的環(huán)境下進(jìn)行驗(yàn)證。目前最大的FP2GA標(biāo)準(zhǔn)封裝可提供400到440個(gè)I#710;O,對(duì)I#710;O的管腳數(shù)目的支持不再成為分割的瓶頸,這也為傳統(tǒng)的沿著內(nèi)核或模塊的邊界進(jìn)行直接劃分提供了空間。在確定最佳分割點(diǎn)的反復(fù)迭代過程中,我們發(fā)現(xiàn),利用靜態(tài)時(shí)序分析獲得的關(guān)鍵路徑時(shí)延信息,完全可以用于實(shí)現(xiàn)收斂性更好的系統(tǒng)分割。靜態(tài)時(shí)序分析是一種檢查ASIC設(shè)計(jì)邏輯和時(shí)序的工具,其主要目的是計(jì)算各通路的性能,識(shí)別可靠的蹤跡,診斷建立和保持時(shí)間的配合。靜態(tài)時(shí)序分析會(huì)分析報(bào)告所有關(guān)鍵路徑,包括一些重要的調(diào)試信息,比如每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的扇出或容性負(fù)載等。
通過實(shí)踐發(fā)現(xiàn),利用關(guān)鍵路徑時(shí)延信息對(duì)系統(tǒng)分割和綜合進(jìn)行約束,可以保證分割按照相對(duì)確定的標(biāo)準(zhǔn)進(jìn)行,獲得時(shí)序優(yōu)化的結(jié)果,從而有效地減少了功能驗(yàn)證過程中的反復(fù)。同時(shí),為使驗(yàn)證過程更為接近ASIC功能,分割時(shí)盡量做到面積、晶體管數(shù)量和管腳的匹配,保證分割的結(jié)果對(duì)面積和I#710;O利用而言都是合理的故障定位要求。這些措施均優(yōu)化了FPGA驗(yàn)證過程,所獲得的綜合分區(qū)和時(shí)序收斂結(jié)果更好,為最終物理版圖驗(yàn)證鋪平了道路。我們采用的具體辦法是,首先根據(jù)靜態(tài)時(shí)序分析報(bào)告確定關(guān)鍵路徑的分區(qū)門限,然后原則上沿著功能邊界將延遲長的路徑分割到同一個(gè)FPGA分區(qū),通過更進(jìn)一步的綜合分區(qū),獲得收斂性更好的路徑。其結(jié)果是,可以將需要驗(yàn)證的探測(cè)點(diǎn)更多地分割到FPGA邊界,達(dá)到提高I#710;O利用率的目的。顯然,高的I#710;O利用率能夠有效地拓寬FPGA驗(yàn)證范圍。經(jīng)過改進(jìn)的FPGA驗(yàn)證流程如圖3所示。
該流程的優(yōu)勢(shì)在于:分割是按照確定的標(biāo)準(zhǔn)進(jìn)行的,針對(duì)傳統(tǒng)驗(yàn)證流程的時(shí)序分析,僅僅對(duì)布局布線有效的缺陷,圍繞時(shí)序分析這個(gè)中心,將邏輯實(shí)現(xiàn)和物理實(shí)現(xiàn)有機(jī)地結(jié)合在一起,著重考慮了關(guān)鍵路徑時(shí)延對(duì)FPGA分割效率的影響,使分割結(jié)果更為合理。此外,新流程通過在綜合、時(shí)序仿真過程、分割驗(yàn)證中交互進(jìn)行靜態(tài)時(shí)序分析,實(shí)現(xiàn)了綜合、分割、驗(yàn)證、設(shè)計(jì)的高效同步。在關(guān)鍵的時(shí)延信息和邊界條件約束下,經(jīng)過迭代,功能塊延時(shí)和布線延時(shí),能夠取得與實(shí)際比較一致的效果,多片F(xiàn)PGA實(shí)現(xiàn)時(shí)的代碼修改量也得到減少。Xilinx、Altera等FPGA生產(chǎn)商大多支持兼容的第三方時(shí)序分析工具,應(yīng)用時(shí)選用Synopsys的PrimeTime進(jìn)行靜態(tài)時(shí)序分析。該工具的優(yōu)勢(shì)在于不要求用戶輸入激勵(lì)或測(cè)試矢量,可通過調(diào)用db格式的網(wǎng)表文件,方便地查看關(guān)鍵路徑或指定通路的時(shí)序。
3.2 信號(hào)完整性的保證
新流程對(duì)SOC驗(yàn)證效率的另一貢獻(xiàn),是提供了一種在代碼級(jí)優(yōu)化信號(hào)完整性的途徑,有利于在綜合和板級(jí)驗(yàn)證的過程中對(duì)信號(hào)完整性實(shí)施動(dòng)態(tài)的控制,及早發(fā)現(xiàn)設(shè)計(jì)中隱藏的嚴(yán)重的信號(hào)完整性缺陷。信號(hào)完整性(SignalIntegrity,SI)是指傳輸線上的信號(hào)質(zhì)量及信號(hào)定時(shí)的準(zhǔn)確性。SOC芯片設(shè)計(jì)一般要求數(shù)據(jù)必須在時(shí)鐘觸發(fā)沿建立之前穩(wěn)定,才能保證邏輯控制的準(zhǔn)確性。應(yīng)當(dāng)注意到,摩爾定律所隱藏的另一層含義是,RTL系統(tǒng)設(shè)計(jì)要隨時(shí)應(yīng)付工藝實(shí)現(xiàn)條件的變化,因?yàn)樵O(shè)計(jì)不可能總是針對(duì)最新的工藝條件實(shí)現(xiàn)的。
新的工藝條件可能會(huì)給原設(shè)計(jì)帶來影響。例如,設(shè)計(jì)從0125Lm工藝轉(zhuǎn)向0118Lm工藝實(shí)現(xiàn)時(shí),就存在信號(hào)完整性問題。隨著系統(tǒng)速度和處理帶寬的增加,信號(hào)完整性的影響會(huì)表現(xiàn)得更加突出。另一方面,傳統(tǒng)的RTL設(shè)計(jì)在設(shè)計(jì)和驗(yàn)證環(huán)節(jié)存在與信號(hào)完整性分析脫節(jié)的現(xiàn)象,難以發(fā)現(xiàn)并修正信號(hào)完整性缺陷,或者在向更高標(biāo)準(zhǔn)工藝遷移時(shí),由于代碼修改量太大,勢(shì)必加重系統(tǒng)驗(yàn)證等環(huán)節(jié)的負(fù)擔(dān),從而使設(shè)計(jì)效率大打折扣。因此,我們的出發(fā)點(diǎn)是,爭取以最小的代碼修改量,實(shí)現(xiàn)RTL代碼與FPGA的直接映射,保證FPGA功能驗(yàn)證的要求;同時(shí),將信號(hào)完整性的影響在驗(yàn)證過程中以更直觀的方式體現(xiàn)出來。
分析表明,最直觀的信號(hào)完整性問題通常與電路模塊之間的互連點(diǎn)有關(guān),這在靜態(tài)時(shí)序分析中實(shí)際上有所反映。特別需要指出的是,新的FPGA驗(yàn)證流程是建立在經(jīng)過優(yōu)化的系統(tǒng)分割基礎(chǔ)上的。正如上一節(jié)所指出,延遲長的路徑基本約束在同一個(gè)FPGA分區(qū)。經(jīng)過這樣的優(yōu)化處理,實(shí)際上,一方面是對(duì)信號(hào)完整性有一定的優(yōu)化;另一方面,由于I#710;O利用率的提高,更多的故障探測(cè)點(diǎn)分割到了FPGA的邊界,信號(hào)完整性在協(xié)同驗(yàn)證中會(huì)得到更多的反映,通過軟件全速仿真,比較容易查找和定位設(shè)計(jì)缺陷,及早消除設(shè)計(jì)隱患;同時(shí),為RTL代碼的動(dòng)態(tài)優(yōu)化提供了依據(jù),有利于在設(shè)計(jì)前期盡量減少信號(hào)完整性缺陷,使之適應(yīng)工藝條件變化的能力更強(qiáng),提高設(shè)計(jì)的穩(wěn)健性。通過采取以上措施,我們?cè)谠璖OC設(shè)計(jì)的基礎(chǔ)上,以較小的代碼修改量,實(shí)現(xiàn)了從0125Lm向0118LmCMOS工藝的平滑過渡,并通過了系統(tǒng)后仿真。
4 系統(tǒng)分割驗(yàn)證結(jié)果
FPGA分割選用XilinxISE基于網(wǎng)表的集成驗(yàn)證環(huán)境,采用三種XC4000系列器件(XC4003、XC4005、XC4010)生成驗(yàn)證原型。該系列器件能生允許范圍內(nèi)的任意頻率,可方便地提取片上和片外的精確50#710;50占空比的時(shí)鐘,時(shí)鐘邊緣的定時(shí)精度達(dá)到1%。加之經(jīng)過改進(jìn)的時(shí)鐘布線,驗(yàn)證環(huán)境比較接近高性能SOC的實(shí)際要求,能夠保證驗(yàn)證環(huán)境與SOC系統(tǒng)保持最大限度的一致。圖4是采用地址#710;數(shù)據(jù)復(fù)用實(shí)現(xiàn)的PCI接口模塊的FPGA分割結(jié)果。其中,PCI控制單元采用兩級(jí)控制流水方式實(shí)現(xiàn)與FIFO的高速數(shù)據(jù)交換,流水線控制信號(hào)完全約束在FPGA邊界內(nèi)部。圖5是FPGA在布局布線后,50MHz系統(tǒng)時(shí)鐘下PCI接口64字節(jié)數(shù)據(jù)緩沖存儲(chǔ)器讀操作的后仿真結(jié)果。
這種更為準(zhǔn)確的分割驗(yàn)證同樣會(huì)給板級(jí)測(cè)試帶來方便。硬件仿真時(shí),可以利用邏輯分析儀的數(shù)據(jù)接口測(cè)試流到探測(cè)頭的信號(hào),也可以通過串口或以太網(wǎng)接口對(duì)邏輯分析信道進(jìn)行采集分析,便捷地測(cè)試FPGA之間的傳遞信號(hào)。經(jīng)過改善的FPGA分割驗(yàn)證策略比較準(zhǔn)確地反映了信號(hào)網(wǎng)中的路由拓?fù)?包括FPGA內(nèi)部組合邏輯延遲、信號(hào)通過FPGA邊界所需的時(shí)間;故障的定位也相對(duì)容易,某些故障還可以提前預(yù)知。在進(jìn)一步的驗(yàn)證工作中,使用了6片XC4000對(duì)一個(gè)基于Verilog語言實(shí)現(xiàn)的的SOC系統(tǒng)(包括VLIW處理器核、總線控制器、I#710;O接口等)進(jìn)行了分割(設(shè)計(jì)是以較小粒度的方式實(shí)現(xiàn)的,這樣分割效果更為理想)。全芯片軟件固化激勵(lì)測(cè)試的結(jié)果與RTL測(cè)試結(jié)果完全一致。表1列出了改進(jìn)方案與傳統(tǒng)分割結(jié)果的數(shù)據(jù)對(duì)比。結(jié)果表明,I#710;O利用率有明顯的提高,邏輯控制塊的利用率也有所改進(jìn),進(jìn)一步證明了方案的有效性。
5結(jié) 論
本文探討了一種經(jīng)過優(yōu)化的SOC系統(tǒng)的FP2GA協(xié)同驗(yàn)證策略,依靠靜態(tài)時(shí)序分析工具,利用關(guān)鍵路徑時(shí)延對(duì)分割過程進(jìn)行約束,顯著改善了傳統(tǒng)的沿自然邊界分割的效率,驗(yàn)證結(jié)果更為接近SOC運(yùn)行環(huán)境。新的協(xié)同驗(yàn)證流程實(shí)現(xiàn)了SOC設(shè)計(jì)與FPGA驗(yàn)證的同步,減少了不必要的反復(fù)迭代環(huán)節(jié),有利于排除系統(tǒng)設(shè)計(jì)階段可能導(dǎo)致系統(tǒng)失效的因素,加大了系統(tǒng)設(shè)計(jì)生產(chǎn)調(diào)試一次成功的可能性。
評(píng)論