SOC設計過程的質量保證
進入二十一世紀,標志著ASIC設計時代結束,嶄新的系統(tǒng)芯片(SOC)時代到來。為了適應科技發(fā)展和市場競爭的需要,系統(tǒng)設計者不斷尋求更短的上市時間,更高的性能和更低的成本,所有這些都是推動SOC需求的主要因素。世界SOC市場1998年只有57億美元,而到2003年預期能達到265億美元,市場將保持36%的年增長率。作為IC設計技術和未來市場的走向,SOC也逐漸受到了國內IC行業(yè)的重視。
本文引用地址:http://2s4d.com/article/3020.htmSOC的出現(xiàn)導致了IC業(yè)的分工,并且向虛擬再集成的商業(yè)模式發(fā)展,本文對這種趨勢作概括的描述。同時,在這種虛擬再集成的商業(yè)模式中,設計質量是最后SOC產(chǎn)品成敗的關鍵因素。功能驗證決定了SOC的質量,本文主要討論虛擬再集成的商業(yè)模式導致的功能驗證方法的發(fā)展。
IC業(yè)的虛擬再集成
今天的IC業(yè)和許多構成IC業(yè)價值鏈的焦點專業(yè)分層,將繼續(xù)沿著已經(jīng)走了十幾年的分工之路走下去,即從垂直結構逐步向水平結構過渡。這種分工促進了SOC技術的成長,縮短了上市周期,降低了芯片造價,提高了經(jīng)營效率。
分工的發(fā)展經(jīng)歷了兩個階段:
二十世紀八十年代后期的設計與加工分離是第一個階段。在這個階段,從事設計的無生產(chǎn)線(Fabless)公司銷售產(chǎn)品,但不擁有加工條件;而加工公司專門提供加工服務。負擔著芯片加工設施大量開支的加工公司,基本上可以不用面對產(chǎn)品公司跨入IC業(yè)時所面臨的風險。
第二個階段是二十世紀九十年代末獨立IP供應商的出現(xiàn)。SOC技術的復雜度很高,大大加重了設計負擔,于是,產(chǎn)生了對驗證好的第三方IP核的需求,以簡化多功能芯片的設計。在這個階段,加工公司在提供IP硬核,以及加速經(jīng)過驗證的IP核向更小幾何尺寸移植等方面扮演著重要的角色。因此,加工公司處于未來開放式IP時代的焦點,將促進系統(tǒng)設計、IC設計、第三方IP和電子設計自動化等這些商業(yè)增值活動的虛擬再集成。
SOC趨勢將進一步加速分工的進化。分析家預測:設計服務和IP將成為分工的主旨,然后是純粹的加工。第三方IP供應商將為無生產(chǎn)線公司、集成器件制造商(IDM)和系統(tǒng)設計公司進一步減少進入市場和縮短上市周期方面的種種障礙。
分工進化有幾個主要的推動力量。第一,使用委托加工是進入IC業(yè)的一個低風險、很有競爭力的途徑。使用加工服務,無生產(chǎn)線公司進入市場時,沒有加工工廠的沉重經(jīng)濟負擔。而且,IC業(yè)也經(jīng)歷反復的商業(yè)周期。在衰退期時,使用加工的IC公司有低得多的固定成本,會更有競爭力。第二,SOC趨勢大大增加了設計復雜度,促使無加工線公司和集成器件制造商專注于它們的核心競爭產(chǎn)品:高層次設計和IP。
分析家預測新的IP時代要經(jīng)歷一個根本的改變。這個改變是系統(tǒng)開發(fā)和IC芯片開發(fā)將按職能劃分為兩部分,如圖1所示:一個將專門進行IP核設計,另外一個進行系統(tǒng)級集成。
IC業(yè)的分工繼續(xù)發(fā)展,它將從一個垂直結構變成由各個專業(yè)分層構成的水平結構。這種轉變又產(chǎn)生了再集成為另外一個商業(yè)模型的要求。如圖2所示,由EDA工具、庫、IP核、加工等公司構成的一個緊密的相互聯(lián)系的網(wǎng)絡,要比分層關系有更高的生產(chǎn)率。尤其是在深亞微米設計中,這種強有力的網(wǎng)絡保證了設計平臺高性能、產(chǎn)品周期更短、一次流片設計的無缺陷。各供應商的緊密伙伴關系為用戶提供了一個完整的解決方案。在這種關系中,委托加工是核心,也是SOC發(fā)展關注的焦點,是這種虛擬再集成的組織者。無論是IP的開發(fā)、授權、SOC的加工和驗證,都是圍繞委托加工來進行的。
SOC功能驗證
現(xiàn)在,還沒有驗證SOC的標準方法。各種SOC對HDL語言使用上的不一致造成了大量的驗證技術和手段。由于大約70%的設計工作都在驗證上,驗證途徑的標準化已經(jīng)變得非常必要。
現(xiàn)在,為緩解復雜系統(tǒng)功能驗證問題,提高功能驗證質量的新工具不斷涌現(xiàn)。不管過去還是現(xiàn)在,電子部件的質量主要依賴于它們的驗證過程怎么樣。不好驗證,不論由于什么原因,極有可能造成電子部件質量差或失敗。
現(xiàn)在,一般有一個專門的隊伍負責驗證設計。只有驗證工作的起點好,他們的工作才能好,也就是說好的驗證必須有一個好的規(guī)格書,規(guī)格書也是驗證過程的起點。驗證從規(guī)格指定階段開始,在設計、實現(xiàn)和加工各階段一直持續(xù)進行。
模塊為基礎SOC的驗證
SOC一般是由統(tǒng)一的總線結構連接起來的IP核的聚集?,F(xiàn)在,有許多商用或非商用的總線結構在使用?;诳偩€結構的驗證模型是目前SOC中比較成熟的技術。
總線結構一般通過總線功能模型(BFM)來模擬,該模型的復雜度由總線協(xié)議來決定,分為預捆包(prepackaged)的PLI(編程語言接口)為基礎的BFM和用戶定制的Verilog BFM。
一個完整testbench的建立需要5要素:驗證計劃、測試實例、完整的BFM、待測部件DUT和testbench。
在所有的驗證方法中,驗證計劃決定了最終驗證的好壞,所以,驗證計劃是非常關鍵的,而不是可有可無的。為了一次成功,設計者必須識別在什么條件下必須檢測什么特征,以及期望的反饋該是什么。整個設計團隊都要參與計劃制訂,以保證它的完整性和正確性。驗證計劃應該采用黑盒功能驗證方式,這是由整個驗證通過的一個BFM來執(zhí)行,而BFM只能訪問接口信號來決定的。
黑盒驗證方式有不依賴于實現(xiàn)的優(yōu)點,也就是設計不管是行為級、可綜合的RTL、門級網(wǎng)表、ASIC、FPGA或者甚至是軟件都與它無關。黑盒法形成了真正的一致性驗證,表明了某個設計是否達到了規(guī)格書要求的目標。另外,這種方式對于保證測試激勵便攜性(portability)也是非常關鍵的。
編制驗證計劃的時候,每個測試實例應當區(qū)分每個單一的設計特征,防止復合特征出現(xiàn),這可以簡化調試的過程。
但是,在驗證過程中經(jīng)常會出現(xiàn)規(guī)范要求的改變,這時必須修改驗證計劃,驗證計劃必須與設計規(guī)范保持同步。
驗證環(huán)境另外一個關鍵部分是BFM??梢允褂矛F(xiàn)有的封裝好的BFM,也可以基于總線結構的時序圖,構造自己的BFM。無論如何,都要確保BFM模型能準確地反應總線協(xié)議。BFM主要包括測試實例執(zhí)行所引發(fā)的總線任務,另外,它還必須包括象watchdog定時器和wait-acknowledge等的支撐型任務。如果協(xié)議要求的話,BFM還必須執(zhí)行密集型(back to back)事件,比如burst-read和burst-write。監(jiān)控器monitor可以內建在BFM里,也可以是獨立的設計文件。
既然BFM只訪問頂層的接口信號,于是testbench也只需要看到頂層DUT的信號。推薦使用testbench的自動生成器,透明生成沒有錯誤困擾的testbench。
有些驗證方式要求多個testbench,但是由于很難跟蹤各testbench執(zhí)行中引起了哪些文件執(zhí)行,所以這種方法非常繁瑣,很容易出錯。故只使用一個統(tǒng)一的testbench的方法受到了普遍的歡迎。在這個方法中,不用為RTL和門級分別產(chǎn)生testbench。完整的測試環(huán)境包括一個或多個驗證語言文件(VL, Verification Language file),即測試實例,一個DUT,一個BFM和一個testbench。Testbench的輸入是驗證語言文件VL,仿真結果由監(jiān)控器載入日志文件。
所有部件級的測試實例很容易移植到系統(tǒng)級,往往可以直接把它們應用到系統(tǒng)級的全功能模型(FFM)或軟件模擬環(huán)境,即在SOC設計中部件級設計操作驗證應與系統(tǒng)級驗證的無縫對接,如圖3所示。
平臺為基礎的SOC驗證
平臺為基礎SOC驗證強調軟硬件的協(xié)同設計和仿真,驗證方式上有基于數(shù)學推導的形式驗證方法和基于仿真的動態(tài)功能驗證。形式驗證的代碼覆蓋率好,但涉及較復雜的數(shù)學推導,推導本身的正確性難以把握。而且,系統(tǒng)較復雜時,形式驗證會成為整個項目進展的瓶頸,甚至由于成本太高而不能實施。動態(tài)功能驗證關注整個系統(tǒng)或其中某些部分的仿真運行,對仿真結果做出判斷和調試,是本文討論的重中之重。
驗證主要是建立整個設計和內部子模塊的驗證環(huán)境。為了不讓驗證處于項目的關鍵路徑上,主要開展軟硬件驗證工作的并行,減少驗證的設計開銷。同時,基于商業(yè)工具的驗證環(huán)境,最好能夠復用主流項目中的一些工作,進一步提高驗證的效率。在下面比較的兩類方式中,可驗證性設計比傳統(tǒng)方式有更多的優(yōu)越性。
傳統(tǒng)的驗證方式
整個結構從系統(tǒng)指定階段開始構造,這時忽略軟硬劃分。功能指定先由C或C++編程實現(xiàn),以后再精煉。硬件模塊由C/C++和某個或某些testbench來描述和實現(xiàn),且從C/C++實現(xiàn)可以重新設計出RTL級的HDL實現(xiàn)。為了驗證,單個子模塊(C或HDL)可以隨時換入換出系統(tǒng)。在HDL仿真過程中,一般是施加波形來執(zhí)行硬件測試。在某個時間點,通常需要建立一個原型系統(tǒng)。最后,時間到的時候,PG將會交付加工。
這個流程很普遍(實際肯定比這里概括的要復雜得多),雖然很適合手邊的工作,但也不是盡善盡美的。
最新的驗證方式(推薦)
-可驗證性設計
(DFV-Design For Verification)
缺乏一致性和復用性差是傳統(tǒng)驗證流程的主要問題。既然一個復雜系統(tǒng)的驗證占用整個項目70%的時間,定義一個能夠使用現(xiàn)有任何一種驗證工具、簡單明了的驗證方法是非常關鍵的。于是,提出了基于“可驗證性設計”這個概念的驗證流程。
可驗證性設計方法解決的問題,對于改善設計過程的動態(tài)功能驗證階段的質量舉足輕重:
* C/C++和HDL的分別硬件描述是必需的,但是至少testbench可以在不同設計階段廣泛復用。要求建立的每個測試必須有應用于它調用的子模塊的所有映象(view,即C/C++、VHDL、Verilog等描述形式)的可能,并且能使用市面上所有的仿真模擬工具;
* 在HDL驗證過程使用的映象必須是可綜合的;
* 必須是IP復用。這不僅僅是現(xiàn)有硬件模塊的復用,還表明了訪問非常合適的測試環(huán)境時的復用可能性。該測試環(huán)境作為驗證工作的一部分必須復用;
* 一些映象經(jīng)常需要調整。為保證一致性,當映象手工修改后,要使用形式驗證技術;
* 完全驗證,尤其是在“任務模式”(包括實際的軟件),實現(xiàn)時必需很長的仿真過程。在該過程中建議使用模擬手段,提高執(zhí)行效率;
* 覆蓋率標準在驗證過程中影響著一些選擇,所以非常重要;
* 仿真過程太長而不是合理驗證手段時候,模擬往往是較好的選擇。
市場提供了幾種可能的模擬手段,如:不僅僅是模擬器,經(jīng)常用作快速原型平臺的FPGA系統(tǒng);還有其它一些更像仿真器,在某些方面,比基于FPGA的系統(tǒng)更容易使用的模擬系統(tǒng)。從模塊正確性檢查一直到系統(tǒng)級檢查,它們都有比較廣泛的應用。所以,這是系統(tǒng)集成和軟件開發(fā)的較好選擇(除非有頻率限制)。
可驗證性設計的驗證方式,很好地解決了上面提到的動態(tài)功能驗證問題。
結語
隨著IP的出現(xiàn),IC業(yè)的各專業(yè)分層,通過非常緊密的聯(lián)系,虛擬的重新結合起來,構成了高效運作、增值能力很強的新型商業(yè)模型。這也是我國IC業(yè)的發(fā)展方向。同時,在這種商業(yè)模式下,SOC設計質量,即IP功能驗證,是倍受關注的問題。本文給出了兩大類功能驗證策略和方法,它們是由SOC不同設計方式?jīng)Q定的,提供給國內的設計人員參考?!?/font>
參考文獻
1.Shang-yi Chiang, "Foundries and the dawn of an open IP era", Computer , Volume: 34 Issue: 4 , April 2001,
2.Iniguez, A, "Vector language: a proposed verification methodology for intellectual property cores", ASIC/SOC Conference, 2001. Proceedings,
3.Sforza, F., Battu, L., Brunelli, etc, "A "design for verification" methodology", Quality Electronic Design, 2001 International Symposium on, 2001.
c++相關文章:c++教程
評論