王 渙
(中國電子科技集團公司第四十七研究所,沈陽 110032)
上個世紀90年代初,由于集成電路制造技術和EDA 工具的快速發展,芯片設計規模和設計復雜度急劇提高,出現了一批像ARM 這樣的專門為第三方公司提供可復用的集成電路模塊的IP 供應商。IP 供應商的出現和SoC 設計方法學的普及,極大地促進了集成電路設計業的發展,伴隨著IP的推廣和使用,也出現了一系列急需解決的問題。IP 供應商需要提供怎樣的文件;IP 使用者如何才能快速對其進行修改以適應設計者的需要;如何解決IP的接口標準問題;如何建立一個相對客觀的IP 評價體系,實現對IP 質量的評估;如何進行IP 驗證;如何有效地建立起IP的保護體系。這一系列問題的出現,最終導致了IP 核標準的產生[1]。圖1為集成電路IP核標準體系。
IP 核的開發流程,大致分為以下幾個步驟:①IP 核開發指南的編寫;②IP 核的設計;③IP 核的驗證。
開發指南一般包括以下幾個部分:①目錄結構管理規范;②可交付項規范;③文檔結構規范指南;④文檔書寫標準;⑤驗證平臺開發指南;⑥Verilog HDL 編碼指南。

圖1 集成電路IP 核標準體系
在IP 核的開發過程中,都要遵循IP 核的各項開發文檔進行,IP 核開發文檔流程如圖2 所示。
首先,要確定IP 核的規格。IP 核的規格至少包括以下內容:概述、功能需求、性能需求、物理需求、詳細的結構模塊框圖、對外系統接口的詳細定義、可配置功能詳細描述、需要支持的制造測試方法、需要支持的驗證策略等。確定規格的過程一般又包括行為建模進行功能論證,可行性分析就性能和成本進行折中等活動。

圖2 IP 核開發文檔流程
其次,進行模塊劃分。劃分模塊是指規劃工程師在給出IP 結構模塊框圖的同時,對于每個子模塊給出一個詳細的功能描述,同時必須明確子模塊之間接口的時序要求。只有規劃好,才能夠設計好。確定規劃和劃分模塊是IP 開發是否成功最為關鍵的一步。
然后進行子模塊定義和設計。設計者對所有子模塊的規格進行討論和審查,重點檢查時序接口和功能接口的一致性,隨后整理出子模塊的詳細設計方案。接下來設計者按照實現方案開始編寫RTL代碼、編寫時間約束文件、綜合批處理文件、子模塊驗證用測試平臺(testbench)和測試套件(test suite)等。當這些工作完成并通過代碼規范性檢查、測試覆蓋率檢查、功能覆蓋率檢查等驗收以后,這個子模塊就可用來與其他模塊一起集成了。
接著,進行頂層模塊設計。頂層模塊設計就是把子模塊集成起來,產生頂層模塊,并對它做綜合處理和功能驗證。綜合過程包括編寫綜合的批處理文件,在不同的參考庫上綜合,針對在制造上的可測性插入掃描鏈、ATPG,并進行最終的性能分析和功耗分析等[2]。
最后是IP 核的產品化過程。包括以下幾個部分:提供IP 設計和驗證用testbench,用商用轉換器進行打包提交,但轉換后需要重新驗證,比如做回歸測試以確保轉換有效,并強調在幾個主流仿真器上做仿真,在幾種主要工藝庫上做綜合,做門級仿真,做形式驗證以保證網表和RTL 級的一致性,產生或更新用戶文檔等。
對于IP 核的驗證,主要是建立參照模型和測試平臺,然后進行回歸測試和形式驗證。
這里的參照模型主要用于對系統功能進行驗證以及和RTL 模型的對照驗證,該模型主要用SystemC/SpecmanE/Vera/Verilog/VHDL 等語言來構造。
測試平臺的建立與子模塊設計并行,由驗證組的一些成員開始搭建驗證環境和開發測試用例,并針對IP 核的行為級模型對測試環境和測試用例進行調試,從而同步準備好用來仿真測試RTL 級IP核的驗證環境和測試用例。
回歸測試解決的問題是設計在修改一個錯誤的同時,卻引入了另外一個錯誤。回歸測試保證在修改一個錯誤或加入一個新功能時,已經驗證過的基本功能仍然正確。驗證工程師應該注意在驗證過程中找到一個錯誤,或加入一個新功能時,要把它們對應的測試用例及時加入到回歸測試集中。
形式驗證是一種系統級的驗證手段,不需要測試向量,而是根據“靜態”地通過判斷兩個設計是否等價來確認它們的功能是否一致,因此,形式驗證必須事先有一個參照設計。在IP 核驗證過程中,前面建立的參照模型就是我們的參照設計。形式驗證常用來判斷一個設計更改后和更改前實現的功能是否一致。同時,形式驗證也被用來確認綜合后、插入掃描鏈后、版圖提取后網表實現的功能前后是否一致。
在IP 核開發過程中,同樣面臨著許多關鍵技術,比如,IP的規格定義、基于接口的設計、IP 核測試存取結構標準、IP 核的驗證及打包等。隨著IP 核標準的完善,用戶將會更加方便快捷的選擇自己所需的IP 核產品。
[1]葉以正,肖立伊,謝學軍.國內外IP 核標準發展狀況[J].中國集成電路,2005(7):25-27.
[2]王寶友.VSIA 及其IP 核標準簡介[J].信息技術與標準化,2004(10):42-44.