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