新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SOC設計驗證方法的探索

        SOC設計驗證方法的探索

        作者: 時間:2011-04-23 來源:網絡 收藏

        一、引言

        本文引用地址:http://www.104case.com/article/150832.htm

          在片上系統的與實現中,這一環節日益重要,整個過程中花在的時間比重越來越大,主要原因在于隨著SoC 芯片復雜度的提高,的規模也成指數級的增加。系統芯片的時代已經到來,在RTL級硬件的抽象層次上已經無法應付數以百萬和千萬門系統的和驗證。據統計,兩年來,一次投片成功率已經由50%降低到39%。不能一次成功的設計必須再投入幾個月的設計驗證時間和數十萬美元的費用。這種風險已經變得不可接受了。因此設計驗證出現了所謂的“驗證危機”[2]。功能驗證已經成為集成電路設計和開發的瓶頸,這就使得驗證的逐漸受到業界人士的高度重視。工程師們在設計時不可能考慮到萬無一失,所以很多系統行為是不能緊緊通過測試文件就能保證系統功能的正確性。

          二、驗證的特點

          片上系統(SoC)是一種建構技術,主要由處理器(MCU)以及一些外圍設備如UART,MAC,控制器等構成,系統結構圖如圖1。SoC的驗證和ASIC的驗證工作有很多相同地方:首先都要進行模擬,檢查設計是否符合規則,使用各種對芯片進行測試。但是,的驗證又比較特殊,存在一些特殊挑戰。

          1.整合:驗證SoC的首要重點就是檢查各種元件之間的整合程度,這里隱含的基本假設就是每一部件都已經完成自我檢查。

          2.軟硬件協同驗證:處理器中運行的軟件必須和硬件部分產生關聯才能進行驗證。或者我們應該把軟硬件當作一個完整的測試中元件(Device Under Test),對涉及軟硬件結合狀態的方案進行測試。所以我們要找到一種來檢驗我們編寫的測試,以及在涵蓋的測試范圍中,軟硬件之間的關聯性。

          3.IP核復用:對于可重用的IP核要建立可重用的驗證元件。建立可重用的驗證元件,會遇到重大挑戰,但同時也會因此而獲得更大利益。

          SoC代表的是一類極其復雜的系統。一個典型的SoC需要一個或多個微處理器,還需要一些其他部件,如DSP、Memory等。為驗證SoC,首先需要驗證每個部件的正確性,然后要驗證部件間連接和通信的正確性。SoC驗證問題實際上就是:如何針對具體的驗證任務,選擇適當的驗證工具并加以整合。

          三、當前常用的驗證方法

          關于驗證的方法有很多,但是到現在為止還沒有任何一種方法可以非常有效地對系統芯片進行功能驗證。概括來看,迄今的驗證方法可分為模擬、仿真和形式驗證三種[3]。

          1、模擬驗證

          模擬驗證是將激勵信號施加于設計,進行計算并觀察輸出結果,并判斷該結果是否與預期一致。

          優點:模擬驗證是傳統的驗證方法,而且目前仍然是主流的驗證方法。

          缺點:非完備性,即只能證明有錯而不能證明無錯。因此,模擬一般適用于在驗證初期發現大量和明顯的設計錯誤,而難以勝任復雜和微妙的錯誤。模擬驗證還嚴重依賴于測試向量的選取,而合理而充分地選取測試向量,達到高覆蓋率是一個十分艱巨的課題。由于設計者不能預測所有錯誤的可能模式,所以尚未發現某個最好的覆蓋率度量。即使選定了某個覆蓋率度量,驗證時間也是一個瓶頸。

          2、仿真驗證

          從電路的描述抽象出模型,然后將外部激勵信號或數據施加到此模式中,通過觀察該模型在外部激勵信號作用下的反應來判斷該電子系統是否達到了設計目標。仿真的方法是目前進行設計時常用的方法,根據不同的仿真層次,有不同的仿真工具。

          優點:仿真比模擬的驗證速度快得多,

          缺點:代價昂貴,靈活性差。

          3、形式驗證

          形式化驗證是不同于仿真方法的對邏輯設計結果進行的另一種驗證方法[4]。在 自上而下的設計過程中,在設計的各個階段和級別,每一級設計都是以上一級的設計作為設計目標,得到本級的設計結果的結構描述,這是設計和綜合的過程。

          優點:完備性,能夠完全斷定設計的正確性。

          缺點:首先要對原始設計進行模型抽取,這對使用者有數學技能和經驗上的要求。而且,有的工具需要人工引導(如定理證明),有的工具存在狀態空間爆炸 問題(如模型檢驗)。

          類型:

          (1)等價性檢驗[5]

          它是用數學方法驗證參考設計與修改設計之間的等價性。(如圖2)利用等價性驗證工具可對這兩種設計方案進行徹底的檢驗以保證它們在所有可能的條件下都有一樣的性能。還可利用等價性驗證來驗證不同的RTL或門級實施方案的等價性。

          從整個數字系統的設計流程看,等價性問題幾乎存在于每個上下相鄰的設計層次中,見圖2。

          (2)定理證明技術。

          運用公理和已經證明的定理證明電路的描述是正確的。

          這兩種方法各有特點,其中定理證明雖然能夠給出設計是否正確的一個確切的回答,但由于涉及很多數學推理方面的知識,這就要求用戶有很強的數學功底,這也是這種方法不能推廣的一個原因。而等價性驗證是驗證不同階段的設計是否相互等價的一個很好的方法。一個設計是分為多個階段進行的,那么下一個階段的與上一個階段的等價是設計的正確的一個保證。

          四、新型的驗證方法

          針對SOC驗證出現的各種問題現在還沒有一種完全行之有效的方法出現,解決辦法之一是基于斷言的驗證(ABV)[6],它是把形式化方法集成到傳統模擬流程中的一種有效的方法。設計團隊在RTL設計中插入設計意圖(斷言)并且進行模擬,然后用形式化技術檢查斷言,限制條件,也就是合法接口行為的斷言,和其他斷言同時一同參加模擬。斷言檢查的結果改進模擬的有效性。即使利用傳統的模擬驗證,斷言也可以大大提高模擬的效率。基于斷言的驗證要由用戶寫出斷言,斷言表示要驗證的性質,因此需要性質描述語言。例如邏輯和時序方面的性質。這就需要盡快找到一種能實現上述功能的語言。SystemVerilog正是在這種情況下產生的,正逐漸被業界人士接受。

          五.結論

          形式化方法最近幾年取得了長足進展,特別是等價性檢驗已經集成到標準驗證流程中。設計和驗證方法的進步應當是漸進的,不可能發生革命性的改變。因此在可以預見的幾年內,混合驗證方法應當成為主流的驗證方法。

          基于斷言的驗證是結合形式化驗證和傳統的模擬驗證可行的途徑。支持這種途徑的統一的設計和驗證語言是SystemVerilog。該語言已經得到很多EDA廠商和用戶的支持,預計將會流行起來。



        關鍵詞: 探索 方法 驗證 設計 SOC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 巴马| 修水县| 涞水县| 额尔古纳市| 宁强县| 莒南县| 垫江县| 军事| 宣化县| 乐清市| 九江市| 揭东县| 台江县| 宜良县| 华蓥市| 师宗县| 乐山市| 濮阳县| 应城市| 康平县| 承德市| 丽江市| 灵宝市| 静安区| 万荣县| 喜德县| 丹东市| 丹巴县| 晋中市| 平果县| 台湾省| 苍山县| 琼结县| 元氏县| 湘乡市| 惠来县| 盐源县| 新龙县| 汉中市| 嘉峪关市| 临西县|