《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 形式化驗證在處理器浮點運算單元中的應用
形式化驗證在處理器浮點運算單元中的應用
2017年電子技術應用第2期
朱 峰,魯征浩,朱 青
蘇州大學,江蘇 蘇州215006
摘要: 隨著芯片復雜度的急劇增加,模擬仿真驗證不能保證測試向量的完備性,尤其是一些邊界情況。形式驗證方法因其完整的狀態空間遍歷性和良好的完備性,被業界應用于設計規模不大的模塊和子單元中。針對處理器浮點運算單元,采用Cadence公司JasperGold工具對一些關鍵模塊進行了形式化驗證,對流水控制中的糾錯碼(Error Correcting Code,ECC)、軟件結構寄存器(Software Architected Register,SAR)和計算單元中的公共模塊分別采用了基于FPV(Formal Property Verification)的性質檢驗和基于SEC(Sequential Equivalence Checking)的等價性檢驗。結果表明,形式化驗證在保證設計正確性的基礎上極大地縮短了驗證周期。
中圖分類號: TN401;TP301
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.005
中文引用格式: 朱峰,魯征浩,朱青. 形式化驗證在處理器浮點運算單元中的應用[J].電子技術應用,2017,43(2):29-32.
英文引用格式: Zhu Feng,Lu Zhenghao,Zhu Qing. Effective formal applications in CPU floating point unit[J].Application of Electronic Technique,2017,43(2):29-32.
Effective formal applications in CPU floating point unit
Zhu Feng,Lu Zhenghao,Zhu Qing
Soochow University,Suzhou 215006,China
Abstract: With the increasing complexity of chip design, it is almost impossible to ensure the completeness of test space, especially corner cases. Formal verification is applied to block and subunit level design in industry due to systematic and efficient way to explore exhaustively all reachable state space. This paper describes our practical experiences and results with applying formal verification to floating point unit using Cadence JasperGold. Specially, FPV(Formal Property Verification) and SEC(Sequential Equivalence Checking) are applied to ECC(Error Correcting Code) as well as SAR(Software Architecture Register) in pipeline control and shared arithmetic modules respectively. The implemented results show that JasperGold improves verification quality with exposing corner cases, locates potential bugs accurately and speeds up verification achievement.
Key words : floating point unit;formal verification;JasperGold;FPV;SEC

0 引言

    隨著集成電路設計規模和復雜度增加,系統設計的功能驗證面臨著嚴峻挑戰。據統計,驗證的時間和人力投入已占到整個設計的50%以上,用于測試和錯誤診斷的代價超過了產品實現成本的50%。因此,推出一種新的驗證方法成為驗證界的熱點和難點。

    傳統的模擬驗證方法,基于軟件或硬件平臺設計系統模型,通過對比測試向量的輸出結果判斷設計是否達到標準,這很大程度上取決于測試向量的完備性[1]。面對大型設計時,模擬驗證逐漸暴露其局限性,難以覆蓋所有的測試向量,無法保證驗證的完整性。

    形式化驗證采用系統高效的方法,遍歷整個狀態空間,能夠對設計進行完整的驗證,近年來受到業界的廣泛關注。形式驗證包括等價性檢驗、性質檢驗和定理證明。等價性檢驗是指驗證一個設計的不同描述形式之間的功能等價性。性質檢驗利用時態邏輯描述設計功能,通過窮舉法驗證設計的系統是否滿足功能要求。定理證明從系統的公理出發,使用推理規則逐步推導出其所期望特性的證明過程,該方法對驗證人員數學功底和推導能力要求很高,在學術研究之外應用較少。研究形式驗證在實際項目中的應用,對于提高驗證效率,縮短產品開發周期具有重要意義。

    本文基于一款處理器芯片的浮點運算單元,應用Cadence公司JasperGold形式驗證工具,針對流水控制和計算單元中的關鍵模塊分別采用了FPVSEC進行驗證。

