<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 提高ASIC驗證的速度與可視性

          提高ASIC驗證的速度與可視性

          作者: 時間:2008-01-24 來源: 收藏

            前言

          本文引用地址:http://www.ex-cimer.com/article/78027.htm

            高性能、高容量/SoC原型設(shè)計及系統(tǒng)兩方面的應(yīng)用持續(xù)增長。這些設(shè)計通常包括硬件及嵌入式軟件(也可能包括應(yīng)用軟件)的復(fù)雜組合,這給系統(tǒng)驗證帶來了巨大負擔(dān),原因是檢測、隔離、調(diào)試及校正故障要比最初設(shè)計所花費的時間、資金和工程資源多得多。

            由于軟硬件之間交互作用相當復(fù)雜且無法預(yù)見,僅僅是找到深藏于系統(tǒng)中的故障就需要進行長時間的測試序列,而且隨后的調(diào)試過程還需要花費更多的時間及精力。另外,如果驗證測試使用視頻流等實際數(shù)據(jù)時,那么間發(fā)故障將很難(如果并非不可能)重現(xiàn)。

            有多種驗證方法可以選擇,如軟件模擬、硬件加速模擬、硬件仿真及基于的原型設(shè)計等,但這些方法各有利弊。而基于的原型設(shè)計驗證方法則表現(xiàn)要好得多,能夠以實時硬件速度運行。在/SoC設(shè)計中,基于FPGA的原型設(shè)計驗證方法的成本比硬件加速及仿真解決方案低很多。但 FPGA驗證的可視性差,無法監(jiān)控內(nèi)部狀態(tài)及信號。

            傳統(tǒng)驗證方法概述

            首先以手機啟動的設(shè)計為例,將各種軟件模擬技術(shù)與基于FPGA的原型設(shè)計的性能進行對比,比較結(jié)果可參見圖1。

            

          軟件模擬技術(shù)與基于FPGA的原型設(shè)計的性能對比

           

            圖1 軟件模擬技術(shù)與基于FPGA的原型設(shè)計的性能對比

            即使是高容量、高性能的RTL在啟動系統(tǒng)時也要花費30天,而且還需要使用Testbench。同樣,使用指令集(ISS)的傳統(tǒng)硬件/軟件共同驗證環(huán)境需要花費10天時間啟動系統(tǒng),也需要Testbench。C/C++模擬雖然將系統(tǒng)啟動時間縮短到24小時,但其對系統(tǒng)內(nèi)部工作情況的可視性較差。

            相比之下,在系統(tǒng)FPGA啟動系統(tǒng)的時間僅為3s,基于FPGA的環(huán)境能夠在實時工作負荷下驗證系統(tǒng),也可以作為嵌入式軟件及應(yīng)用軟件開發(fā)人員的平臺,以便集成并測試真實系統(tǒng)內(nèi)容代碼。FPGA用于傳統(tǒng)驗證環(huán)境的主要缺點是缺乏對內(nèi)部信號、狀態(tài)及存儲器內(nèi)容的可視性。

            前面提到,軟件模擬成本很低但全系統(tǒng)驗證花費時間長,而基于FPGA的原型設(shè)計驗證方法不僅成本很低,而且速度很快。硬件加速模擬及仿真的速度比軟件模擬速度快很多,但比FPGA驗證法慢很多,且其成本要比上述兩種方法高得多,所以基于FPGA的原型設(shè)計驗證方法具有最高性價比,如圖2所示。

            

          各種設(shè)計驗證方法的性價比

           

            圖2 各種設(shè)計驗證方法的性價比

            傳統(tǒng)基于FPGA的原型設(shè)計系統(tǒng)的明顯缺點是對系統(tǒng)內(nèi)部工作狀態(tài)的可視性有限。提高基于FPGA的原型設(shè)計的可視性的方法很多,但這些技術(shù)各有其局限性或不足之處。例如將內(nèi)部信號時分復(fù)用傳輸至FPGA主要I/O引腳,這種常用技術(shù)一方面提高了可視性,另一方面卻嚴重降級了系統(tǒng)性能。

            另一種常用技術(shù)是將“邏輯分析儀”的宏(macro)嵌入FPGA架構(gòu)中。這些宏的用途很多,例如用戶自定義觸發(fā)器條件引起的觸發(fā)動作可以命令宏從一組信號中采集數(shù)據(jù)。宏更多用于從選定信號中持續(xù)采集數(shù)據(jù)并存入RAM塊(RAM無剩余空間時,最新數(shù)據(jù)將覆蓋舊數(shù)據(jù))。當滿足用戶自定義條件,如到達斷點時,宏將停止采集數(shù)據(jù)并通過設(shè)備的JTAG端口向外部傳輸已存儲的信號值。

            嵌入式邏輯分析儀技術(shù)的優(yōu)勢是能夠確保FPGA持續(xù)以實時硬件速度運行,缺點是可監(jiān)控信號的數(shù)量及采集數(shù)據(jù)的“深度”(周期數(shù))有限。另外,該技術(shù)只能根據(jù)存儲器容量大小提供有限的可視性。

            如果對所有不同驗證方法的整個可視性范圍(從無可視性到全可視性)進行比較,可以發(fā)現(xiàn)軟件模擬居于榜首,硬件加速模擬及硬件仿真次之。而傳統(tǒng)基于FPGA的原型設(shè)計在使用嵌入式邏輯分析儀技術(shù)以確保其速度優(yōu)勢時的可視性非常差,使調(diào)試變得更加困難和耗時。

            可視性提高技術(shù)的不足之處

            盡管嵌入式邏輯分析儀能夠觀察FPGA內(nèi)部信號狀態(tài),但卻無法提供全信號可視性。為解決這一問題,嵌入式邏輯分析儀“可視性增強”技術(shù)應(yīng)運而生,只需采集與部分內(nèi)部信號相關(guān)的數(shù)據(jù),其他未被觀察到的信號數(shù)據(jù)可由可視性增強型應(yīng)用推斷出。

            該技術(shù)的確提高了性能,但因為無法觀察與少量輸入測試矢量相關(guān)的大量內(nèi)部數(shù)據(jù),從而限制了可采集數(shù)據(jù)的深度。如果用戶希望增加深度(輸入矢量的數(shù)量),則必須平衡監(jiān)控信號的數(shù)量。這可能需要進行大量的驗證運行(verification run),以跟蹤問題條件,每個驗證運行需要監(jiān)控不同的信號集。這意味著一些非確定性、間發(fā)故障可能“漏網(wǎng)”,原因是其并未出現(xiàn)在并發(fā)運行中。

            基于門級信號值的可視性增強技術(shù)會帶來更多問題,如果上述技術(shù)無法識別所有的綜合優(yōu)化處理,可視性增強信號就不能對應(yīng)為RTL信號。如果能夠觀測到斷言,則FPGA的門級信號與斷言的源代碼(RTL)數(shù)據(jù)之間的模糊相關(guān)性至少可以使調(diào)試過程略微有趣些。

            TotalRecall提供解決之道

            TotalRecall技術(shù)可以解決基于FPGA的原型設(shè)計及FPGA 系統(tǒng)的可視性問題,該技術(shù)在提供100%可視性的同時,還可確保FPGA以實時硬件速度運行。TotalRecall從概念的角度看很簡單,但實際執(zhí)行非常復(fù)雜,這是因為透明處理多時鐘域等問題。

            TotalRecall技術(shù)的基本原理是在FPGA內(nèi)部復(fù)制邏輯,然后存儲該復(fù)制邏輯的激勵,同時延遲其應(yīng)用。這稱為TotalRecall邏輯。圖3為整個設(shè)計應(yīng)用TotalRecall技術(shù)的例子。

            

          TotalRecall的基本原理

           

            圖3 TotalRecall的基本原理

            從圖3中可以看出,主要輸入端的激勵信號直接饋入實際邏輯塊,器件主要輸出端的實時響應(yīng)由此邏輯塊產(chǎn)生。同時,原始測試矢量也饋入,作為緩沖器的存儲區(qū)。假設(shè)該緩沖器的深度為1000字(words),則復(fù)制邏輯的激勵信號將跟蹤真實邏輯觸發(fā)信號1000個時鐘周期。

            當檢測到主要輸出端的斷言觸發(fā)或錯誤響應(yīng)等問題時,復(fù)制邏輯及其相應(yīng)存儲緩沖器將暫停。此時,激勵存儲緩沖器內(nèi)容及復(fù)制邏輯內(nèi)容狀態(tài)由 FPGA器件的JTAG端口導(dǎo)出。TotalRecall技術(shù)提供極大測試矢量深度(與傳統(tǒng)的基于邏輯分析儀的宏技術(shù)相比)的原因在于存儲一次激勵信號后即無須存儲海量內(nèi)部信號。

            當然,復(fù)制邏輯的當前狀態(tài)與其綜合后的門級表示相符。然而,設(shè)計人員及驗證工程師更愿意使用他們最初的RTL級,原因是這些表示易于理解,且在RTL級上工作可以大幅提升用戶的工作效率。因此,TotalRecall技術(shù)將當前的門級表示映射為等同的RTL表示。

            當檢測到故障且以實時硬件速度運行時,用戶能夠馬上進入他們熟悉的軟件模擬環(huán)境,初始化設(shè)計及Testbench將引導(dǎo)用戶輕松找到故障。已映射的內(nèi)部狀態(tài)信息用于對標準RTL的內(nèi)部狀態(tài)進行初始化。同時,激勵存儲器內(nèi)容則用于生成驅(qū)動軟件模擬器的Testbench。

            請注意,使用TotalRecall技術(shù)無須復(fù)制整個設(shè)計,這一點很重要。驗證工程師可能僅僅關(guān)注設(shè)計中包含的某個功能塊,就可以使用TotalRecall技術(shù)復(fù)制這些功能塊。將TotalRecall技術(shù)應(yīng)用到單個功能塊的實例如圖4所示。

            

          TotalRecall技術(shù)應(yīng)用于設(shè)計中的子集

           

            圖4 TotalRecall技術(shù)應(yīng)用于設(shè)計中的子集

            此例中,當發(fā)現(xiàn)故障時,TotalRecall技術(shù)能夠生成局部Testbench,專門用于測試掛起功能塊,然后設(shè)計人員或測試工程師對Testbench和掛起塊的初始狀態(tài)信息進行詳細分析。

            TotalRecall技術(shù)的優(yōu)勢很多,例如,除了提供所有內(nèi)部信號的觀察通道外,用戶還可以觀察到內(nèi)部存儲區(qū)的所有內(nèi)容。 TotalRecall技術(shù)可以在實時硬件速度下提供100%的可視性,其中包括寄存器、組合邏輯和存儲模塊等,使用戶輕松跟蹤、隔離并快速評估深藏在驗證過程中的間發(fā)故障。當某個故障被檢測出時,TotalRecall技術(shù)可以定位到故障前數(shù)百次甚至上千個周期前的狀態(tài)值,并且用來對軟件仿真器進行初始化設(shè)置。另外,TotalRecall還可以提供設(shè)計由初始狀態(tài)到故障狀態(tài)的測試序列。TotalRecall與各種設(shè)計驗證技術(shù)的可視性對比如圖5所示。

            

          各種設(shè)計驗證技術(shù)的可視性對比

           

            圖5 各種設(shè)計驗證技術(shù)的可視性對比

            驗證與調(diào)試的革新變化

            TotalRecall技術(shù)對驗證與調(diào)試技術(shù)將產(chǎn)生深遠的影響,下面是幾個簡單例子。

            斷言(Assertions):TotalRecall使斷言十分有用。由于斷言具有暫時性特點,過去很難充分利用基于斷言的驗證(ABV)的優(yōu)勢。采用TotalRecall技術(shù)則可采集足夠深度的測試矢量以便完全隔離第一個觸發(fā)斷言的動作序列。

            基于FPGA的/SoC原型設(shè)計:TotalRecall技術(shù)使基于FPGA的ASIC/SoC原型設(shè)計在實時硬件速度下能夠提供 100%的可視性,尤其是TotalRecall技術(shù)具有檢測、跟蹤、隔離并調(diào)試間歇性及非確定性故障的能力,這對其他驗證方法而言是難以實現(xiàn)的。

            基于FPGA的在系統(tǒng)驗證:在基于FPGA的系統(tǒng)中,由于對主電路板的改動相對較少,因此該系統(tǒng)支持TotalRecall技術(shù)。在驗證或燒片系統(tǒng)中,可能會將高容量FPGA與用以復(fù)制整個設(shè)計的TotalRecall技術(shù)配合使用。一旦系統(tǒng)驗證完畢,F(xiàn)PGA可以用成本更低的、容量更小的 (僅能放置主要設(shè)計邏輯即可)的兼容器件替代。

            遠程軟件開發(fā):一旦基于FPGA的平臺上市,則可將備份分發(fā)給多個在不同地區(qū)的應(yīng)用軟件開發(fā)人員。過去,如果發(fā)生復(fù)雜的硬件-軟件互動問題,則很難進行調(diào)試解決。現(xiàn)在,一旦出現(xiàn)故障,每個基于FPGA的開發(fā)系統(tǒng)均可配備TotalRecall技術(shù),這樣遠程軟件開發(fā)人員就能夠立即將 Testbench及狀態(tài)信息發(fā)回“基地”,由設(shè)計、驗證小組快速解決。

            總結(jié)

            TotalRecall技術(shù)與傳統(tǒng)驗證技術(shù)的對比見表1。與傳統(tǒng)驗證技術(shù)(包括軟件模擬、硬件模擬及基于FPGA的原型設(shè)計技術(shù))不同, TotalRecall能夠幫助用戶快速檢測、隔離、調(diào)試并解決深藏的偶發(fā)及間發(fā)故障。這些故障有時會出現(xiàn)在實時激勵的情況下或者由軟硬件之間復(fù)雜的非確定性互動引起,解決這種問題非常困難,除非在一定速度下運行(實時系統(tǒng)尤其要求如此)。

            表1 傳統(tǒng)驗證技術(shù)于TotalRecall技術(shù)對比

            

          傳統(tǒng)驗證技術(shù)于TotalRecall技術(shù)對比

           

            除了向以實時硬件速度運行的設(shè)計提供了100%的可視性以外,TotalRecall技術(shù)還可幫助驗證工程師在熟悉的RTL環(huán)境中跟蹤故障。另外,TotalRecall技術(shù)使斷言非常有用,當一個斷言觸發(fā)時,TotalRecall能夠提供一個觸發(fā)這個斷言的僅包含幾百或幾千個周期的測試序列。



          關(guān)鍵詞: FPGA ASIC 模擬器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();