精確估算SoC設(shè)計(jì)動(dòng)態(tài)功率的新方法
通過省去基于文件的流程,新工具可提供完整的 RTL 功率探測(cè)和精確的門級(jí)功率分析流程。
本文引用地址:http://www.ex-cimer.com/article/278336.htm在最近發(fā)布的一篇文章中,筆者強(qiáng)調(diào)了當(dāng)前動(dòng)態(tài)功耗估算方法的內(nèi)在局限性。簡(jiǎn)單來說,當(dāng)前的方法是一個(gè)基于文件的流程,其中包括兩個(gè)步驟。第一步,軟件模擬器或硬件仿真器會(huì)在一個(gè)交換格式 (SAIF) 文件中跟蹤并累積整個(gè)運(yùn)行過程中的翻轉(zhuǎn)活動(dòng),或在快速信號(hào)數(shù)據(jù)庫(kù) (FSDB) 文件中按周期記錄每個(gè)信號(hào)的翻轉(zhuǎn)活動(dòng)。第二步,使用一個(gè)饋入 SAIF 文件的功率估算工具計(jì)算整個(gè)電路的平均功耗,或使用 FSDB 文件計(jì)算設(shè)計(jì)時(shí)間和空間內(nèi)的峰值功率(見圖 1)。
圖 1. 傳統(tǒng)的功率分析根植于基于文件的兩步法。
當(dāng)被測(cè)設(shè)計(jì) (DUT) 相對(duì)較小(約數(shù)百萬門或更少),且分析周期較短(不超過百萬個(gè)時(shí)鐘周期),這些方法可能行得通。上述時(shí)間窗口常見于自適應(yīng)性功能驗(yàn)證環(huán)境。
然而,如今的大型 SoC 設(shè)計(jì)具有數(shù)千萬或數(shù)億個(gè)門來執(zhí)行嵌入式軟件(比如,啟動(dòng)一個(gè)操作系統(tǒng)或運(yùn)行需要數(shù)十億個(gè)周期的應(yīng)用程序),若使用傳統(tǒng)方法就會(huì)面臨以下三大難題:
1. SAIF 文件將變得太過龐大而無法管理,F(xiàn)SDB 文件則更是如此。
2. 文件生成過程慢如蝸牛,短則數(shù)小時(shí),長(zhǎng)則超過 1 天。
文件加載到功率估算工具的速度也相當(dāng)緩慢,少則幾天,多則超過 1 周。
這一切似乎注定了無法成功。
這一狀況隨著 Mentor Graphics 在 2015 年 5 月 27 日發(fā)布 Veloce 功耗應(yīng)用程序而發(fā)生了改變,這款軟件包帶有 Veloce 活動(dòng)圖和 Dynamic Read Waveform 應(yīng)用程序編程接口 (API),接口位于 Veloce OS3 頂部(見圖 2)。
圖 2. 操作系統(tǒng)可保護(hù)任何應(yīng)用程序不受下層硬件仿真器的干擾。
Veloce 功耗應(yīng)用程序解決了影響傳統(tǒng)(且有爭(zhēng)議)的功耗評(píng)估算法速度的一些核心問題。它通過將 Veloce 硬件仿真器緊密集成到功率分析工具中而省去了基于文件的兩步流程。
設(shè)計(jì)團(tuán)隊(duì)無需再處理巨大的文件。這意味著,再也沒有空間浪費(fèi),文件創(chuàng)建和文件加載也將節(jié)省大量時(shí)間。新方法能夠快速、簡(jiǎn)潔、高效且全面地估算現(xiàn)代 SoC 設(shè)計(jì)的功耗。
Veloce 活動(dòng)圖
Veloce 活動(dòng)圖在一個(gè)簡(jiǎn)單的圖表中映射出了全局設(shè)計(jì)切換活動(dòng)隨時(shí)間的動(dòng)態(tài)變化,例如,在啟動(dòng) OS 和/或運(yùn)行動(dòng)態(tài)應(yīng)用程序時(shí)(見圖 3)。
圖 3. Veloce 活動(dòng)圖在長(zhǎng)時(shí)運(yùn)行中識(shí)別焦點(diǎn)區(qū)域。
活動(dòng)圖可識(shí)別高頻切換活動(dòng)的時(shí)間幀,高頻切換活動(dòng)可能給設(shè)計(jì)團(tuán)隊(duì)帶來功耗問題。盡管此圖表并不獨(dú)特,但其生成所需的時(shí)間要比基于文件的功耗圖表快一個(gè)數(shù)量級(jí)。作為一個(gè)數(shù)據(jù)點(diǎn),對(duì)于一個(gè) 1 億門設(shè)計(jì)、7500 萬設(shè)計(jì)時(shí)鐘周期的活動(dòng)圖,Veloce 需花費(fèi) 15 分鐘來生成。相比之下,功率分析工具則需要花費(fèi)超過 1 周的時(shí)間來生成類似信息。況且,它們可能還無法處理如此巨量的數(shù)據(jù)。
隨之而來的問題則是:這些峰值出現(xiàn)于 DUT 中的“何處”以及是由“什么”引起的?這可通過 Dynamic Read Waveform API 來回答。
Dynamic Read Waveform API 流程
一旦高頻切換活動(dòng)的時(shí)間幀在設(shè)計(jì)的頂層被識(shí)別,設(shè)計(jì)團(tuán)隊(duì)就能放大這些時(shí)間幀。用戶能夠深入到設(shè)計(jì)的層次結(jié)構(gòu)和嵌入式軟件中,從而找到產(chǎn)生此類高頻切換活動(dòng)的根源。為此,用戶可以使用 Dynamic Read Waveform API。
Dynamic Read Waveform API 可通過將硬件仿真器中的切換數(shù)據(jù)實(shí)時(shí)傳送入功率分析工具中,從而取代繁瑣的 SAIF/FSDB 文件生成過程。從硬件仿真 SoC,到輸入切換數(shù)據(jù),再到使用功率分析工具讀取切換數(shù)據(jù),以及生成對(duì)應(yīng)的功率值,所有操作都是同時(shí)運(yùn)行的。其實(shí)際效果是整體性能的飛躍,而這正是啟動(dòng)操作系統(tǒng)和運(yùn)行真正的應(yīng)用程序所需要的(見圖 4)。
圖 4. Veloce 電源應(yīng)用程序可加快 Veloce 功耗分析速度,讓設(shè)計(jì)團(tuán)隊(duì)在執(zhí)行生成、分析和估算時(shí)一步到位。
作為附加好處,與基于 SAIF 的普通流程相比,Dynamic Read Waveform API 的精度更高,因此可對(duì)各內(nèi)存和 IP 塊進(jìn)行精確的功耗估算。
最關(guān)鍵的一點(diǎn)在于,Dynamic Read Waveform API 支持通過基于軟件的測(cè)試在系統(tǒng)級(jí)進(jìn)行功耗分析與功耗探測(cè),如果采用基于文件的流程,這幾乎是不可能的。
結(jié)論
Veloce 功耗應(yīng)用程序推動(dòng)了功率估算方法的轉(zhuǎn)變。Dynamic Read Waveform API 與功率分析工具的獨(dú)特整合,省去了基于文件的流程,可提供完整的 RTL 功耗分析和精確的門級(jí)功率分析流程。
這意味著,設(shè)計(jì)和驗(yàn)證團(tuán)隊(duì)能夠在設(shè)計(jì)周期內(nèi)及早開始 RTL 功率分析。與以往相比,他們可以更早地執(zhí)行功率權(quán)衡和架構(gòu)調(diào)整。此外,在 RTL 合成為門級(jí)表示后,他們可以繼續(xù)使用之前的流程。在門級(jí),他們可以獲得更為準(zhǔn)確的功耗測(cè)量結(jié)果,并在流片前執(zhí)行其他微調(diào)。此外,他們也可以通過使用該工具完成目標(biāo)應(yīng)用環(huán)境的功耗分析流程。
評(píng)論