1 SAR驗證

    軟件結構寄存器(Software Architected Register,SAR)在浮點運算單元流水線中作為第二級存儲區域。SAR整體4個讀端口和4個寫端口,其內部由8個bank塊組成,每個bank塊的本質是SRAM,一個SRAM是一讀一寫,有128個entry,64個結構寄存器。SAR進行讀/寫操作時,會從8個bank中選擇bank塊的對應entry,將其中數據傳輸到其中一個讀/寫端口處。當出現多個讀/寫操作訪問同一個bank塊時,會發生沖突,需要報錯。

    SAR的性質檢驗采用的是JasperGold的FPV。性質檢驗的主要工作是根據驗證的需要編寫對應的性質(property),性質的構建方式和完備程度會直接影響到驗證的效果。常用編寫property的語言有System Verilog和PSL(Property Specification Language),JasperGold對這兩種語言都支持。SAR主要的驗證要點:(1)遍歷整個讀寫的地址空間;(2)發生沖突時,能否報錯;(3)檢測在不同的工作模式下,是否能正常工作。

    在進行端對端數據傳輸時,數據包在數據通路中會經過緩沖器或存儲器,需要進行數據傳輸完整性驗證。因為存儲器這類結構易于理解而且很少會出現bug,所以在整個項目的驗證過程中不會引起大家的關注。但是因為存儲器巨大的狀態空間,使其成為提高形式化驗證性能的瓶頸。為解決這一問題,在對SAR進行驗證時,使用了JasperGold提供的形式計分板證明加速器(Formal Scoreboard Proof Accelerator,PA)。PA可以把存儲器進行抽象化,同時保留充分的信息,確保Formal Scoreboard中結果的精確。在SAR具體驗證時,用PA替換了SAR中的bank,同時為了簡化驗證復雜度,在構建屬性斷言時,核心思想是:在沒有發生沖突的情況下,讀操作讀取的數據應該等于上一次寫操作對應地址的寫入數據。Check會對相對應寫操作數據和讀數據進行對比,同時檢測沖突發生的情況,具體的驗證構如圖1所示。

wdz3-t1.gif

    通過對驗證結果分析,發現編寫的property涵蓋了所有的驗證要點,且全部得到了證明。尤其是使用PA之后,證明消耗的時間大大縮短,驗證性能提升顯著。如圖2和圖3所示,沒有使用PA前,針對SAR一個端口遍歷所有讀寫地址空間,總的證明時間為286.41 s,使用PA之后,所需的證明時間僅為1.04 s。

wdz3-t2.gifwdz3-t3.gif

2 ECC驗證

    為了保持數據的正確性和一致性,浮點運算單元的流水線控制中引入了糾錯碼(Error Correcting Code,ECC)校驗機制,實現對源操作數的錯誤檢出和及時糾正,利用數據的ECC碼可以實現“糾一檢二”,即僅有1 bit數據出錯時,能糾正該錯誤,當數據有2 bit錯誤時,只能檢測出錯誤但不能恢復。

    ECC校驗是利用數據初始的糾錯碼和讀取該數據時重新生成的ECC碼按位異或生成綜合位,根據綜合位判斷數據是否出錯,并將綜合位輸出供糾錯使用。ECC恢復是依據ECC校驗輸出的糾錯信息糾正待糾錯數據,當數據出錯位大于一位時,錯誤不可恢復。

    ECC校驗和ECC恢復是流水線中不同執行階段的兩個模塊,相互獨立又相互依賴。當數據經過ECC校驗模塊且輸出的error信號為高時,待糾錯數據和糾錯碼被驅動給ECC恢復模塊來判斷數據是否可以恢復并糾錯。若兩個模塊分別驗證,復雜的糾錯碼產生機制和有依賴關系輸入信號增加了驗證難度。故將兩個模塊直接相連,通過對比輸入數據與糾錯后數據來驗證模塊功能。

    如圖4所示,設計一個組合電路實現對輸入數據的校驗和糾錯,接入一個錯誤數據生成模塊和糾錯碼產生模塊實現對ECC校驗輸入信號的產生,避免在輸入信號property中描述復雜的糾錯碼產生機制。錯誤數據生成模塊根據輸入信號錯誤模式e指定注入錯誤的數量,錯誤0和錯誤1信號指定數據具體翻轉位。將ECC校驗、ECC恢復、ECC產生和錯誤產生模塊封裝為一個整體,作為性質檢驗的設計實現。

wdz3-t4.gif

    對于組合后的ECC模塊,針對不同的數據出錯類型,有3類property需檢驗。在數據沒有出錯的情況下,輸出信號error為0;數據有1 bit出錯時,輸出error為1,數據不可恢復為0且糾錯后數據與輸入數據相等;數據有2 bit錯誤時,輸出error為1且數據不可恢復信號為1。根據錯誤位產生的邏輯,當需要產生2 bit錯誤時,需要保證兩次的翻轉位不同,即錯誤0!=錯誤1。實際的流水線邏輯中數據位寬為128 bit,對數據的高64 bit和低64 bit分別描述其property驗證。

    JasperGold會遍歷所有的狀態空間,驗證結果顯示耗時101 s,證明了設計包含描述的所有屬性,說明ECC校驗模塊“檢二”和ECC恢復模塊“糾一”的功能實現。

