<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用先進形式驗證工具來高效完成RISC-V處理器驗證

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-10 10:28 ? 次閱讀

我們在上一篇技術白皮書《基于形式驗證的高效RISC-V處理器驗證方法》中,以Codasip L31這款用于微控制器應用的32位中端嵌入式RISC-V處理器內核為例,介紹了一個基于形式驗證的、易于調動的RISC-V處理器驗證程序。它與RISC-V ISA黃金模型和RISC-V合規性自動生成的檢查一起,展示了如何有效地定位那些無法進行仿真的漏洞。

RISC-V的開放性允許定制和擴展基于RISC-V內核的架構和微架構,以滿足特定需求。這種對設計自由的渴望也正在將驗證部分的職責轉移到不斷壯大的開發人員社群。然而,隨著越來越多的企業和開發人員轉型RISC-V,大家才發現處理器驗證絕非易事。新標準由于其新穎和靈活性而帶來的新功能會在無意中產生規范和設計漏洞,因此處理器驗證是處理器開發過程中一項非常重要的環節。

在復雜性一般的RISC-V處理器內核的開發過程中,會發現數百甚至數千個漏洞。當引入更多高級特性的時候,也會引入復雜程度各不相同的新漏洞。而某些類型的漏洞過于復雜,導致在仿真環節都無法找到它們。因此必須通過添加形式驗證來賦能RTL驗證方法。從極端漏洞到隱匿式漏洞,形式驗證能夠讓您在合理的處理時間內詳盡地探索所有狀態。

在本文中,我們將以西門子EDA處理器驗證應用程序為例,結合Codasip L31這款廣受歡迎的RISC-V處理器IP提供的特性,來介紹一種利用先進的EDA工具,在實際設計工作中對處理器進行驗證的具體方法。這種驗證方法通過為每條指令提供一組專用的斷言模板來實現高度自動化,不再需要手動設計,從而提高了形式驗證團隊的工作效率。

如何使用西門子EDA處理器驗證應用程序

在我們使用該工具之前,需要為Codasip L31 RISC-V內核進行形式驗證設置。此設置類似于使用帶有抽象、約束等基于斷言的驗證(ABV)方法來形式驗證標準斷言的設置。

該工具允許驗證特定類別的指令,并啟用或禁用某些資源檢查。有了這個工具,我們的驗證可以從一個簡化的空間開始,這包括:

只有最簡單的指令,例如只有整數運算和邏輯指令。

只有最簡單(但最重要)的檢查。例如通用寄存器的更新。稍后可以添加的其他檢查指的是系統寄存器(CSR)或程序計數器(PC)的更新以及內存訪問。

