隨著系統(tǒng)芯片 (SoC) 設計的體積與復雜度持續(xù)升高,,驗證作業(yè)變成了瓶頸:占了整個 SoC 研發(fā)過程中 70% 的時間。因此,任何能夠降低驗證成本并能更早實現驗證 sign-off 的方法都是眾人的注目焦點。
臺灣工業(yè)技術研究院 (工研院, ITRI) 在今年的設計自動化大會(2011 DAC)提出的案例研究,提出一種能夠顯著提升客制化FPGA 原型板驗證效率的創(chuàng)新方法,,自動化現有的電路仿真(in-circuit emulation)偵錯功能,并提供更高的 FPGA 能見度,。這個以 FPGA 為基礎的 SoC 驗證平臺對工研院而言是前景看好的嶄新領域,,對其支持臺灣IC設計產業(yè)新技術領域的研發(fā)工作助益良多。
案例研究:高效能的多媒體SoC平臺
這款 SoC 設計是高效能的 Android 兼容多媒體 SoC 平臺,。配置了 AXI,、AHB 與 APB 總線,供通訊使用,;由工研院(PACDSPs,、EMDMA 與 DDR2 控制器) 設計的高效能客制化 IP 組件連結至 AXI 總線,加速 H.264 視訊編譯碼器 (video codec) 等多媒體應用軟件的執(zhí)行,。包括 ARM,、SDRAM、DMA,、SRAM,、Ethernet 與 LCD 在內的標準 IP 組件連結至 AHB 總線,適合于一般應用。最后,,UART,、Timer、I2S,、I2C 與 Watchdog 等低頻率的 IP 區(qū)塊 (block) 則連結至 APB 總線,。
下列案例研究說明了工研院與思源科技工程師如何合作,使用思源科技ProtoLink Probe Visualizer,,克服工研院SoC 設計中出現的驗證挑戰(zhàn),。這個與音效功能相關的問題是:在 FPGA 原型板未激活 OS 的狀況下,功能正常運作 (可錄音與播放),;但如果在原型板上啟用 Linux,,功能就無法正常運作。在 FPGA 原型環(huán)境中,,要使用傳統(tǒng)的偵錯方法排除這類問題是相當困難的,。FPGA 的能見度僅局限在少數的訊號與時脈周期內,無法提供足夠的信息找出錯誤所在,。而因為激活 OS (例如 Linux) 耗費的時間相當長,,想透過緩存器轉換階層 (RTL) 仿真來解決問題也行不通。由于問題的成因可能在于軟件,、硬件或驅動程序,因此要確實找出問題的根本原因是一項考驗,。
與眾不同的作法
要簡化偵錯作業(yè),,就需要更高效率的驗證方法。ProtoLink Probe Visualizer 是新的原型驗證環(huán)境,,采用以軟件為基礎的方法,,可以從RTL 設計階段開始到最終的設計實現階段,都提供高水平的設計能見度,,,,可全面加速偵錯作業(yè)的進行。
工研院起初擔心其客制化原型板可能無法符合思源科技ProtoLink Probe Visualizer 的接口需求,,而思源科技工程師在進行幾項快速測試之后,,證明工研院客制化原型板上的標準 J 連接器可順利地與執(zhí)行 Probe Visualizer 軟件的工作站連結。只需在原型板上新增鎖相回路 (PLL),,提供所需的取樣時脈 (sampling clock)即可,。FPGA 的設置流程相當簡單,可輕松整合至現有的程序 (script) 中,,自動選取大約 100 個探測訊號 (probed signal),,就能見度來說,已比過去的方法提升 6 倍之多。此外,,所有的探測資料都可儲存在外接的 2GB 探測訊號內存中而不占用 FPGA 資源,,真正額外需要的探測邏輯 (probe logic) 也僅占用 FPGA 的 2%,可說相當的少,。外接內存的資料容量可儲存充足長度的時脈周期,,讓工程師能夠確實掌握軟件、硬件與驅動程序間的關系,。
工研院團隊透過思源科技Verdi自動偵錯系統(tǒng)的進階觀察,、追蹤與分析功能,來使用儲存的探測資料進行偵錯作業(yè),。在經過多次重復偵錯之后,,發(fā)現了兩個問題:1) USB 中斷 (USB interrupt) 長時間鎖住 ARM,因此 I2S 內的 FIFO 是空的,,因而造成問題,; 2) 定時中斷 (Timer interrupt) 的優(yōu)先級高于 DMA 中斷,因此再一次造成 I2S 內的 FIFO 是空的,。工研院工程師使用思源科技軟件的偵錯功能,,進一步分析設計行為,僅管表現出來是共通的錯誤征兆,,工程師還是能夠迅速發(fā)現這些錯誤的根本成因是源于兩種不同的情況,。
此外,觀察額外的關鍵訊號是偵錯時必需的,,但這些訊號多半不在原始探測清單中,。工研院工程師透過Probe Visualizer迅速的探測 ECO 流程,在 10 分鐘內就可新增 10 個新訊號,,而且不用重新編譯整個設計,。相對傳統(tǒng)的偵錯方法需要在 RTL 拖曳新訊號,并且針對這個特定的設計重新執(zhí)行合成 (synthesis ) 以及布局與繞線作業(yè),,約需花上 2 至 3 個小時,,因此這方面的革新省下了大量的時間。
工程師能夠輕松地將 所需額外的RTL探測訊號由 Verdi 偵錯環(huán)境拖曳至 Probe Visualizer,。這套系統(tǒng)會自動建立RTL 至邏輯閘層 (RTL-to-gate level ) 的訊號對應關系,,,所以可直接在 FPGA 布局與繞線檔案上迅速執(zhí)行部份繞線作業(yè)來看到新增的探測訊號,大幅縮短偵錯作業(yè)時間,,所以能在短時間內處理多重偵錯工作階段 (debug session),。而對設計中使用的「黑盒子」IP 區(qū)塊,也只需 EDIF 名稱,,就可以進行探測 ECO 流程,。
評估結果
工研院工程師在修正問題并成功試產設計之后,檢討了項目實際耗費的時間,并評估了這個新的 FPGA SoC 原型驗證方法的成果,。
進行 RTL 設計,、仿真、通訊協(xié)議驗證與 FPGA 設計實現的時間約為 2 個月,。在驅動程序移植 (driver porting )上所花費的時間則短了許多,,大約只有 2 個星期。工程師隨后又花了 2 個月的時間進行驗證作業(yè),,試圖透過硬件邏輯分析器檢查 FPGA 內部訊號解決音效問題,,同時也在音效驅動程序中增加觀察點,以連結并企圖找出問題,。這種傳統(tǒng)的 FPGA 偵錯方法,,需要的時間和設計研發(fā)的時間一樣長,然而對工研院團隊而言,,相當令人沮喪的是結果仍然一無所獲,。不過,在經過思源科技提供的應用軟件教育訓練/支持課程及一星期的實作經驗后,,工研院工程師使用 ProtoLink Probe Visualizer,,在短短一星期的時間內就厘清了兩大問題!
對工研院而言,,ProtoLink Probe Visualizer是一種相當有效的 FPGA 原型板偵錯方法,。工程師再也不必局限在傳統(tǒng)的偵錯方法,而且在實時應用軟件中增加觀察點也可能會造成其它問題,。透過維持原有軟件并監(jiān)測更多FPGA 訊號在數百萬時脈周期內的實時 RTL 行為,,使用者可以獲得所需的能見度,更完美的掌握,、更輕松地偵錯設計的問題。
總合來說,,思源科技Probe Visualizer 透過以軟件為基礎的創(chuàng)新方法,,改變了原型板驗證的方法,實現豐富,、實時的設計能見度,,并且讓原型板能使用 Verdi 的偵錯威力,使原型板偵錯時間比傳統(tǒng)的方法大幅縮短一半,。這種偵錯作業(yè)生產力與整體驗證效率的提升,,不僅能協(xié)助工研院在更早期的 SoC 研發(fā)流程中配置 FPGA 原型,并且能迅速移轉至搭載最新 FPGA 技術的新一代原型板上,,充分運用最新 FPGA 技術的優(yōu)勢,。