3 共用模塊的等價性檢驗

    浮點單元的運算模塊非常適合形式化驗證,尤其是等價性檢驗。進行等價性檢驗主要的工作在于開發一個符合設計規格的參考模型,參考模型可以根據需要靈活的應用不同語言編寫。目前業界主流的形式化驗證工具只支持Verilog HDL和VHDL,RTL到RTL的等價性檢驗已經發展比較成熟,有著相對完善的標準。本文采用的JasperGold支持Verilog HDL和VHDL這兩種語言,也有一些工具支持C語言,但C到RTL的等價性檢驗應用較少,發展不是很成熟。

    在浮點單元運算IP設計開發時,先對多個運算IP中共用的基本模塊進行了統一設計,在之后各個IP設計中對共用模塊進行統一調用。所以,浮點單元運算IP的驗證工作先是對共用模塊進行驗證,然后是對各個IP的驗證。出于項目實際情況考慮,在對共用模塊進行驗證時,因為共用模塊實現的功能相對單一,復雜度不高,所以共用模塊的參考模型使用Verilog HDL編寫。而對運算IP驗證的時候,因為IP復雜度高,開發相應參考模型的工作量很大,因此形式化驗證和仿真驗證共用了統一由C語言開發的參考模型。由于JasperGold不支持C到RTL的等價性檢驗,在對IP驗證的時候使用了其它的驗證平臺。

    共用模塊的等價性檢驗采用的是JasperGold的SEC,主要包括加法器、減法器、循環移位器、前導零、4-2壓縮器、舍入器(rounder)等模塊。在編寫參考模型時,除了保證其可綜合之外,還需要考慮功能的正確。

    圖5給出了rounder的形式驗證報告,可以看出,相比于仿真驗證,證明時間幾乎為0,驗證速度明顯提高。而且這一優勢在對整個IP進行驗證時更加突出,對浮點單元各個運算IP進行等價性驗證時,除了乘加模塊需要對參考模型進行特殊的改動[3],其它模塊包括除法、倒數估值等模塊,都能夠比較快速地收斂,極大地縮減驗證周期。

wdz3-t5.gif

4 總結

    本文主要介紹了形式化驗證方法在浮點單元功能驗證中的具體應用。結果表明,相比模擬仿真驗證,形式化驗證不用構造復雜的驗證平臺和編寫海量的測試激勵,在極大減少驗證工作量的同時,提高了的可靠性,縮短了驗證周期。

參考文獻

[1] LAM W.Hardware design verification:simulation and formal method-based approaches[M].US:Prentice Hall PTR,2005.

[2] 陳云霽,馬麟,沈海華,等.龍芯2號微處理器浮點除法功能部件的形式驗證[J].計算機研究與發展,2006(10):1835-1841.

[3] JACOBI C,KAI W,PARUTHI V,et al.2005 Design,Automation and Test in Europe Conference and Exposition (DATE 2005)[C].Munich,2005.



作者信息:

朱  峰,魯征浩,朱  青

(蘇州大學,江蘇 蘇州215006)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国内精品1区1区3区4区 | 成年人视频在线免费播放 | 午夜毛片在线观看 | 欧美精品国产日韩综合在线 | 五月婷婷爱 | 久久天天丁香婷婷中文字幕 | 美女一级毛片无遮挡内谢 | 黄色a级毛片| 中文字幕网址 | 成人毛片高清视频观看 | 日韩中文字幕精品免费一区 | 亚洲另类自拍丝袜第1页 | 一级做a爱过程免费视频韩国 | 在线看片网站 | 成人毛片免费看 | 久久久久免费视频 | 国产一级毛片视频在线! | 婷婷在线成人免费观看搜索 | 免费播放国产一级 | 天天看天天干天天操 | 天天操夜夜操狠狠操 | 亚洲一区二区综合 | 狠狠色狠狠色很很综合很久久 | 福利午夜在线 | 欧美不卡激情三级在线观看 | 在线a人片免费观看国产 | 欧美极品第一页 | 日韩手机在线免费视频 | 黄色片视频免费观看 | 国产精品久久久天天影视香蕉 | 久在草视频| 国产做受视频激情播放 | 日韩欧美网站 | 26uuu久久| 欧美日韩一区视频 | 国产成人精品福利站 | 色xx综合| 小黄漫画激情四射在线观看 | 最近中文字幕视频完整 | 羞羞视频网站免费 | 日韩欧美国产高清 |