SpringSoft Inc.茅 華
系統(tǒng)級(jí)芯片 (SoC)設(shè)計(jì)在尺寸和復(fù)雜度方面持續(xù)增長。與此同時(shí),市場窗口正在縮小,并且當(dāng)前電子市場對(duì)上市時(shí)間壓力極其敏感。所有的這一切促成了對(duì)SoC設(shè)計(jì)和驗(yàn)證組件的極大需求。目前,業(yè)界廣泛認(rèn)同的一點(diǎn)就是,驗(yàn)證在整個(gè)SoC開發(fā)周期中占據(jù)了大約70%的時(shí)間。因此,任何可以降低驗(yàn)證成本、加速驗(yàn)證運(yùn)行和在開發(fā)周期更早期推動(dòng)驗(yàn)證的產(chǎn)品都能引發(fā)業(yè)內(nèi)人士極大興趣。
很多公司正在轉(zhuǎn)向一種具有性能和低成本優(yōu)勢(shì)的、基于FPGA的原型方法,它通過應(yīng)用軟件實(shí)現(xiàn)關(guān)鍵設(shè)計(jì)模塊或整個(gè)系統(tǒng)的系統(tǒng)級(jí)驗(yàn)證。但是,原型設(shè)計(jì)通常被延遲或僅限于開發(fā)周期的后期,因?yàn)樗鼈儽旧砗茈y設(shè)置,并缺乏充分為設(shè)計(jì)偵錯(cuò)所需的能見度。
SpingSoft的ProtoLinkTMProbe Visualizer推出了一種創(chuàng)新而實(shí)惠的軟件驅(qū)動(dòng)方法,可顯著提升設(shè)計(jì)能見度,并簡化對(duì)現(xiàn)成的和定制設(shè)計(jì)的FPGA原型板的偵錯(cuò)。它結(jié)合了獲得專利的互聯(lián)創(chuàng)新和專有的軟件自動(dòng)化,以及業(yè)界領(lǐng)先的VerdiTMHDL偵錯(cuò)平臺(tái),通過在SoC設(shè)計(jì)和驗(yàn)證組件上進(jìn)行更快、更早期的介入,縮短了驗(yàn)證周期并將投資回報(bào)最大化。
典型的基于FPGA板的原型流程開始于手動(dòng)分區(qū),在預(yù)先設(shè)定的模塊邊界基礎(chǔ)上,將用于設(shè)計(jì)的寄存器傳輸級(jí)(RTL)代碼分到多個(gè)FPGA上。每個(gè)預(yù)先分區(qū)的RTL模塊通過FPGA設(shè)置過程對(duì)設(shè)計(jì)進(jìn)行綜合及布局布線,并將生成的配置文件(或多個(gè)用于多FPGA的文件)下載到原型板上的FPGA(或FPGA組)中。然后該設(shè)計(jì)(若在單元級(jí)驗(yàn)證情況下則為其中的某些部分)就按照由真實(shí)輸入/輸出信號(hào)所驅(qū)動(dòng)的電路內(nèi)仿真模式運(yùn)行,如圖1所示。還可用硬件邏輯分析儀捕捉真實(shí)的I/O信號(hào),用于后續(xù)分析。
圖1 基于FPGA原型板環(huán)境運(yùn)行在一種芯片內(nèi)模式中時(shí)的高層級(jí)重現(xiàn)
快速的運(yùn)行性能和相對(duì)低的成本是這種基于FPGA原型驗(yàn)證流程的主要優(yōu)勢(shì),它可以在多個(gè)用戶、項(xiàng)目和站點(diǎn)上進(jìn)行部署。但是,在FPGA設(shè)計(jì)上實(shí)現(xiàn)最佳性能和非常有限的能見度需要足夠的設(shè)置時(shí)間,這使得原型板偵錯(cuò)很難進(jìn)行,并且在開發(fā)周期的早期使用也不切實(shí)際?;贔PGA原型板的典型偵錯(cuò)過程如圖2所示。依據(jù)潛在的bug數(shù)量,偵錯(cuò)過程可能需要幾天到幾周的時(shí)間,從而大大降低了用于快速早期SoC驗(yàn)證的原型板的價(jià)值。
圖2 基于FPGA原型板的典型偵錯(cuò)過程
因此,一些設(shè)計(jì)團(tuán)隊(duì)選擇推遲原型板的介入,直到一個(gè)更加穩(wěn)定的RTL設(shè)計(jì)出現(xiàn)時(shí)為止。但是,這也相應(yīng)推遲了軟件/硬件的相互驗(yàn)證,而這正是當(dāng)前SoC設(shè)計(jì)流程的一個(gè)重要部分。雖然通過軟件仿真對(duì)RTL設(shè)計(jì)進(jìn)行更多的測(cè)試可以減少bug數(shù)量,但是對(duì)原型板上碰到的每個(gè)剩余bug進(jìn)行偵錯(cuò)的過程必然是痛苦而漫長的。
另外一些設(shè)計(jì)團(tuán)隊(duì)選擇使用硬件輔助仿真,可比軟件仿真提供更快的性能,并具有相似的偵錯(cuò)功能。但是比原型板更貴更慢,并且不支持大范圍部署。底線是為縮短偵錯(cuò)周期,需要在更多周期內(nèi)看到更多信號(hào),這對(duì)成功部署基于FPGA的原型驗(yàn)證流程是至關(guān)重要的。
ProtoLink Probe Visualizer解決了易用性和能見度問題,它可在多個(gè)周期內(nèi)探測(cè)數(shù)千個(gè)信號(hào),用一個(gè)快速探測(cè)ECO流程就能很容易地添加/改變可視信號(hào),并且從RTL設(shè)計(jì)階段早期開始一直到最后實(shí)施,都能簡化原型板偵錯(cuò)。
該款Probe Visualizer由一個(gè)集成套件構(gòu)成,其中包括軟件、硬件和專有IP,可以執(zhí)行FPGA安裝、儀器探測(cè)和接口任務(wù)。獲得專利的互聯(lián)技術(shù)將基于FPGA的原型板和標(biāo)準(zhǔn)的工程工作站連系起來,在傳統(tǒng)的電路內(nèi)仿真模式下運(yùn)行Probe Visualizer。
硬件部分由ProtoLink硬件接口套件組成,其中包括一個(gè)用在工作站的定制PCIe卡,以及用于連接原型板的ProtoLink接口卡,如圖3所示?;贔PGA的原型板通常裝備有用于連接外部器件的J-Connectors,或者用于連接硬件邏輯分析儀的Mictor連接器。接口卡可被連接到JConnectors或Mictor連接器。通過ProtoLink互連技術(shù),用戶采用相同的J-Connector也能實(shí)現(xiàn)對(duì)不同原型板的配置,從而促進(jìn)了向更快、更大或更新原型板的過渡。
圖3 包含定制PCIe和接口卡的ProtoLink Probe Visualizer的硬件部分
Probe Visualizer的IP部分以小占位IP塊的形式呈現(xiàn),可以在安裝過程中自動(dòng)配置到原型板上的每個(gè)FPGA,從而以時(shí)分復(fù)用的形式來提取出已經(jīng)探測(cè)過的信號(hào)。
Probe Visualizer軟件實(shí)現(xiàn)了預(yù)先分區(qū)的FPGA安裝流程自動(dòng)化,以配置和預(yù)先選定的探測(cè)信號(hào)為基礎(chǔ)插入所需的IP來檢測(cè)設(shè)計(jì)。在運(yùn)行時(shí),該軟件在定制PCIe卡、ProtoLink接口卡和FPGA內(nèi)部的軟IP單元之間控制著專有的通信協(xié)議,以設(shè)置事件/觸發(fā)條件、增加/改變探測(cè)信號(hào),并將探測(cè)信號(hào)上傳到SpringSoft的符合業(yè)界標(biāo)準(zhǔn)的快速信號(hào)數(shù)據(jù)庫FSDB(Fast Signal Database),進(jìn)而采用Verdi自動(dòng)偵錯(cuò)系統(tǒng)進(jìn)行偵錯(cuò)。如果需要確定最少的信號(hào)組,該軟件可以通過SpringSoft的SilotiTM能見度增強(qiáng)系統(tǒng)進(jìn)行部署,以達(dá)到最佳設(shè)計(jì)。
Probe Visualizer同時(shí)支持同步和異步采樣,可確保在數(shù)百萬的時(shí)鐘周期內(nèi)都能捕捉到來自成數(shù)千個(gè)信號(hào)的探測(cè)數(shù)據(jù),并可將這些數(shù)據(jù)保存到ProtoLink接口卡上的Probe存儲(chǔ)器中,而不需要原型板上的FPGA存儲(chǔ)資源。
Probe Visualizer采用了與Verdi偵錯(cuò)軟件同樣的編譯技術(shù),僅需一個(gè)單獨(dú)的設(shè)計(jì)編譯程序就能使帶有Probe Visualizer軟件的Verdi系統(tǒng)具有先進(jìn)可視性、自動(dòng)跟蹤和分析功能。在首次安裝過程中,通過使用Probe Visualizer和 Verdi系統(tǒng)共享的設(shè)計(jì)知識(shí)數(shù)據(jù)庫,門級(jí)信號(hào)能自動(dòng)關(guān)聯(lián)到與其相對(duì)應(yīng)的RTL中。這樣,信號(hào)值就能以工程師們最熟悉的RTL信號(hào)源代碼形式呈現(xiàn),從而可降低偵錯(cuò)難度,提升運(yùn)行速度。
偵錯(cuò)過程是一個(gè)發(fā)現(xiàn)、跟蹤和分析信號(hào),以確定意外設(shè)計(jì)行為發(fā)生的根本原因的直觀過程。第一組可視信號(hào)應(yīng)當(dāng)能夠?yàn)閭慑e(cuò)提供一個(gè)良好的起點(diǎn),而往往不需要額外的探測(cè)信號(hào)。傳統(tǒng)原型流程通常導(dǎo)致冗長的重復(fù)編譯和循環(huán)偵錯(cuò)。
為了規(guī)避這個(gè)問題,Probe Visualizer提供了一種快速Probe ECO功能,那些需要觀測(cè)的信號(hào)可以很容易地被改變或增加,而無需重新編譯整個(gè)設(shè)計(jì)。工程師可以很容易地將基于RTL的新增探測(cè)信號(hào)從Verdi環(huán)境拖拽到Probe Visualizer中。系統(tǒng)在設(shè)計(jì)知識(shí)數(shù)據(jù)庫內(nèi)部找到相關(guān)的EDIF信號(hào),隨后在嵌入的FPGA的布局布線文件上直接執(zhí)行快速部分布線,從而顯著降低偵錯(cuò)周轉(zhuǎn)時(shí)間和在很短的時(shí)間框架內(nèi)確保多個(gè)偵錯(cuò)會(huì)話。一個(gè)集成的修訂管理系統(tǒng)持續(xù)跟蹤探測(cè)ECO,因此Probe Visualizer用戶能夠迅速地跟蹤到偵錯(cuò)過程中所需的特定ECO配置。工程師們能夠在多個(gè)FPGA上指定觸發(fā)條件和瀏覽波形,就好像它們是一個(gè)FPGA一樣,從而更好地分析設(shè)計(jì)行為并找到產(chǎn)生bug的根本原因。這種能力尤其重要,因?yàn)橐恍┬问交驙顟B(tài)是由現(xiàn)實(shí)世界的刺激或固件所造成的,只有當(dāng)一個(gè)已知的狀態(tài)運(yùn)行很長的周期后才能獲得。如果沒有Probe Visualizer,及時(shí)地對(duì)這樣一種情況進(jìn)行偵錯(cuò)所需的實(shí)時(shí)能見度幾乎不可能實(shí)現(xiàn)。
以另一種情況為例,來自FPGA1的信號(hào)驅(qū)動(dòng)著FPGA2里的邏輯元素,生成所需的輸出信號(hào)。如果輸出信號(hào)被認(rèn)定為是錯(cuò)誤的,它們就會(huì)在Verdi環(huán)境中被追溯回FPGA2,并采用 Probe ECO來發(fā)現(xiàn)FPGA2里的額外信號(hào)。這些信號(hào)隨后被進(jìn)一步追溯到FPGA1,再次通過Probe ECO來發(fā)現(xiàn)FPGA1里的額外信號(hào),并識(shí)別造成這種問題的根本原因。采用ProtoLink Probe Visualizer的典型偵錯(cuò)過程如圖4所示。
圖4 采用ProtoLink Probe Visualizer進(jìn)行基于FPGA的原型板典型偵錯(cuò)過程
隨著FPGA的容量越來越大和性能越來越好,F(xiàn)PGA原型驗(yàn)證作為一種切實(shí)可行的高性價(jià)比方法為設(shè)計(jì)者廣泛接受,用于關(guān)鍵設(shè)計(jì)模塊或完全集成SoC設(shè)計(jì)的系統(tǒng)級(jí)驗(yàn)證。但是,實(shí)施復(fù)雜性和各種偵錯(cuò)困難阻礙了原型部署給原型開發(fā)商和SoC設(shè)計(jì)團(tuán)隊(duì)產(chǎn)生了巨大的驗(yàn)證負(fù)擔(dān)。
SpingSoft的Probe Visualizer通過采用直觀和基于軟件的方法,改變了原型驗(yàn)證的范式,可以提供豐富、實(shí)時(shí)的設(shè)計(jì)能見度,并通過板上Verdi偵錯(cuò)功能,將原型偵錯(cuò)時(shí)間降低到傳統(tǒng)方法的一半,從而實(shí)現(xiàn)了偵錯(cuò)生產(chǎn)力和整體驗(yàn)證效率的提升,使得各企業(yè)能夠在SoC開發(fā)過程更早期部署基于FPGA的原型,并且快速過渡到裝備有最新和最強(qiáng)大FPGA技術(shù)的下一代原型板。