SpringSoft Inc.茅 華
系統級芯片 (SoC)設計在尺寸和復雜度方面持續增長。與此同時,市場窗口正在縮小,并且當前電子市場對上市時間壓力極其敏感。所有的這一切促成了對SoC設計和驗證組件的極大需求。目前,業界廣泛認同的一點就是,驗證在整個SoC開發周期中占據了大約70%的時間。因此,任何可以降低驗證成本、加速驗證運行和在開發周期更早期推動驗證的產品都能引發業內人士極大興趣。
很多公司正在轉向一種具有性能和低成本優勢的、基于FPGA的原型方法,它通過應用軟件實現關鍵設計模塊或整個系統的系統級驗證。但是,原型設計通常被延遲或僅限于開發周期的后期,因為它們本身很難設置,并缺乏充分為設計偵錯所需的能見度。
SpingSoft的ProtoLinkTMProbe Visualizer推出了一種創新而實惠的軟件驅動方法,可顯著提升設計能見度,并簡化對現成的和定制設計的FPGA原型板的偵錯。它結合了獲得專利的互聯創新和專有的軟件自動化,以及業界領先的VerdiTMHDL偵錯平臺,通過在SoC設計和驗證組件上進行更快、更早期的介入,縮短了驗證周期并將投資回報最大化。
典型的基于FPGA板的原型流程開始于手動分區,在預先設定的模塊邊界基礎上,將用于設計的寄存器傳輸級(RTL)代碼分到多個FPGA上。每個預先分區的RTL模塊通過FPGA設置過程對設計進行綜合及布局布線,并將生成的配置文件(或多個用于多FPGA的文件)下載到原型板上的FPGA(或FPGA組)中。然后該設計(若在單元級驗證情況下則為其中的某些部分)就按照由真實輸入/輸出信號所驅動的電路內仿真模式運行,如圖1所示。還可用硬件邏輯分析儀捕捉真實的I/O信號,用于后續分析。

圖1 基于FPGA原型板環境運行在一種芯片內模式中時的高層級重現
快速的運行性能和相對低的成本是這種基于FPGA原型驗證流程的主要優勢,它可以在多個用戶、項目和站點上進行部署。但是,在FPGA設計上實現最佳性能和非常有限的能見度需要足夠的設置時間,這使得原型板偵錯很難進行,并且在開發周期的早期使用也不切實際。基于FPGA原型板的典型偵錯過程如圖2所示。依據潛在的bug數量,偵錯過程可能需要幾天到幾周的時間,從而大大降低了用于快速早期SoC驗證的原型板的價值。

圖2 基于FPGA原型板的典型偵錯過程
因此,一些設計團隊選擇推遲原型板的介入,直到一個更加穩定的RTL設計出現時為止。但是,這也相應推遲了軟件/硬件的相互驗證,而這正是當前SoC設計流程的一個重要部分。雖然通過軟件仿真對RTL設計進行更多的測試可以減少bug數量,但是對原型板上碰到的每個剩余bug進行偵錯的過程必然是痛苦而漫長的。
另外一些設計團隊選擇使用硬件輔助仿真,可比軟件仿真提供更快的性能,并具有相似的偵錯功能。但是比原型板更貴更慢,并且不支持大范圍部署。底線是為縮短偵錯周期,需要在更多周期內看到更多信號,這對成功部署基于FPGA的原型驗證流程是至關重要的。
ProtoLink Probe Visualizer解決了易用性和能見度問題,它可在多個周期內探測數千個信號,用一個快速探測ECO流程就能很容易地添加/改變可視信號,并且從RTL設計階段早期開始一直到最后實施,都能簡化原型板偵錯。
該款Probe Visualizer由一個集成套件構成,其中包括軟件、硬件和專有IP,可以執行FPGA安裝、儀器探測和接口任務。獲得專利的互聯技術將基于FPGA的原型板和標準的工程工作站連系起來,在傳統的電路內仿真模式下運行Probe Visualizer。
硬件部分由ProtoLink硬件接口套件組成,其中包括一個用在工作站的定制PCIe卡,以及用于連接原型板的ProtoLink接口卡,如圖3所示。基于FPGA的原型板通常裝備有用于連接外部器件的J-Connectors,或者用于連接硬件邏輯分析儀的Mictor連接器。接口卡可被連接到JConnectors或Mictor連接器。通過ProtoLink互連技術,用戶采用相同的J-Connector也能實現對不同原型板的配置,從而促進了向更快、更大或更新原型板的過渡。

