新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何選擇正確的芯片驗證方法

        如何選擇正確的芯片驗證方法

        作者: 時間:2016-12-02 來源:網絡 收藏


        4 影響驗證技術的趨勢和力量

        4.1 技術視角

        設計錯誤可能出現在模塊接口處或是在模塊內部,它們最終會集成在一起形成芯片。舉例而言,那些在模塊級沒有被發現的缺陷在應用動態仿真時會在子系統或系統級上顯露出來。使用靜態功能驗證,模塊開發的每一步都會得到詳盡的驗證,從而確保子系統/系統質量和可靠性從根本上得到提高。有人認為,使用靜態/形式功能驗證,能夠更快地找到更多的缺陷。

        另一方面,使用靜態功能驗證也存在以下缺陷:

        1)現有的工具只能在模塊級運行;

        2)通常不能處理大型設計(一般只能處理100~150K的門電路);

        3)不能處理高度復雜的設計;

        4)現有的形式驗證工具有時會出現時間無限的問題(這主要是因為它們往往是基于一套探索程序,而不是任一算法)。這意味著形式功能驗證在一些情況下可能會比動態仿真花費更長的時間;

        5)設計必須被寫為可綜合的RTL形式。

        除了上述技術上的挑戰外,基于斷言的形式功能驗證的兩個競爭標準(PSL對SystemVerilog)也帶來了額外的問題。目前傾向于將靜態功能驗證方法用于驗證足夠成熟以備綜合的模塊,動態驗證(隨機和定向)用于嚴格驗證集成前的模塊。

        目前,動態仿真還將繼續主宰功能驗證領域,直到形式驗證工具提供一種更成熟的方法。

        4.2 語言視角

        可以觀察到這樣一個趨勢,就是將設計和驗證語言結合在一起。這將極大地促進生產率,改進系統可靠性以及提高設計質量,因為使用多種工具和語言引發的不明確和誤解問題將得到消除。

        在這一結合實現之前,公司要繼續依賴現有的高級設計語言(Verilog和VHDL),并選擇是使用專有驗證語言(Open-VERA、E等),還是過去流行的Verilog和VHDL 。

        SystemC與其他高級設計描述語言在設計流程中扮演著重要角色,其中涉及硬/軟件折衷以及在硬件上運行軟件的設計(如SoC)。另外,它們也可用于架構建模及確認,當可以為應用事務模型的驗證使用架構模型組件時,也可以使用 SystemC。

        5 選擇正確的驗證方法的標準

        在當前縮短上市時間和迫切要求低成本的環境下,工程師正在設法解決設計復雜性問題。那些在新技術上投入更多研發精力的公司,其研發費用的使用更有效率,產品上市時間更短,公司成長更快,盈利更高。另外,公司必須在其特有需求與核心價值的基礎上評估方法和技術。在將新技術引進其工具流程時,它們應當考慮以下問題,并做出適當的權衡。

        1)在某個生產線中,公司是市場領先者還是追隨者?

        2)基礎設施、工具和方法是集中式的還是分布式的?

        3)新驗證技術的評估是針對第一代產品進行的嗎?

        4)新驗證技術對成本和產品上市時間有何直接和間接影響?

        5)新的工具能否處理不同的設計能力?

        6)工具的易用性如何?

        7)可為新的工具提供什么水平的文檔和支持?

        8)新的工具和方法與公司內部現有的工具和方法之間是否具有互操作性?

        9)新工具的投資回報率(ROI)如何?(包括在服務、培訓、咨詢、計算和人力資源方面的投資)

        10)新的工具是否能夠支持處于多個不同地理位置的設計?

        11)公司需要考慮的問題中,最為重要的問題之一可能是:我們雇用的設計師和驗證工程師是否對新的工具抱有成見?(即設計師不愿意學習和接受新的技術)

        公司在做出關于工具、語言和方法的決策時可以采用以下介紹的簡單權衡方法。

        5.1 產品視角

        主要從事存儲器芯片或存儲器密集型(相對于邏輯密集型而言)芯片生產的公司訝SRAM和DRAM公司可能根本不需要進行大量的邏輯驗證。這些芯片大多是定制的。雖然這些產品中有些規模會很大,但它們的邏輯復雜性并不高,因而不支持在公司內部配備大量邏輯驗證工具的計劃。不過,存儲器密集型設計在其他方面提出了挑戰,例如布線、工藝變化以及功率等。

        那些制造純ASIC芯片,在芯片上不運行任何軟件的公司可能無須在硬件或是軟件實現上進行權衡或是實施測試以捕獲運行于硬件之上的軟件。例如,只具有硬件的SERDES芯片所要求的驗證和建模方法與同時具有硬件和軟件的SoC是不同的。

        對于擁有多種產品線的大公司來說,驗證方法必須滿足各種產品的不同要求。

        5.2 系統視角

        過去,邏輯芯片供應商不負責對芯片是否滿足參考系統的功能和性能要求進行驗證,而如今的系統廠商在批量訂貨之前都要求芯片供應商實施系統參考驗證。這就要求芯片公司在一個它們不熟悉的附加抽象級上對芯片進行建模和驗證,這需要架構模型、參考模型、復雜應用級的測試以及精細的測試平臺配置。面對這些不同類型的挑戰,公司有兩種選擇,一是采用現有的語言、技術和方法,這將耗費大量的時間和精力;另一種就是采用新技術(如VERA、Specman等)。此外,芯片供應商還必須確保所使用的參考模型和驗證套件是在一個與客戶的相應模型和套件兼容的環境中完成的,例如,應用客戶的軟件開發套件(SDK)和仿真器也能夠進行同樣的測試。

        5.3 方法學視角

        在芯片集成之前,可以將靜態功能驗證與動態仿真結合起來,在一個高置信度水平上驗證模塊級的功能。通過確認動態仿真正在持續驗證功能空間的主要邊角,可以有效地實施系統級驗證。

        首先執行隨機仿真可以在驗證的初始階段發現大量的缺陷,然后對隨機模擬加以約束以確定測試空間已經被完全覆蓋的做法或許相對容易一些。應考慮在功能覆蓋度量上對約束驅動型驗證進行細化。功能覆蓋率這一術語被用于描述對被覆蓋的功能空間進行量化的參數,相反地,代碼覆蓋率則被用于量化一個給定的測試套件對已實現的設計進行覆蓋的程度。定向仿真隨后可被用于在驗證周期末期覆蓋邊角測試空間。

        斷言和屬性可在靜態功能驗證期間起作用(在模塊級上),并可在動態仿真環境中被重用(在模塊級和系統級上)。如果模塊轉變為IP,那么斷言和屬性也是有用的,因為斷言將在IP被重用時持續不斷地檢查其屬性。

        6 結語

        隨著時間的推移,具有更小特征尺寸(90nm 和 65nm)的器件將投產。目前,公司正在致力于解決諸如布線、串擾和軟錯誤的設計問題。一旦這些設計瓶頸得到了解決且隨著芯片廠商在越來越小的芯片上封裝越來越多的邏輯,驗證問題的出現就是意料中的事了。新型工具和方法的不斷引進提高了設計生產率。提高設計(SystemC和SystemVerilog)和驗證(Open-VERA、E 和 SystemC)的抽象化程度以滿足日益增長的復雜度要求是不可避免的。目前從SystemVerilog 的推出能夠看到設計和驗證語言的融合趨勢。

        驗證持續扮演著重要角色,它能夠提高產品質量,使硅芯片一次成功,從而間接影響總體的產品時間。SystemC 和建模語言將繼續為邏輯密集型產品提供架構驗證。通過使用屬性、斷言以及推出形式驗證工具,生產率得到了進一步提高。但目前工程師仍舊依賴并信任動態仿真,因為它能夠驗證大型和高度復雜的設計。最終的趨勢可能是:形式驗證占據主要地位,動態仿真仍用于完整性檢查。

        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 诸城市| 平塘县| 大竹县| 南郑县| 金门县| 巴彦淖尔市| 桐庐县| 阿巴嘎旗| 平湖市| 科尔| 隆德县| 乐平市| 施秉县| 融水| 信阳市| 新和县| 河西区| 黎川县| 中江县| 昌黎县| 怀仁县| 河北区| 明光市| 嵊泗县| 盱眙县| 明水县| 绥棱县| 西城区| 和田市| 修武县| 秭归县| 石台县| 孟连| 乌鲁木齐县| 鄂尔多斯市| 苍南县| 华坪县| 焦作市| 蕉岭县| 和硕县| 贵定县|