基於形式的高效 RISC-V 處理器驗證方法
發布時間:2023-05-31 責任編輯:lina
【導讀】RISC-V的開放性允許定製和擴展基於 RISC-V 內nei核he的de架jia構gou和he微wei架jia構gou,以yi滿man足zu特te定ding需xu求qiu。這zhe種zhong對dui設she計ji自zi由you的de渴ke望wang也ye正zheng在zai將jiang驗yan證zheng部bu分fen的de職zhi責ze轉zhuan移yi到dao不bu斷duan壯zhuang大da的de開kai發fa人ren員yuan社she群qun。然ran而er,隨sui著zhe越yue來lai越yue多duo的de企qi業ye和he開kai發fa人ren員yuan轉zhuan型xingRISC-V,大(da)家(jia)才(cai)發(fa)現(xian)處(chu)理(li)器(qi)驗(yan)證(zheng)絕(jue)非(fei)易(yi)事(shi)。新(xin)標(biao)準(zhun)由(you)於(yu)其(qi)新(xin)穎(ying)和(he)靈(ling)活(huo)性(xing)而(er)帶(dai)來(lai)的(de)新(xin)功(gong)能(neng)會(hui)在(zai)無(wu)意(yi)中(zhong)產(chan)生(sheng)規(gui)範(fan)和(he)設(she)計(ji)漏(lou)洞(dong),因(yin)此(ci)處(chu)理(li)器(qi)驗(yan)證(zheng)是(shi)處(chu)理(li)器(qi)開(kai)發(fa)過(guo)程(cheng)中(zhong)一(yi)項(xiang)非(fei)常(chang)重(zhong)要(yao)的(de)環(huan)節(jie)。
RISC-V的開放性允許定製和擴展基於 RISC-V 內nei核he的de架jia構gou和he微wei架jia構gou,以yi滿man足zu特te定ding需xu求qiu。這zhe種zhong對dui設she計ji自zi由you的de渴ke望wang也ye正zheng在zai將jiang驗yan證zheng部bu分fen的de職zhi責ze轉zhuan移yi到dao不bu斷duan壯zhuang大da的de開kai發fa人ren員yuan社she群qun。然ran而er,隨sui著zhe越yue來lai越yue多duo的de企qi業ye和he開kai發fa人ren員yuan轉zhuan型xingRISC-V,大(da)家(jia)才(cai)發(fa)現(xian)處(chu)理(li)器(qi)驗(yan)證(zheng)絕(jue)非(fei)易(yi)事(shi)。新(xin)標(biao)準(zhun)由(you)於(yu)其(qi)新(xin)穎(ying)和(he)靈(ling)活(huo)性(xing)而(er)帶(dai)來(lai)的(de)新(xin)功(gong)能(neng)會(hui)在(zai)無(wu)意(yi)中(zhong)產(chan)生(sheng)規(gui)範(fan)和(he)設(she)計(ji)漏(lou)洞(dong),因(yin)此(ci)處(chu)理(li)器(qi)驗(yan)證(zheng)是(shi)處(chu)理(li)器(qi)開(kai)發(fa)過(guo)程(cheng)中(zhong)一(yi)項(xiang)非(fei)常(chang)重(zhong)要(yao)的(de)環(huan)節(jie)。
在複雜性一般的RISC-V 處(chu)理(li)器(qi)內(nei)核(he)的(de)開(kai)發(fa)過(guo)程(cheng)中(zhong),會(hui)發(fa)現(xian)數(shu)百(bai)甚(shen)至(zhi)數(shu)千(qian)個(ge)漏(lou)洞(dong)。當(dang)引(yin)入(ru)更(geng)多(duo)高(gao)級(ji)特(te)性(xing)的(de)時(shi)候(hou),也(ye)會(hui)引(yin)入(ru)複(fu)雜(za)程(cheng)度(du)各(ge)不(bu)相(xiang)同(tong)的(de)新(xin)漏(lou)洞(dong)。而(er)某(mou)些(xie)類(lei)型(xing)的(de)漏(lou)洞(dong)過(guo)於(yu)複(fu)雜(za),導(dao)致(zhi)在(zai)仿(fang)真(zhen)環(huan)節(jie)都(dou)無(wu)法(fa)找(zhao)到(dao)它(ta)們(men)。因(yin)此(ci)必(bi)須(xu)通(tong)過(guo)添(tian)加(jia)形(xing)式(shi)驗(yan)證(zheng)來(lai)賦(fu)能(neng) RTL 驗證方法。從極端漏洞到隱匿式漏洞,形式驗證能夠讓您在合理的處理時間內詳盡地探索所有狀態。
在本文中,我們將介紹一個基於形式驗證的、易於調動的 RISC-V 處理器驗證程序。與 RISC-V ISA 黃金模型和 RISC-V 合(he)規(gui)性(xing)自(zi)動(dong)生(sheng)成(cheng)的(de)檢(jian)查(zha)一(yi)起(qi),展(zhan)示(shi)了(le)如(ru)何(he)有(you)效(xiao)地(di)定(ding)位(wei)那(na)些(xie)無(wu)法(fa)進(jin)行(xing)仿(fang)真(zhen)的(de)漏(lou)洞(dong)。通(tong)過(guo)為(wei)每(mei)條(tiao)指(zhi)令(ling)提(ti)供(gong)一(yi)組(zu)專(zhuan)用(yong)的(de)斷(duan)言(yan)模(mo)板(ban)來(lai)實(shi)現(xian)高(gao)度(du)自(zi)動(dong)化(hua),不(bu)再(zai)需(xu)要(yao)手(shou)動(dong)設(she)計(ji),從(cong)而(er)提(ti)高(gao)了(le)形(xing)式(shi)驗(yan)證(zheng)團(tuan)隊(dui)的(de)工(gong)作(zuo)效(xiao)率(lv)。
1、基於先進內核的處理器開發
嵌入式係統的應用越來越廣泛,同時對處理器的性能、功耗和麵積(PPA)要求越來越高,因此我們將這樣的產業和技術背景下用實際案例來分析處理器的驗證。Codasip L31 是一款用於微控製器應用的 32 位中端嵌入式 RISC-V 處理器內核。作為一款多功能、低功耗、通用型的 CPU,它實現了性能和功耗的理想平衡。從物聯網設備到工業和汽車控製,或作為大型係統中的深度嵌入式內核,L31可在一個非常小巧緊湊的矽片麵積中實現本地處理能力。L31是通過 Codasip Studio 使用 CodAL 語言設計而成,該內核完全可定製,包括經典的擴展和特性,以及實現這些擴展和特性所需的高效和徹底的驗證。