圖3 包含定制PCIe和接口卡的ProtoLink Probe Visualizer的硬件部分
Probe Visualizer的IP部分以小占位IP塊的形式呈現,可以在安裝過程中自動配置到原型板上的每個FPGA,從而以時分復用的形式來提取出已經探測過的信號。
Probe Visualizer軟件實現了預先分區的FPGA安裝流程自動化,以配置和預先選定的探測信號為基礎插入所需的IP來檢測設計。在運行時,該軟件在定制PCIe卡、ProtoLink接口卡和FPGA內部的軟IP單元之間控制著專有的通信協議,以設置事件/觸發條件、增加/改變探測信號,并將探測信號上傳到SpringSoft的符合業界標準的快速信號數據庫FSDB(Fast Signal Database),進而采用Verdi自動偵錯系統進行偵錯。如果需要確定最少的信號組,該軟件可以通過SpringSoft的SilotiTM能見度增強系統進行部署,以達到最佳設計。
Probe Visualizer同時支持同步和異步采樣,可確保在數百萬的時鐘周期內都能捕捉到來自成數千個信號的探測數據,并可將這些數據保存到ProtoLink接口卡上的Probe存儲器中,而不需要原型板上的FPGA存儲資源。
Probe Visualizer采用了與Verdi偵錯軟件同樣的編譯技術,僅需一個單獨的設計編譯程序就能使帶有Probe Visualizer軟件的Verdi系統具有先進可視性、自動跟蹤和分析功能。在首次安裝過程中,通過使用Probe Visualizer和 Verdi系統共享的設計知識數據庫,門級信號能自動關聯到與其相對應的RTL中。這樣,信號值就能以工程師們最熟悉的RTL信號源代碼形式呈現,從而可降低偵錯難度,提升運行速度。
偵錯過程是一個發現、跟蹤和分析信號,以確定意外設計行為發生的根本原因的直觀過程。第一組可視信號應當能夠為偵錯提供一個良好的起點,而往往不需要額外的探測信號。傳統原型流程通常導致冗長的重復編譯和循環偵錯。
為了規避這個問題,Probe Visualizer提供了一種快速Probe ECO功能,那些需要觀測的信號可以很容易地被改變或增加,而無需重新編譯整個設計。工程師可以很容易地將基于RTL的新增探測信號從Verdi環境拖拽到Probe Visualizer中。系統在設計知識數據庫內部找到相關的EDIF信號,隨后在嵌入的FPGA的布局布線文件上直接執行快速部分布線,從而顯著降低偵錯周轉時間和在很短的時間框架內確保多個偵錯會話。一個集成的修訂管理系統持續跟蹤探測ECO,因此Probe Visualizer用戶能夠迅速地跟蹤到偵錯過程中所需的特定ECO配置。工程師們能夠在多個FPGA上指定觸發條件和瀏覽波形,就好像它們是一個FPGA一樣,從而更好地分析設計行為并找到產生bug的根本原因。這種能力尤其重要,因為一些形式或狀態是由現實世界的刺激或固件所造成的,只有當一個已知的狀態運行很長的周期后才能獲得。如果沒有Probe Visualizer,及時地對這樣一種情況進行偵錯所需的實時能見度幾乎不可能實現。
以另一種情況為例,來自FPGA1的信號驅動著FPGA2里的邏輯元素,生成所需的輸出信號。如果輸出信號被認定為是錯誤的,它們就會在Verdi環境中被追溯回FPGA2,并采用 Probe ECO來發現FPGA2里的額外信號。這些信號隨后被進一步追溯到FPGA1,再次通過Probe ECO來發現FPGA1里的額外信號,并識別造成這種問題的根本原因。采用ProtoLink Probe Visualizer的典型偵錯過程如圖4所示。

圖4 采用ProtoLink Probe Visualizer進行基于FPGA的原型板典型偵錯過程
隨著FPGA的容量越來越大和性能越來越好,FPGA原型驗證作為一種切實可行的高性價比方法為設計者廣泛接受,用于關鍵設計模塊或完全集成SoC設計的系統級驗證。但是,實施復雜性和各種偵錯困難阻礙了原型部署給原型開發商和SoC設計團隊產生了巨大的驗證負擔。
SpingSoft的Probe Visualizer通過采用直觀和基于軟件的方法,改變了原型驗證的范式,可以提供豐富、實時的設計能見度,并通過板上Verdi偵錯功能,將原型偵錯時間降低到傳統方法的一半,從而實現了偵錯生產力和整體驗證效率的提升,使得各企業能夠在SoC開發過程更早期部署基于FPGA的原型,并且快速過渡到裝備有最新和最強大FPGA技術的下一代原型板。