本說明書涉及電子設(shè)計(jì)自動化領(lǐng)域,更具體地說,本技術(shù)涉及一種原型驗(yàn)證方法及相關(guān)設(shè)備。
背景技術(shù):
1、隨著處理器設(shè)計(jì)復(fù)雜性的增加,尤其是在risc-v架構(gòu)(reducedinstructionsetcomputer-v,精簡指令集計(jì)算-v架構(gòu))的處理器中,驗(yàn)證處理器的功能、性能和可行性顯得至關(guān)重要。risc-v作為一種開放指令集架構(gòu)(instructionsetarchitecture,isa),在處理器設(shè)計(jì)中提供了高靈活性,但也帶來了驗(yàn)證難度的提升。處理器的原型驗(yàn)證過程包括了硬件和軟件的交互測試,這一過程涉及從指令集架構(gòu)驗(yàn)證到硬件實(shí)現(xiàn)及軟件生態(tài)系統(tǒng)的全面評估?,F(xiàn)有技術(shù)方案大多集中在單一的驗(yàn)證層面,缺乏一套系統(tǒng)性的通用驗(yàn)證流程。
2、因此,有必要提出一種原型驗(yàn)證方法和相關(guān)設(shè)備裝置,以至少解決上述部分問題。
技術(shù)實(shí)現(xiàn)思路
1、在
技術(shù)實(shí)現(xiàn)要素:
部分中引入了一系列簡化形式的概念,這將在具體實(shí)施方式部分中進(jìn)一步詳細(xì)說明。本技術(shù)的發(fā)明內(nèi)容部分并不意味著要試圖限定出所要求保護(hù)的技術(shù)方案的關(guān)鍵特征和必要技術(shù)特征,更不意味著試圖確定所要求保護(hù)的技術(shù)方案的保護(hù)范圍。
2、第一方面,本技術(shù)提出一種原型驗(yàn)證方法,包括:
3、通過目標(biāo)硬件描述語言設(shè)計(jì)risc-v處理器核心,其中,上述risc-v處理器核心包括指令解碼單元、寄存器文件單元、算數(shù)邏輯及數(shù)據(jù)通路單元和外設(shè)模塊集成單元;
4、基于上述risc-v處理器核心進(jìn)行測試和驗(yàn)證,以獲取初步測試結(jié)果和仿真驗(yàn)證結(jié)果;
5、在上述初步測試結(jié)果和上述仿真驗(yàn)證結(jié)果均滿足預(yù)設(shè)要求的情況下,制作上述目標(biāo)硬件描述語言對應(yīng)的目標(biāo)系統(tǒng)鏡像文件;
6、基于上述目標(biāo)系統(tǒng)鏡像文件在fpga上進(jìn)行上板驗(yàn)證與性能測試操作并驗(yàn)證上述risc-v處理器核心,以獲取原型驗(yàn)證報(bào)告。
7、在一種可行的實(shí)施方式中,上述基于上述risc-v處理器核心進(jìn)行測試和驗(yàn)證,以獲取初步測試結(jié)果和仿真驗(yàn)證結(jié)果,包括:
8、基于激勵程序調(diào)用上述risc-v處理器核心進(jìn)行初步測試,以獲取初步測試結(jié)果,其中,上述激勵程序用于驗(yàn)證上述risc-v處理器核心在加載、解碼、執(zhí)行基本指令時(shí)的正確性;
9、基于集成仿真工具對上述risc-v處理器核心進(jìn)行功能驗(yàn)證和時(shí)序驗(yàn)證操作,以獲取仿真驗(yàn)證結(jié)果,其中,上述仿真工具用于驗(yàn)證處理器核心的正確性,并通過時(shí)序模擬評估設(shè)計(jì)的性能。
10、在一種可行的實(shí)施方式中,上述初步測試結(jié)果評分包括初步測試評分,上述初步測試評分基于下式計(jì)算:
11、
12、其中,為指令執(zhí)行正確率,為寄存器一致性率,為平均執(zhí)行延遲和是上述指令執(zhí)行正確率、上述寄存器一致性率和上述平均執(zhí)行延遲對應(yīng)的權(quán)重系數(shù),;
13、上述指令執(zhí)行正確率基于下式確定:
14、
15、其中,為測試指令的總數(shù),為指令的權(quán)重,為指令的執(zhí)行結(jié)果正確性,若指令正確執(zhí)行則為1,否則為0;
16、上述寄存器值一致性率基于下式確定:
17、
18、其中,為測試指令的總數(shù),q=p,為寄存器的總數(shù)量,為指令后寄存器的預(yù)期值,為寄存器一致性檢查的權(quán)重因子,為一個(gè)小常數(shù),用于避免除零錯(cuò)誤;
19、平均執(zhí)行延遲基于下式確定:
20、
21、其中,為上述測試指令的總數(shù),為指令開始執(zhí)行的時(shí)間,為指令完成執(zhí)行的時(shí)間戳,為指令的延遲權(quán)重。
22、在一種可行的實(shí)施方式中,上述仿真驗(yàn)證結(jié)果包括仿真圖像和仿真驗(yàn)證評分,上述仿真驗(yàn)證評分f2基于下式計(jì)算:
23、
24、其中,為功能正確性誤差,為時(shí)序誤差,為能量消耗偏差,為緩存利用效率,分別上述為功能正確性誤差、上述時(shí)序誤差、上述能量消耗偏差和上述緩存利用效率對應(yīng)的權(quán)重系;
25、上述功能正確性誤差基于下式確定:
26、
27、其中,為測試的總指令數(shù),為指令的權(quán)重,為指令的實(shí)際執(zhí)行結(jié)果,為指令的預(yù)期執(zhí)行結(jié)果;
28、上述時(shí)序誤差評分基于下式確定:
29、
30、其中,為上述測試的總指令數(shù),為指令的實(shí)際完成時(shí)間,為指令的預(yù)期完成時(shí)間,為時(shí)序偏差的標(biāo)準(zhǔn)差;
31、上述能量消耗偏差評分基于下式確定:
32、
33、其中,為上述測試的總指令數(shù),為指令的實(shí)際能量消耗,為指令的預(yù)期能量消耗,為指令的權(quán)重;
34、上述緩存利用效率評分基于下式確定:
35、
36、其中,為緩存訪問總次數(shù),為第次緩存訪問是否命中,命中為1,未命中為0,為第次緩存訪問的權(quán)重,為緩存層數(shù)的權(quán)重。
37、在一種可行的實(shí)施方式中,上述指令解碼單元用于從指令存儲器中取出指令,并將其解碼為控制信號和操作數(shù)信息;和/或,
38、上述寄存器文件單元包含risc-v處理器中的所有通用寄存器和特殊寄存器;和/或,
39、上述算數(shù)邏輯及數(shù)據(jù)通路單元包括算數(shù)邏輯單元和數(shù)據(jù)通路,上述算數(shù)邏輯單元用于處理算數(shù)和邏輯操作,上述數(shù)據(jù)通路用于傳輸數(shù)據(jù);和/或,
40、上述外設(shè)模塊集成單元包括內(nèi)存控制器、緩存層、總線接口和外部設(shè)備接口;和/或,
41、上述目標(biāo)系統(tǒng)鏡像文件包括linux內(nèi)核、文件系統(tǒng)和代理內(nèi)核。
42、在一種可行的實(shí)施方式中,還包括:
43、獲取原型驗(yàn)證的驗(yàn)證目標(biāo);
44、基于上述驗(yàn)證目標(biāo)確定上述目標(biāo)硬件描述語言。
45、在一種可行的實(shí)施方式中,還包括:
46、獲取原型驗(yàn)證的驗(yàn)證目的;
47、基于上述驗(yàn)證目的確定risc-v處理器的芯片類型。
48、第二方面、本技術(shù)提出一種原型驗(yàn)證裝置,包括:
49、設(shè)計(jì)單元,用于通過目標(biāo)硬件描述語言設(shè)計(jì)risc-v處理器核心,其中,所述risc-v處理器核心包括指令解碼單元、寄存器文件單元、算數(shù)邏輯及數(shù)據(jù)通路單元和外設(shè)模塊集成單元;
50、測試單元,用于基于所述risc-v處理器核心進(jìn)行測試和驗(yàn)證,以獲取初步測試結(jié)果和仿真驗(yàn)證結(jié)果;
51、鏡像制作單元,用于在所述初步測試結(jié)果和所述仿真驗(yàn)證結(jié)果均滿足預(yù)設(shè)要求的情況下,制作所述目標(biāo)硬件描述語言對應(yīng)的目標(biāo)系統(tǒng)鏡像文件;
52、驗(yàn)證單元,用于基于所述目標(biāo)系統(tǒng)鏡像文件在fpga上進(jìn)行上板驗(yàn)證與性能測試操作并驗(yàn)證所述risc-v處理器核心,以獲取原型驗(yàn)證報(bào)告。
53、第三方面,一種電子設(shè)備,包括:存儲器、處理器以及存儲在上述存儲器中并可在上述處理器上運(yùn)行的計(jì)算機(jī)程序,上述處理器用于執(zhí)行存儲器中存儲的計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上述的第一方面任一項(xiàng)的原型驗(yàn)證方法的步驟。
54、第四方面,本技術(shù)還提出一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,上述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面任一項(xiàng)的原型驗(yàn)證方法。
55、綜上,本技術(shù)支持各種fpga硬件平臺(如xilinx、altera等),通過模塊化設(shè)計(jì)和標(biāo)準(zhǔn)化接口協(xié)議(如axi、wishbone),使得處理器設(shè)計(jì)的各個(gè)部分(如指令解碼器、寄存器組、算術(shù)邏輯單元等)能夠獨(dú)立配置和移植。工程師可以根據(jù)所選fpga平臺的資源和性能特點(diǎn)靈活重組這些模塊,從而高效地完成跨平臺的驗(yàn)證任務(wù)。該方法極大地提升了處理器設(shè)計(jì)在不同fpga平臺上的可移植性和兼容性。本技術(shù)支持risc-v指令集架構(gòu)的多種擴(kuò)展,從基礎(chǔ)的rv32i(32位整數(shù)指令集)、rv64i(64位整數(shù)指令集)到更高級的擴(kuò)展(如浮點(diǎn)運(yùn)算rv32f/rv64f、向量處理rvv、壓縮指令rvc等)。這種支持讓工程師能夠根據(jù)不同應(yīng)用場景的需求,在驗(yàn)證過程中靈活選擇和配置指令集,有助于適配從通用計(jì)算到高性能計(jì)算等廣泛的應(yīng)用場景,提升了驗(yàn)證方法的適用性和擴(kuò)展性。本技術(shù)提供了全面的處理器核心功能驗(yàn)證框架。通過編寫多種測試程序并覆蓋不同指令和功能,工程師可以確保處理器核心在各種操作條件下的正確性。該方法不僅關(guān)注單個(gè)指令的執(zhí)行正確性,還涵蓋了復(fù)雜指令組合、寄存器操作和數(shù)據(jù)路徑等多方面,確保處理器在復(fù)雜場景下的可靠運(yùn)行,顯著提高了驗(yàn)證的全面性和準(zhǔn)確性。本方法允許在fpga硬件平臺上進(jìn)行性能評估和優(yōu)化,工程師可以設(shè)計(jì)性能測試程序并收集關(guān)于時(shí)鐘頻率、吞吐量、延遲等關(guān)鍵性能指標(biāo)的數(shù)據(jù),從而對處理器設(shè)計(jì)進(jìn)行改進(jìn)。這種方法使得性能測試和設(shè)計(jì)優(yōu)化能夠在硬件原型階段完成,有助于提前發(fā)現(xiàn)并解決性能瓶頸,提升處理器設(shè)計(jì)的效率和性能。