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