<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 市場分析 > 是否存在用于 RISC-V 驗證的必要工具?

          是否存在用于 RISC-V 驗證的必要工具?

          作者: 時間:2023-04-06 來源:半導(dǎo)體產(chǎn)業(yè)縱橫 收藏

          Semiconductor Engineering 與 Cadence 產(chǎn)品管理集團總監(jiān) Pete Hardee 坐下來討論 處理器的驗證;參與討論的還有 Codasip 戰(zhàn)略和生態(tài)系統(tǒng)副總裁 Mike Eftimakis ;Simon Davidmann,Imperas Software 創(chuàng)始人兼首席執(zhí)行官;Sven Beyer,西門子 EDA 處理器驗證項目經(jīng)理;Synopsys 聯(lián)盟合作伙伴營銷高級總監(jiān) Kiran Vittal ;Breker Verification 首席執(zhí)行官 Dave Kelf 和 Viosoft Corporation 總裁兼首席技術(shù)官 Hieu Tran。

          本文引用地址:http://www.ex-cimer.com/article/202304/445325.htm

          SE: 驗證流程是什么樣的?

          Kelf: 我們將處理器的驗證看作是一堆活動,但在那個堆棧中有很多環(huán)回。許多公司將遵守 ISA 視為一項單獨的活動。他們將執(zhí)行「Hello World」測試作為第一個堆棧,以確保一切正常運行,然后他們將運行盡可能多的一致性測試。他們嘗試匹配 ISA,然后開始測試微架構(gòu)。我們看到發(fā)生的事情是,當他們運行一致性測試時,他們可能看起來獲得了一致性,然后他們開始編寫微架構(gòu)測試,當他們在堆棧中走得更遠時,他們會提出一些問題,我們可以驗證核心與系統(tǒng)其余部分的關(guān)系嗎?我們可以在上面啟動操作系統(tǒng)嗎?它是否具有必要的性能?他們能否分析設(shè)計以確保性能正確并啟動這些驗證活動以揭示驗證中的更多錯誤?當我們測試常規(guī) ASIC 或常規(guī)核心時,你可以運行所有驗證活動,獲得非常好的覆蓋率,然后在最后進行驗證。通常不必返回驗證。有了這些處理器,你就可以做到。你必須始終通過該驗證堆棧來回移動。這真的會減慢你的速度,以及該架構(gòu)的整個驗證過程。黃金參考模型變得至關(guān)重要。Imperas 模型被許多人公認為最先進的行業(yè)標準模型。我們一直在使用這些模型。引入一個你可以依賴的真正可靠的核心參考模型正變得至關(guān)重要。你可以測試微架構(gòu),你可以針對該核心模型測試與系統(tǒng)其余部分的一些交互,并真正更清楚地了解實際處理器中發(fā)生的事情。

          Tran:對于 ,黃金參考模型的想法是否可行我有些懷疑。如果回到 Unix 出現(xiàn)的那一天,就會有少數(shù)供應(yīng)商擁有自己的實現(xiàn)。有 Solaris、SVR4、IBM 的 AIX 等等選擇。從所有這些不同的 Unix/Linux 實現(xiàn)中實現(xiàn)一個可以跨平臺運行的通用可執(zhí)行文件的想法是不可能的。每個供應(yīng)商都受到激勵來構(gòu)建增值和自定義擴展,這將使他們與其他供應(yīng)商脫穎而出。我們在這里看到了 RISC-V。與 x86 和 Arm 不同的是,大多數(shù)實現(xiàn)都在 Intel 或 Arm 的保護傘下,實際上有數(shù)百個不同的機構(gòu)和組織在構(gòu)建他們自己的 RISC-V 實現(xiàn)。當你談?wù)撌噶繑U展之類的東西時,在規(guī)范如此之大的情況下,許多實施者決定只實施該擴展的一個子集。你將如何創(chuàng)建一個通用的黃金參考模型來驗證針對這種實施方式的執(zhí)行情況?其次,當我們談?wù)搱?zhí)行的驗證和驗證時,你必須更深入地了解工具鏈和操作系統(tǒng)。以矢量擴展為例。我接觸過并與之合作的每個供應(yīng)商都有自己的編譯器,他們自己的 LLVM 實現(xiàn)來支持他們的矢量擴展。而且它們中沒有一個與其他的兼容。因此,你可以從供應(yīng)商 A 那里獲取 LLVM 編譯器,生成代碼,但對于供應(yīng)商 B 的實施來說,它的效率不會很高。

          Davidmann: 我顯然不同意這個評論。RISC-V 完全是一場噩夢,因為有太多選擇。這是兼容性和合規(guī)性的挑戰(zhàn)之一。有這么多配置選項,都是合法的,但最大的問題是,如何創(chuàng)建參考模型?但它比那更糟。每三個月,每個擴展都會有一個新版本。在我們的模擬器中,它是一個完整的參考。它對于任何獨立的子集都是完全可配置的,而且對于版本也是如此。我們有 11 個版本的向量,其中 4 個已經(jīng)進入硅片。我不認為這有什么問題,只要它的設(shè)計和架構(gòu)是正確的。RISC-V 提供了將事情做得更好的機會。我們不能接受只有一個 Arm 或一個 Intel 的舊方式。那是行不通的。如果舊世界是你可以有一個做一件事的參考模型,那么新世界是你有一個可以做 100 件事的參考模型。這就是我們要去的地方。否則,RISC-V 將永遠無法完成它的使命。我們必須解決這些問題。

          Hardee:我們知道處理器的實現(xiàn),細節(jié)決定成敗。我們當然同意你的看法,即 SystemVerilog,Verilog,在捕獲這些實現(xiàn)細節(jié)方面要好得多。但是你必須根據(jù)捕獲意圖的更高級別模型來驗證該實現(xiàn)。那不是一個單一的參考模型。它可以是很多,也可以是為我們正在談?wù)摰脑S多變體創(chuàng)建參考模型的標準化方法。

          Davidmann:五六年前,我是 RISC-V 國際組織的一員,該組織研究了形式化并最終選擇 SAIL 作為構(gòu)建黃金參考模型的語言。我們弄錯的是 SAIL 不是很容易配置。它非常適合一種架構(gòu)。對于 Arm,這太棒了。他們擁有從定義開始的整個流程,一直到構(gòu)造正確,一直到正式描述,這非常棒。RISC-V 的挑戰(zhàn)在于它在設(shè)計上具有無限的可配置性。因此,在 SAIL 中對其進行建模是一個真正的挑戰(zhàn)。這就是 Imperas 選擇動態(tài)模型的原因。

          Vittal:幾乎每家公司都在采用 RISC-V。甚至領(lǐng)先的半導(dǎo)體供應(yīng)商也在進行 RISC-V 設(shè)計,許多初創(chuàng)公司也是如此。但關(guān)鍵是能夠有一個成功的驗證計劃,你有非常高質(zhì)量的刺激來實現(xiàn)你的覆蓋目標。驗證和調(diào)試齊頭并進。硬件/軟件調(diào)試,逐步執(zhí)行代碼以同時查看問題?;氐郊軜?gòu)的靈活性,這帶來了挑戰(zhàn)——同時也為我們所有人帶來了機遇。正在開發(fā)創(chuàng)新的解決方案。RISC-V 供應(yīng)商和 EDA 工具公司以及其他 EDA 合作伙伴等之間正在進行大量協(xié)作。

          Kelf:有些公司已經(jīng)在一定程度上解決了這個問題。RISC-V 的無限可配置性,所有這些都是真的。但歸根結(jié)底,Arm 和 Intel 已經(jīng)解決了他們的可配置性稍差的處理器的驗證問題。他們有一個流程,或一系列復(fù)雜的流程,這些流程包括一系列不同的活動。Arm 使用很多正式工具,做很多不同的事情。一個好的起點可能是查看其中一些人在他們的流程中正在做什么,并嘗試將其中的一些自動化。你需要一些可以被所有試圖做 RISC-V 處理器并一起合作的人使用的東西——合作提出這些更通用的流程,看看我們是否可以標準化其中的一些東西。而不是在適當?shù)臉藴室饬x上,

          SE:你們提到我們確實需要新工具、新流程。如今缺少什么呢?我們?nèi)绾未_定某人需要提供的東西是什么?

          Kelf:有很多人在內(nèi)部做 RISC-V 處理器,他們正在重新開始。他們正在學(xué)習如何進行處理器驗證。像 Codasip 這樣的公司從 Arm 和 Intel 等公司引進了具有豐富經(jīng)驗和專業(yè)知識的人,他們確實知道該做什么。因此,我們看到其中一些公司現(xiàn)在正在生產(chǎn)流程,他們正在考慮諸如「處理器能否支持完全一致性?」之類的問題。它是否適用于系統(tǒng)的其余部分?RISC-V 內(nèi)部的安全指令,如 PMP(物理內(nèi)存保護)指令能否正確運行?

          Davidmann:當我們在五六年前開始使用 RISC-V 時,RISC-V 沒有什么特別的東西。我們有 Verilog 模擬器,你有一些正式的東西,你可以寫一些屬性。有 GCC,你可以運行它并調(diào)試它。就是這樣。我們在過去五年中看到的是,人們通過學(xué)習如何以專有方式驗證處理器而衍生出許多工具和技術(shù)。我們一直在努力讓它更加公開。我們一直在努力了解英特爾和 Arm 是如何做到的,以及所使用的技術(shù)類型。我們一直在 OpenHW 內(nèi)工作,我負責驗證任務(wù)。它是關(guān)于具有工業(yè)質(zhì)量的開源硅。這與使用開源工具無關(guān)。我們在過去幾年學(xué)到的是很多不同的技術(shù),很多不同的做事方式,我們已經(jīng)發(fā)展并構(gòu)建了像這個可配置的參考模型這樣的工具,比如為你做驗證的技術(shù),比如我們一直在發(fā)展的功能覆蓋,以試圖檢查 Linux 有多好運行。人們一直在構(gòu)建測試生成器。其他公司一直在構(gòu)建正式工具,例如西門子的 OneSpin Technologies,它們專注于 RISC-V。已經(jīng)有三四家其他公司參與了正式方面的工作。我們看到的是正在構(gòu)建一些特定的 RISC-V 技術(shù),正在構(gòu)建一些驗證 IP,越來越多的 EDA 供應(yīng)商正在學(xué)習人們需要的方法,并且他們正在構(gòu)建工具。但現(xiàn)在還為時尚早。我們距離真正使用 RISC-V 僅五年時間,并且可能需要幾年的時間才能進入商業(yè)領(lǐng)域。之前有五年的學(xué)術(shù)工作。像 Codasip 這樣的公司,以及硅 IP 的其他商業(yè)供應(yīng)商,確實在內(nèi)部發(fā)展和構(gòu)建技術(shù)以進行驗證。我們正在努力幫助將它們構(gòu)建為商業(yè)工具,一些 EDA 供應(yīng)商也是如此。我們正處于 RISC-V 驗證技術(shù)新時代的開端。

          Vittal:主流處理器開發(fā)人員知道他們在做什么。他們以前做過 x86 和 Arm。他們正在采用 RISC-V,而且他們確切地知道該做什么。他們還利用開源社區(qū)。對于主流,當你查看 RISC-V 時,它正在被主流設(shè)計師采用,這就是他們需要方法的地方,那也就是缺少的東西。Synopsys 提供驗證和驗證所需的一切,包括軟件和硬件。我們有 VIP,我們有正式的技術(shù),我們有數(shù)據(jù)路徑,但缺少的是一種方法論。并且該方法具有處理器驗證工程師和其他專家的專業(yè)知識。

          Eftimakis:這是 IP 供應(yīng)商的秘密武器。這就是我們內(nèi)部所做的。

          Davidmann:像 Imperas 這樣的公司正在努力使它更加公開。它以前可能是專有 IP。我們提供了一個關(guān)于 RISC-V 處理器驗證參考流程的 90 分鐘教程。它列出了你需要的所有不同部分,以及當今可用的技術(shù)和不可用的技術(shù)。我們談?wù)摶谏虡I(yè)技術(shù)的測試生成器。

          Vittal:我們有類似的東西,我們的客戶可以從使用開源核心的門戶網(wǎng)站下載。這可以帶你完成整個驗證過程。

          Beyer:添加新工具是關(guān)鍵,但我們需要高度可配置的 RISC-V 參考模型,并使其可用于工具和流程。然后我們可以圍繞它構(gòu)建一些東西,以便沒有深厚經(jīng)驗的人可以達到對 RISC-V 內(nèi)核擁有體面驗證經(jīng)驗的地步。

          Eftimakis:我們已經(jīng)將工具集成到我們的流程中,包括 Imperas 和 OneSpin。這是我們認為成為 RISC-V 一部分的好處,因為我們可以利用這些為生態(tài)系統(tǒng)構(gòu)建的工具,并將它們集成到我們的驗證流程中。我們可以將比較與模型、模擬、形式驗證、斷言等結(jié)合起來。這是我們從成為這個生態(tài)系統(tǒng)的一部分中獲得的好處。



          關(guān)鍵詞: RISC-V

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();