圖1 Codasip L31處理器內核架構圖解(來源:Codasip)
表 1 Codasip L31內核展示了RISC-V處理器的優異特性
特性 | 描述 |
指令集架構 (ISA) | RV32 I/M/C/F/B |
流水線 | 3級順序流水線 |
分支預測器 | 可選,優化過的單線程性能 |
並行乘法器 | 並行實現,單周期乘法 |
序列除法器 | 順序執行 |
內存保護 | ●具有 2/4/8/16 個區域的可選MPU ●具有 2/4/8/16 個區域的物理內存屬性 機器和用戶權限模式 |
緊耦合存儲器 (TCM) | ●指令和數據TCM ●可定製大小高達2MB AHB-Lite TCM 輔助端口 |
接口 | 用於獲取和數據的 32 位 AHB-Lite 接口(帶緩存的 AXI-Lite) |
浮點單元 (FPU) | 可選,單精度 |
調試 | ●標準 RISC-V 調試 ●2/4 JTAG ●2-8 個斷點和觀察點 ●係統總線接入 |
中斷 | ●中斷控製器 ●標準 RISC-V CLINT 執行 ●多達 128 個中斷 ●WFI(等待中斷) ●NMI(不可屏蔽中斷) |
2 創建最優的RISC-V處理器驗證方法
處理器驗證需要製定合適的策略、勤勉的工作流程和完整性,而方興未艾的、更加靈活的RISC-V處理器開發則需要針對自己處理器功能設置做詳盡的驗證規劃;也需要參考一些內核供應商的內外部因素,比如該供應商自己的開發工具體現和外部開發工具夥伴,以及同係、同款或者同廠內核的出貨量等。
驗(yan)證(zheng)處(chu)理(li)器(qi)意(yi)味(wei)著(zhe)需(xu)要(yao)考(kao)慮(lv)諸(zhu)多(duo)不(bu)確(que)定(ding)性(xing)。最(zui)終(zhong)產(chan)品(pin)將(jiang)運(yun)行(xing)什(shen)麼(me)軟(ruan)件(jian)?用(yong)例(li)是(shi)什(shen)麼(me)?可(ke)能(neng)發(fa)生(sheng)哪(na)些(xie)異(yi)步(bu)事(shi)件(jian)?這(zhe)些(xie)未(wei)知(zhi)數(shu)意(yi)味(wei)著(zhe)較(jiao)大(da)的(de)驗(yan)證(zheng)範(fan)圍(wei)。然(ran)而(er),覆(fu)蓋(gai)整(zheng)個(ge)處(chu)理(li)器(qi)狀(zhuang)態(tai)空(kong)間(jian)是(shi)無(wu)法(fa)實(shi)現(xian)的(de),這(zhe)也(ye)不(bu)是(shi)Codasip這樣的領先內核供應商的目標。
zaiquebaochuliqipinzhidetongshi,chongfenliyongshijianheziyuancaishichuliqiyanzhengdezhengjie。mingzhidechuliqiyanzhengyiweizhezaichanpinkaifaguochengzhongjinzaobinggaoxiaodifaxianxiangguanloudong。zaidingcengfangmian,Codasip提供了多種創新的驗證路徑,其驗證方法基於以下內容:
驗證是在處理器開發期間與設計團隊合作完成的。
驗證是所有行業標準技術的組合。使用多種技術可以讓您最大限度地發揮每一種技術的潛力,並有效地覆蓋盡可能多的極端情況。
驗證需持續進行。有效的辦法是運用隨著處理器複雜程度而不斷發展的技術組合。
在驗證L31內核時,我們的想法是讓仿真和形式驗證相輔相成。
2.1仿真的優勢和目的
仿真實際上不可或缺,它允許我們在兩個級別上進行驗證設計:
頂層仿真(Top-level),主要是為了確保設計在最常見的情況下符合其規範(CPU 的 ISA)。
塊級仿真(Block-level),以yi確que保bao微wei架jia構gou按an照zhao預yu期qi設she計ji。然ran而er,很hen難nan將jiang這zhe些xie檢jian查zha與yu頂ding層ceng架jia構gou規gui範fan聯lian係xi起qi來lai,因yin為wei這zhe通tong常chang依yi賴lai於yu定ding向xiang隨sui機ji測ce試shi生sheng成cheng,因yin此ci能neng夠gou應ying付fu棘ji手shou和he不bu尋xun常chang的de情qing況kuang。
頂層仿真通常不像塊級仿真那樣特意強調設計。因此,它可以實現針對 ISA 的設計的整體驗證。
2.2形式驗證的優勢和目的
形式驗證使用數學技術對以斷言形式編寫的問題提供有關設計的明確答案。
形(xing)式(shi)驗(yan)證(zheng)工(gong)具(ju)對(dui)斷(duan)言(yan)和(he)設(she)計(ji)的(de)組(zu)合(he)進(jin)行(xing)詳(xiang)盡(jin)的(de)分(fen)析(xi)。不(bu)需(xu)要(yao)指(zhi)定(ding)任(ren)何(he)刺(ci)激(ji),除(chu)了(le)指(zhi)定(ding)一(yi)些(xie)非(fei)正(zheng)常(chang)情(qing)況(kuang)以(yi)避(bi)免(mian)假(jia)漏(lou)洞(dong)。該(gai)驗(yan)證(zheng)工(gong)具(ju)可(ke)以(yi)提(ti)供(gong)詳(xiang)盡(jin)的(de)“已證實”答案或“失敗”答(da)案(an),同(tong)時(shi)生(sheng)成(cheng)顯(xian)示(shi)刺(ci)激(ji)的(de)波(bo)形(xing),證(zheng)明(ming)斷(duan)言(yan)是(shi)錯(cuo)誤(wu)的(de)。在(zai)大(da)型(xing)和(he)複(fu)雜(za)的(de)設(she)計(ji)中(zhong),工(gong)具(ju)有(you)時(shi)隻(zhi)能(neng)提(ti)供(gong)有(you)限(xian)的(de)證(zheng)明(ming),這(zhe)意(yi)味(wei)著(zhe)從(cong)重(zhong)置(zhi)到(dao)特(te)定(ding)數(shu)量(liang)的(de)周(zhou)期(qi)都(dou)不(bu)存(cun)在(zai)漏(lou)洞(dong)場(chang)景(jing)。同(tong)時(shi)也(ye)存(cun)在(zai)不(bu)同(tong)的(de)技(ji)術(shu)方(fang)法(fa)來(lai)增(zeng)加(jia)該(gai)周(zhou)期(qi)循(xun)環(huan)次(ci)數(shu),或(huo)獲(huo)得(de)“已證明”或“失敗”的答案。
形式驗證用於以下情況:
為完整的驗證一個模塊,潛在地消除了任何仿真的需要。由於形式驗證的計算複雜性,形式化驗收(sign-off)僅限於小模塊。
除了仿真之外,還要驗證一個模塊,即使是個大模塊,因為形式驗證能夠在極端情況下找到漏洞,而隨機仿真隻能“靠運氣”找到,而且概率非常低。
處理一些仿真不充分的驗證任務,例如時鍾門控、X態傳播(X-propagation)、數據增量處理(CDC)、等價性檢查等。
幫助調查缺少調試信息的已知漏洞,並確定潛在的設計修複。
對漏洞進行分類和識別,以便通過形式驗證來學習和改進測試平台/仿真。
為了潛在地幫助仿真,填充覆蓋範圍中的漏洞。
3解決方案:一種基於形式驗證的高效的 RISC-V 處理器驗證方法
為了獲得一種高效的RISC-V處理器驗證方法,我們決定以采用西門子EDA 處理器驗證APP來高效驗證Codasip L31 RISC-V 內核為例,來進行詳盡的說明。該工具的目標是確保 RTL 級別的處理器設計正確且詳盡地實現指令集架構 (ISA)規範,而本文希望介紹的是一種端到端的解決方案
1.該工具從一個頂層並有效的“黃金模型”中生成以下:
在 Verilog 語言中,ISA 的單周期執行模型。
一組斷言,用於檢查待測試模塊 (DUT)和模型 (M)在架構級別的功能是否相同。
注意:這並沒有進行任何正式等價性檢查。
2.當在 DUT 中獲取新指令 (I)時,會捕獲架構狀態 (DUT-init)。
3.該指令在流水線中運行。
4.捕獲另一個架構狀態(DUT-final)。
5.M 被輸入 DUT-init 和 I,並計算出一個新的 M-final 狀態。
6.斷言檢查 M-final 和 DUT-final 中的資源是否具有相同的值。

