簡(jiǎn)單講,一旦擁有了開(kāi)放的接口,那你擁有的就不僅僅是一款調(diào)試工具,而是一個(gè)開(kāi)放的、支持DIY的客制化調(diào)試平臺(tái),因?yàn)樗鼘⒖梢约嫒莶煌夜?a class="article-link" target="_blank" href="/tag/EDA/">EDA工具、透過(guò)接口調(diào)用底層數(shù)據(jù)庫(kù),實(shí)現(xiàn)想看哪就看哪的自定義功能,簡(jiǎn)直不能更治愈!
眾人皆知,驗(yàn)證離不開(kāi)調(diào)試工具。在整個(gè)設(shè)計(jì)驗(yàn)證流程中,驗(yàn)證占了70%的工作量,調(diào)試debug就占了其中的40%。
幾乎所有驗(yàn)證工具,無(wú)論是邏輯仿真、硬件仿真還是形式化驗(yàn)證、原型驗(yàn)證等等,本質(zhì)上都是通過(guò)不同的方式去對(duì)設(shè)計(jì)進(jìn)行各種重新編譯、解析,這之后產(chǎn)生的各種類(lèi)型的數(shù)據(jù),都離不開(kāi)后面調(diào)試工具去分析、去解讀。
調(diào)試工具的本質(zhì)是生產(chǎn)力工具,它像一個(gè)“數(shù)據(jù)處理中心”,也像一個(gè)“指揮中樞”,通過(guò)讀取、解析以及分析設(shè)計(jì)驗(yàn)證的結(jié)果,讓你可以很快地看見(jiàn)問(wèn)題、解決問(wèn)題。
但是,這里說(shuō)的問(wèn)題映射到日常項(xiàng)目當(dāng)中,可能是多種多樣,仿佛無(wú)窮無(wú)盡的。
本篇重點(diǎn)和大家分享:
一、開(kāi)放接口解決什么問(wèn)題
二、統(tǒng)一、可兼容的接口和標(biāo)準(zhǔn)
01 開(kāi)放接口解決什么問(wèn)題
第一個(gè)是個(gè)性化的需求
調(diào)試工具幾乎吃下了設(shè)計(jì)和驗(yàn)證所有的信息。但,其實(shí)每家芯片設(shè)計(jì)的信號(hào)組合不一樣,我們通過(guò)Debug調(diào)試系統(tǒng)要檢查的內(nèi)容就不一樣。
如果我們不能夠?qū)τ谶@樣的需求進(jìn)行處理的話,比如說(shuō)當(dāng)設(shè)計(jì)的波形有兩三百個(gè),是不是我要把兩三百個(gè)每一個(gè)批量的全部?jī)?nèi)容,都肉眼看一遍呢?因此能夠直接訪問(wèn)底層數(shù)據(jù)這方面的需求,其實(shí)非常的廣。
尤其是,針對(duì)不同類(lèi)型的項(xiàng)目,往往有自己獨(dú)有的、個(gè)性化的調(diào)試需求。
在實(shí)際應(yīng)用中,各個(gè)芯片的產(chǎn)品調(diào)試特征不同,對(duì)調(diào)試就會(huì)產(chǎn)生非常多樣化的細(xì)分需求。用戶(hù)因此特別希望能夠在國(guó)產(chǎn)EDA工具里面看到一些開(kāi)放的接口,便于自己進(jìn)行二次開(kāi)發(fā)。
舉個(gè)例子,比如當(dāng)我們想快速對(duì)某個(gè)特定范圍下的信號(hào)變化做一些統(tǒng)計(jì) (比如變化次數(shù),X/Z的個(gè)數(shù),均值統(tǒng)計(jì)等等),這些需求太多太零碎了,可能Debug產(chǎn)品使用界面沒(méi)有直接提供。
但這些數(shù)據(jù)信息在工具的底層數(shù)據(jù)庫(kù)里其實(shí)都有,只要提供接口讓用戶(hù)可以自己訪問(wèn)底層數(shù)據(jù)庫(kù),就可以通過(guò)寫(xiě)一些小程序來(lái)實(shí)現(xiàn)希望的功能。真正的“想看哪里就看哪里”。
第二個(gè)是兼容性的問(wèn)題
比如說(shuō),在數(shù)字驗(yàn)證階段,EDA工具往往需要解析UPF/CPF文件內(nèi)容,轉(zhuǎn)換為內(nèi)部模型并存儲(chǔ)到低功耗數(shù)據(jù)庫(kù)。然而,因?yàn)楦骷褽DA單位底層UPF/CPF的Parser的接口差異性,導(dǎo)致EDA工具需要針對(duì)不同的Parser做定制化。而且,不同Parser對(duì)UPF/CPF的理解可能是不同的,這會(huì)導(dǎo)致EDA工具一旦換了底層UPF/CPF Parser后,可能低功耗的行為就發(fā)生了變化。
開(kāi)放的接口和行為級(jí)模型,能夠?yàn)樾袠I(yè)產(chǎn)品的合作提供更好的兼容性和擴(kuò)展性,提高數(shù)據(jù)的使用效率,也就能提高我們的生產(chǎn)力。
02 統(tǒng)一、可兼容的新一代接口和標(biāo)準(zhǔn)
從這一具備龐大群眾基礎(chǔ)的需求出發(fā),芯華章Fusion Debug提供開(kāi)放的XPI接口讓用戶(hù)可以直接訪問(wèn)、定制自己的小程序,調(diào)用存儲(chǔ)了包括靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)的底層數(shù)據(jù)庫(kù),讓設(shè)計(jì)和驗(yàn)證更加有效,進(jìn)行更有針對(duì)性的調(diào)試。
世上本沒(méi)有路,走的人多了,也便成了路。
- XPI集成了HDL、Netlist、Waveform和Coverage 4種數(shù)據(jù)模型,并提供了簡(jiǎn)單統(tǒng)一的API來(lái)訪問(wèn)它們
- 基于芯華章統(tǒng)一的技術(shù)底座智V驗(yàn)證平臺(tái),HDL設(shè)計(jì)通過(guò)前端編譯生成代碼數(shù)據(jù)庫(kù)XCDB和網(wǎng)表數(shù)據(jù)庫(kù)XNDB
- 各種驗(yàn)證工具如仿真器(Simulation)、硬件仿真器(Emulation), 原型系統(tǒng)(Prototyping)和形式化驗(yàn)證(Formal Verification),則生成波形數(shù)據(jù)庫(kù)XEDB和覆蓋率數(shù)據(jù)庫(kù)XCovDB
- XPI提供三種類(lèi)型的接口來(lái)訪問(wèn)底層數(shù)據(jù)庫(kù)模型,包括:TCL命令接口、Python接口、C/C++接口,用戶(hù)可以將這些接口集成到自己的應(yīng)用程序中
這就好像以前的圖書(shū)館可能擁有數(shù)億級(jí)別的藏書(shū),但是你找不到自己需要的書(shū)。芯華章Fusion Debug則像一個(gè)用戶(hù)體驗(yàn)導(dǎo)向的電子圖書(shū)館,不僅對(duì)龐大數(shù)據(jù)做了多種分類(lèi),并且提供清晰的檢索目錄、導(dǎo)覽、查閱,你甚至可以自己添加標(biāo)簽和偏好,定義你想要的界面,讓你直呼“好用”的同時(shí),大大節(jié)約你的時(shí)間。
這種統(tǒng)一的接口和標(biāo)準(zhǔn),甚至不局限于芯華章自家產(chǎn)品之間,還可以兼容其他家EDA公司產(chǎn)品。以芯華章低功耗模型以及讀寫(xiě)接口標(biāo)準(zhǔn)為例,它具有以下特點(diǎn):
1 支持IEEE 所有UPF版本標(biāo)準(zhǔn),并屏蔽底層UPF Parser的差異
2 支持低功耗模型創(chuàng)建
3 支持低功耗模型讀寫(xiě)
4 支持豐富的上層應(yīng)用,如低功耗靜態(tài)分析能力、Root Cause追蹤能力
Fusion Debug的通用低功耗模型,集成了對(duì)象化的低功耗網(wǎng)絡(luò)拓?fù)?/a>結(jié)構(gòu),給行業(yè)低功耗產(chǎn)品提供了統(tǒng)一、高效的追蹤行為和接口,屏蔽了各個(gè)EDA廠商HDL設(shè)計(jì)數(shù)據(jù)模型的差異性。
這也是國(guó)產(chǎn)EDA生態(tài)建設(shè)非常重要的一環(huán),只有讓不同的國(guó)產(chǎn)EDA工具之間能夠?qū)崿F(xiàn)低功耗數(shù)據(jù)的共享,提高數(shù)據(jù)的使用效率,才能形成完善的國(guó)產(chǎn)EDA生態(tài),讓用戶(hù)擁有更高效、更省心的選擇。
實(shí)在地說(shuō)一句,芯華章的Debug開(kāi)發(fā)團(tuán)隊(duì)有非常熱切、希望將產(chǎn)業(yè)現(xiàn)在及未來(lái)需求落實(shí)到位的工作態(tài)度和技術(shù)能力,自發(fā)布以來(lái),F(xiàn)usion Debug也已經(jīng)在數(shù)十個(gè)客戶(hù)項(xiàng)目中得到部署和打磨。