只有主功能模式:沒有中斷、中止、異?;蛘{試訪問。

這三個正交約束可以根據微架構特征的關鍵程度逐一放寬。經典的形式驗證技術可用于幫助獲得檢查器斷言的結果:抽象、設計縮減、案例拆分、不變量生成、半形式漏洞搜尋等。

結果

這種基于形式的方法使我們能夠找到極端情況,并深入了解改進我們的仿真和測試平臺。在其他基于仿真的驗證流程運行而未發現新漏洞之后,此驗證工作在項目快結束時完成,這使我們能夠找到真正的和重要的漏洞。

我們可以特別關注其中的三個漏洞,它們從用于L31的西門子EDA處理器驗證應用程序中找到。以下是發現和彌補這三個漏洞的具體方法:

1. 分支預測器損壞

有了這個漏洞,返回到先前持有跳轉/分支指令的PC地址會導致分支預測器錯誤地預測跳轉到另一個地址。當滿足以下條件時,會發現這種極端情況:

自修改代碼

1686814603101938.png

當添加未定義的指令(新指令異常)時,也會出現此漏洞極其罕見的版本:

1686814599518270.png

該漏洞是通過檢查PC值的斷言發現的,直接后果是錯誤地執行了一個分支指令,導致代碼執行錯誤。通過正確清除分支預測和流水線的緩沖數據來修復此漏洞。

使用西門子EDA處理器驗證應用程序查找此漏洞需要8個周期和15分鐘的運行時間。在仿真中重現該漏洞需要一個支持自修改代碼的隨機生成器,該代碼可正好返回相同的地址并將該地址從分支修改為另一種類型的指令。換句話說,隨機生成器不可能做到這一點。只有知道漏洞詳細信息的定向序列可以做到。

2. 同一條指令的多次執行

出現這個漏洞,NPC(下一個 PC)單元停頓就會出現,這會導致多次獲取相同的地址。每條指令執行并退出。

當滿足以下條件時,會出現這種極端情況:

內核配置有TCM。

在提取總線上可以看到特定的延遲。

在流水線內可以看到特定的停頓。

該漏洞會直接在流水線的其余部分造成未被正確處理的停頓,導致同一指令的多次執行??梢酝ㄟ^正確處理其余流水線中的停頓來修復此漏洞。

使用西門子EDA處理器驗證應用程序查找此漏洞需要5個周期和10分鐘的運行時間。在仿真中再現它需要隨機延遲和停頓的隨機模式,但也需要相當多的“運氣”來再現這個特定序列。

3. 合法的 FENCE.I 指令被認為是非法的

出現這個漏洞,內存屏障會由CSR單元處理。如果與CSR操作的CSR地址位元對應的指令位元(位 [31:20])與某些CSR寄存器(例如調試、計數器)匹配,則指令可能會被錯誤地標記為非法。

當滿足以下條件時,會發現這種極端情況:

imm[11:0]/rs1/rd 中有隨機位元。

這些位元與其他一些非法指令相匹配。

1686814583187659.jpg

該漏洞的直接后果是錯誤地引發了非法指令異常。通過正確解碼流水線每個部分的完整指令可修復此漏洞。

使用西門子EDA處理器驗證應用程序查找此漏洞僅用了8個周期和5分鐘的運行時間。因為編譯器只會創建最簡單的二進制編碼實現,所以很難在仿真中重現該漏洞。它需要一個特殊的編譯器來創建合法編碼的變體,或者使用各種編碼進行特殊的定向測試。

從中發現的優勢/結論

應用這種方法可以提高驗證團隊的工作效率。在項目的關鍵階段提高效率。雖然在開始時構建正確的設置需要付出努力,但隨著我們添加新的指令類別和新的檢查器,進度就會加快。這個“最佳點”是我們發現大多數問題的地方,隨著放寬約束以允許該工具探索更深奧的操作模式,速度就開始放緩。

1686814579752512.png

圖 1 驗證L31 RISC-V內核的最佳效率的最佳點(來源:Codasip)

總的來說,因為使用西門子EDA處理器驗證應用程序驗證整個CPU所需的總體工作量遠低于手動達到類似驗證質量所需的工作量,所以使用該工具是相當高效的。在總共30個漏洞中,有15個是通過形式驗證發現的。

表1 仿真 vs形式驗證

驗證技術 仿真驗證 形式驗證
驗證基礎設施 測試臺、隨機指令生成器、檢查器 西門子EDA處理器驗證應用程序提供的斷言
開發時間 人-年(person-years of efforts) 時間極短(只需要自定義生成的設置)
運行時間 成千上萬次的測試/案例和成千上萬個仿真小時 在2小時的運行時間內完成完整驗證(最佳情況下)

當結合在一起到達高質量水平時,仿真和形式驗證是非常強大的,并使我們能夠促進改進驗證的良性循環。

1686814575164031.png

圖 2 通過持續改進達到一流的品質(來源:Codasip)

該解決方案在Codasip L31這種3級流水線微控制器上的實施被證明是可行的,現在已部署到Codasip的下一代RISC-V內核中,包括嵌入式和應用內核。借助在L31上使用西門子EDA處理器驗證應用程序積累的知識,即使應用內核更復雜,也可以減少建立穩健環境所需的工作量。而Codasip的下一步計劃包括進一步研究該工具如何應用于超標量和亂序內核,以及支持新的 RISC-V 擴展。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6868

    瀏覽量

    148311
  • codasip
    +關注

    關注

    0

    文章

    37

    瀏覽量

    6185
  • RISC-V處理器
    +關注

    關注

    0

    文章

    75

    瀏覽量

    9916
收藏 人收藏

    評論

    相關推薦

    Codasip攜手西門子打造RISC-V領域最完整形式驗證

    ,以進行全面和徹底的處理器測試。Codasip不斷在處理器驗證方面投入巨資,以再接再厲為業界提供最高質量的RISC-V處理器半導體知識產權(
    的頭像 發表于 05-07 13:55 ?6532次閱讀
    Codasip攜手西門子打造<b class='flag-5'>RISC-V</b>領域最完整<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>

    驗證RISC-V處理器的安全性

    。 本文討論了與硬件安全驗證相關的一些挑戰,并介紹了一種基于形式的方法來解決。實現流行的RISC-V指令集架構(ISA)的設計示例展示了這種方法的強大功能。 安全驗證概述 對
    的頭像 發表于 03-16 10:47 ?9247次閱讀
    <b class='flag-5'>驗證</b><b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b>的安全性

    學習RISC-V入門 基于RISC-V架構的開源處理器及SoC研究

    RISC-V架構的開源處理器與SoC。1 RISC-V簡介1.1 RISC-V的基本設計RISC-V是一個典型三操作數、加載-存儲
    發表于 07-27 18:09

    RISC-V是什么?如何去設計RISC-V處理器?

    RISC-V是什么?有哪些特點?如何去設計RISC-V處理器?
    發表于 06-18 09:24

    RISC-V工具鏈簡介

    解決問題效率,也是決定了處理器能否開發者接受、是否可以被廣泛應用。三、RISC-V工具鏈的現狀既然工具鏈這么重要,那么RISC-V
    發表于 09-01 14:24

    從零開始寫RISC-V處理器之六 寫在最后

    都是跨平臺、輕量級的工具。iverilog用來編譯verilog代碼,gtkwave用來查看波形。驗證一個處理器,首先是能跑通各個指令,RISC-V官方提供了指令兼容性測試程序,這些程
    發表于 08-23 15:05

    讀《玄鐵RISC-V處理器入門與實戰》

    是由美國伯克利大學的 Krest 教授及其研究團隊提出的,當時提出的初衷是為了計算機/電子類方向的學生做課程實踐服務的。由于這是伯克利大學研究并流片的第五代RISC架構處理器,因此就命名為RISC-V
    發表于 09-28 11:58

    開發出商用的RISC-V處理器還需要哪些開發工具和環境?

    開發出商用的RISC-V處理器還需要哪些開發工具和環境? 處理器是軟硬件的交匯點,所以必須有完善的編譯、開發
    發表于 11-18 06:05

    創新引領|芯華章聯手芯來科技提升RISC-V處理器設計驗證

    芯來科技將正式采用芯華章自主研發的新一代智能驗證系統穹景 (GalaxPSS)及數字仿真器穹鼎 (GalaxSim)等系列EDA驗證產品,加速新一代復雜RISC-V處理器IP的設計研發
    發表于 03-03 10:32 ?1998次閱讀

    關于RISC-V 處理器驗證的問題

    處理器驗證是一個全新的領域。我們知道 Arm 和 Intel 對處理器質量的期望設置了很高的標準。在 RISC-V 中,我們必須嘗試并遵循這一點。
    發表于 03-22 15:19 ?423次閱讀

    如何利用形式化驗證提高RISC-V處理器質量?

    RISC-V是一個模塊化的指令集架構,可以為其開發一個架構測試套件。它被用于基于仿真的驗證,以驗證一個處理器的實現。
    發表于 04-17 14:54 ?402次閱讀

    基于形式驗證高效RISC-V處理器驗證方法

    轉型RISC-V,大家才發現處理器驗證絕非易事。新標準由于其新穎和靈活性而帶來的新功能會在無意中產生規范和設計漏洞,因此處理器驗證
    的頭像 發表于 06-01 09:07 ?422次閱讀
    基于<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>的<b class='flag-5'>高效</b><b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b><b class='flag-5'>驗證</b>方法

    基于形式驗證高效RISC-V處理器驗證方法

    隨著RISC-V處理器的快速發展,如何保證其正確性成為了一個重要的問題。傳統的測試方法只能覆蓋一部分錯誤情況,而且無法完全保證處理器的正確性。因此,基于形式
    的頭像 發表于 06-02 10:35 ?1087次閱讀

    基于形式高效 RISC-V 處理器驗證方法

    RISC-V的開放性允許定制和擴展基于 RISC-V 內核的架構和微架構,以滿足特定需求。這種對設計自由的渴望也正在將驗證部分的職責轉移到不斷壯大的開發人員社群。然而,隨著越來越多的企業和開發人員轉型
    的頭像 發表于 07-10 09:42 ?467次閱讀
    基于<b class='flag-5'>形式</b>的<b class='flag-5'>高效</b> <b class='flag-5'>RISC-V</b> <b class='flag-5'>處理器</b><b class='flag-5'>驗證</b>方法

    思爾芯原型驗證助力香山RISC-V處理器迭代加速

    2023年10月19日, 思爾芯(S2C) 宣布 北京開源芯片研究院(簡稱“開芯院”) 在其歷代“香山” RISC-V 處理器開發中采用了思爾芯的 芯神瞳 VU19P 原型驗證系統
    的頭像 發表于 10-24 16:28 ?395次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>