圖 2 3 級 L31 內核的端到端驗證流程(當驗證指令 I 既沒有停止也沒有清除緩存數據時)
這種端到端的驗證方法可以在比整個CPU 更小、更簡單的模塊(例如數據緩存)shanghelishixian。keyizaihuancunshangxieruduandaoduanduanyan,yiyanzhengxierutedingdizhideshujushifoucongtongyidizhizhengqueduqu。zheshiyonglezhongsuozhouzhidexingshiyanzhengjishu,lirujifenpaisuanfa。
然而,對於 CPU來說,手動編寫這樣的斷言是不可行的。它需要指定每條指令的語義,並與所有執行模式交叉。這通常根本不可能實現。 CPU 的形式驗證被分成更小的部分,但是仍然無法驗證所有部分是否正確執行了 ISA。
使用建議的方法意味著能夠立即驗證完整的 L31 內核,而無需編寫任何複雜的斷言。如上所述,黃金模型和檢查斷言是自動生成的。
這種方法同時具有高度可配置性和自動化性,特別是對於 RISC-V CPU,例如 L31:
用戶可以指定設計執行的頂層 RISC-V 參數和擴展。
該工具能夠自動從設計中提取數據,例如將架構寄存器與實際每秒浮點運算次數相關聯。
該工具允許添加自定義,例如用來驗證的新指令(具有為用戶“擴展”黃金模型的能力)。
最後,黃金模型不是由Codasip開發的(除了一些自定義部分),這一事實提供了額外的保證,這從驗證獨立性的角度來看很重要。
本文摘錄於《基於形式的高效 RISC-V 處理器驗證方法 – 形式化驗證》白皮書,出版人為總部位於歐洲的全球領先RISC-V供應商和處理器解決方案領導者,該公司的處理器IP目前已部署在數十億顆芯片中。Codasip通過開放的RISC-V ISA、Codasip Studio處理器設計自動化工具與高品質的處理器IP相結合,為客戶提供定製計算。這種創新方法能夠輕鬆實現定製和差異化設計,從而開發出高性能的、改變遊戲規則的產品,實現真正意義上的轉型。如希望得到該白皮書的完整版本,可瀏覽Codasip中文網站或者關注該公司微信公眾號。
該技術白皮書英文版下載鏈接:https://codasip.com/papers/a-formal-based-approach-for-efficient-riscv-processor-verification
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall



