本技術(shù)涉及risc-v?soc領(lǐng)域,尤其是一種生成式risc-v?soc的軟硬件調(diào)試方法、系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、risc-v?soc(system?on?chip)指的是基于risc-v架構(gòu)的系統(tǒng)級(jí)芯片,risc-v是一種開放標(biāo)準(zhǔn)的指令集架構(gòu),它允許用戶根據(jù)需要自由定制處理器核心,從而創(chuàng)造出適應(yīng)各種應(yīng)用的soc。軟件調(diào)試是軟件開發(fā)過程中的一個(gè)關(guān)鍵環(huán)節(jié),泛指重現(xiàn)軟件缺陷問題、定位和查找問題根源、最終解決問題的過程。硬件調(diào)試則是指通過硬件測(cè)試設(shè)備和工具,對(duì)硬件系統(tǒng)進(jìn)行測(cè)試和調(diào)試的過程。
2、傳統(tǒng)數(shù)字電路設(shè)計(jì)方法基于verilog、system?verilog和vhdl等,能夠?qū)﹄娐沸袨榫_描述,但這些語(yǔ)言參數(shù)化能力有限,難以處理復(fù)雜的參數(shù)化設(shè)計(jì),更加注重靜態(tài)硬件描述,對(duì)于目前生成可變結(jié)構(gòu)的硬件設(shè)計(jì)會(huì)造成不便。
技術(shù)實(shí)現(xiàn)思路
1、為了更好地生成自定義risc-v?soc并進(jìn)行軟硬件調(diào)試,本技術(shù)提供生成式risc-vsoc的軟硬件調(diào)試方法、系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì)。
2、第一方面,本技術(shù)提供一種生成式risc-v?soc的軟硬件調(diào)試方法,采用如下的技術(shù)方案:所述方法包括:
3、使用chisel構(gòu)建risc-v?soc生成器,所述risc-v?soc生成器包括參數(shù)化的模版文件;
4、接收自定義參數(shù)更改信息,根據(jù)所述自定義參數(shù)更改信息更改所述模版文件得到risc-v?soc生成文件;
5、通過編譯工具編譯所述risc-v?soc生成文件,生成risc-v?soc的verilog?rtl代碼;
6、當(dāng)接收到軟件仿真的指令時(shí),利用所述verilog?rtl代碼搭建軟件仿真環(huán)境,根據(jù)所述軟件仿真環(huán)境創(chuàng)建仿真頂層文件并進(jìn)行軟件仿真;
7、當(dāng)接收到fpga原型驗(yàn)證的指令時(shí),利用所述verilog?rtl代碼搭fpga原型驗(yàn)證環(huán)境,根據(jù)所述fpga原型驗(yàn)證環(huán)境創(chuàng)建頂層文件并進(jìn)行fpga原型驗(yàn)證。
8、通過上述技術(shù)方案,通過chisel語(yǔ)言構(gòu)建risc-v?soc生成器生成risc-v?soc,chisel具有更好的重用和模塊化特性,有著強(qiáng)大的參數(shù)化功能,可以修改參數(shù)生成自定義risc-v?soc,提高了設(shè)計(jì)的靈活性和效率,經(jīng)過軟硬件調(diào)試可以得到能夠滿足用戶設(shè)計(jì)需求的risc-v?soc。
9、在一個(gè)具體的可實(shí)施方案中,所述根據(jù)所述軟件仿真環(huán)境創(chuàng)建仿真頂層文件并進(jìn)行軟件仿真包括:
10、根據(jù)所述軟件仿真環(huán)境創(chuàng)建仿真頂層文件;
11、調(diào)用仿真模型ip,所述仿真模型ip包括仿真ip?verilog定義文件;
12、根據(jù)所述仿真頂層文件和所述仿真ip?verilog定義文件得到所需文件列表--filelist文件;
13、調(diào)取仿真用例,根據(jù)所述仿真用例配置仿真參數(shù)調(diào)用所述filelist文件生成可執(zhí)行仿真文件;
14、將可執(zhí)行仿真文件導(dǎo)入所述軟件仿真環(huán)境,根據(jù)所述仿真參數(shù)進(jìn)行仿真得到仿真結(jié)果。
15、通過上述技術(shù)方案,自動(dòng)生成軟件仿真環(huán)境,該環(huán)境提供了仿真模型,用戶無(wú)需設(shè)計(jì)仿真需要的模型,同時(shí)提供多種測(cè)試用例,能夠進(jìn)行完整的isa指令集仿真和c程序仿真如內(nèi)核跑分程序等,且進(jìn)行仿真的整個(gè)過程高度自動(dòng)化,僅需使用簡(jiǎn)單的腳本命令即可調(diào)用不同案例完成仿真,仿真效率得到提高。
16、在一個(gè)具體的可實(shí)施方案中,所述根據(jù)所述fpga原型驗(yàn)證環(huán)境創(chuàng)建頂層文件并進(jìn)行fpga原型驗(yàn)證包括:
17、根據(jù)所述fpga原型驗(yàn)證環(huán)境創(chuàng)建頂層文件;
18、獲取xilinx?ip的ip配置文件和用于驗(yàn)證的fpga原型驗(yàn)證板型號(hào);
19、根據(jù)所述頂層文件、所述verilog?rtl代碼和所述ip配置文件創(chuàng)建符合所述fpga原型驗(yàn)證板型號(hào)的fpga工程;
20、通過所述編譯工具生成所述risc-v?soc能夠執(zhí)行的可執(zhí)行文件;
21、通過所述編譯工具編譯所述fpga工程生成運(yùn)行于fpga原型驗(yàn)證平臺(tái)的比特流文件;
22、將所述比特流文件下載到對(duì)應(yīng)的fpga上;
23、在所述fpga上運(yùn)行所述可執(zhí)行文件得到調(diào)試結(jié)果。
24、通過上述技術(shù)方案,自動(dòng)生成fpga原型驗(yàn)證環(huán)境,可使用已完成定義的幾種fpga原型驗(yàn)證板使用全自動(dòng)腳本創(chuàng)建原型驗(yàn)證工程,支持按照用戶的fpga原型驗(yàn)證板對(duì)工程配置文件進(jìn)行定義和修改,完成后可一鍵生成適用于用戶fpga原型驗(yàn)證板的工程。
25、在一個(gè)具體的可實(shí)施方案中,所述將所述比特流文件下載到對(duì)應(yīng)的fpga上包括:
26、獲取fpga工程中的管腳綁定信息;
27、根據(jù)所述管腳綁定信息生成所述fpga的約束文件,所述約束文件說(shuō)明了所述比特流文件和所述fpga之間的映射關(guān)系;
28、根據(jù)所述映射關(guān)系將所述比特流文件下載到所述fpga上。
29、通過上述技術(shù)方案,在fpga工程環(huán)境下得到fpga的約束文件,進(jìn)而編譯得到能夠運(yùn)行于指定fpga的比特流文件,使得risc-v?soc芯片的功能和性能能夠在fpga原型環(huán)境下得到充分驗(yàn)證。
30、在一個(gè)具體的可實(shí)施方案中,所述在所述fpga上運(yùn)行所述可執(zhí)行文件得到調(diào)試結(jié)果包括:
31、利用risc-v?isa仿真器對(duì)所述可執(zhí)行文件進(jìn)行仿真驗(yàn)證,驗(yàn)證所述可執(zhí)行文件是否可以正常運(yùn)行;
32、若所述可執(zhí)行文件可以正常運(yùn)行,則在所述fpga上運(yùn)行所述可執(zhí)行文件得到調(diào)試結(jié)果。
33、通過上述技術(shù)方案,對(duì)可執(zhí)行文件進(jìn)行仿真驗(yàn)證,既能幫助fpga原型驗(yàn)證正常運(yùn)行,也能在fpga原型驗(yàn)證出錯(cuò)時(shí),排除可執(zhí)行文件的問題,對(duì)運(yùn)行于fpga內(nèi)部的硬件電路做針對(duì)性檢查。
34、在一個(gè)具體的可實(shí)施方案中,所述通過所述編譯工具編譯所述fpga工程生成運(yùn)行于fpga原型驗(yàn)證平臺(tái)的比特流文件包括:
35、判斷所述risc-v?soc規(guī)模是否超過單片fpga容量;
36、若所述risc-v?soc規(guī)模沒有超過單片fpga容量,則通過所述編譯工具編譯所述fpga工程生成運(yùn)行于fpga原型驗(yàn)證平臺(tái)的比特流文件;
37、若所述risc-v?soc規(guī)模超過單片fpga容量,則所述編譯工具編譯所述fpga工程得到網(wǎng)表文件;
38、分割所述網(wǎng)表文件得到若干分割網(wǎng)表,編譯若干所述分割網(wǎng)表得到若干比特流文件;
39、將若干所述比特流文件使用下載工具下載到若干對(duì)應(yīng)的fpga上;
40、在若干所述fpga上運(yùn)行所述比特流文件和所述可執(zhí)行文件得到調(diào)試結(jié)果。
41、通過上述技術(shù)方案,所需的fpga資源超過單片時(shí),通過分割網(wǎng)表文件將fpga資源分割到多片fpga上進(jìn)行調(diào)試,實(shí)現(xiàn)復(fù)雜risc-v?soc的硬件調(diào)試。
42、在一個(gè)具體的可實(shí)施方案中,在所述使用chisel構(gòu)建risc-v?soc生成器之后,還包括:
43、根據(jù)risc-v?soc的risc-v指令和特殊算法調(diào)用所述risc-v?soc生成器中對(duì)應(yīng)的加速器;
44、將所述加速器耦合到所述risc-v?soc的risc-v處理器上。
45、通過上述技術(shù)方案,在risc-v處理器上耦合加速器,形成可對(duì)特殊指令加速的協(xié)處理器,使得生成復(fù)雜的risc-v?soc時(shí)效率提高,耗時(shí)減少。
46、第二方面,本技術(shù)提供一種生成式risc-v?soc的軟硬件調(diào)試系統(tǒng),采用如下技術(shù)方案:所述系統(tǒng)包括:
47、生成器構(gòu)建模塊,用于使用chisel構(gòu)建risc-v?soc生成器,所述risc-v?soc生成器包括參數(shù)化的模版文件;
48、自定義risc-v?soc模塊,用于接收自定義參數(shù)更改信息,根據(jù)所述自定義參數(shù)更改信息更改所述模版文件得到risc-v?soc生成文件;
49、risc-v?soc生成模塊,用于通過編譯工具編譯所述risc-v?soc生成文件,生成risc-v?soc的verilog?rtl代碼;
50、軟件仿真模塊,用于當(dāng)接收到軟件仿真的指令時(shí),利用所述verilog?rtl代碼搭建軟件仿真環(huán)境,根據(jù)所述軟件仿真環(huán)境創(chuàng)建仿真頂層文件并進(jìn)行軟件仿真;
51、fpga原型驗(yàn)證模塊,用于當(dāng)接收到fpga原型驗(yàn)證的指令時(shí),利用所述verilog?rtl代碼搭建fpga原型驗(yàn)證環(huán)境,根據(jù)所述fpga原型驗(yàn)證環(huán)境創(chuàng)建頂層文件并進(jìn)行fpga原型驗(yàn)證。
52、第三方面,本技術(shù)提供一種計(jì)算機(jī)設(shè)備,采用如下技術(shù)方案:包括存儲(chǔ)器和處理器,存儲(chǔ)器上存儲(chǔ)有能夠被處理器加載并執(zhí)行如上述生成式risc-v?soc的軟硬件調(diào)試方法的計(jì)算機(jī)程序。
53、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),采用如下技術(shù)方案:存儲(chǔ)有能夠被處理器加載并執(zhí)行上述生成式risc-v?soc的軟硬件調(diào)試方法的計(jì)算機(jī)程序。
54、綜上所述,本技術(shù)具有以下有益技術(shù)效果:
55、(1)本技術(shù)通過chisel構(gòu)建risc-v?soc生成器生成risc-v?soc,chisel具有更好的重用和模塊化特性,有著強(qiáng)大的參數(shù)化功能,利用已完成定義的生成器框架,用戶僅需改動(dòng)簡(jiǎn)單參數(shù)即可生成自定義的risc-v?soc包括多核soc或異構(gòu)soc,提高了設(shè)計(jì)的靈活性和效率,經(jīng)過軟硬件調(diào)試可以得到能夠滿足用戶設(shè)計(jì)需求的risc-v?soc。
56、(2)本技術(shù)可以自動(dòng)生成軟件仿真環(huán)境,該環(huán)境提供了仿真模型,用戶無(wú)需設(shè)計(jì)仿真需要的模型;提供多種測(cè)試用例,能夠進(jìn)行完整的isa指令集仿真和c程序仿真如內(nèi)核跑分測(cè)試等,且進(jìn)行仿真的整個(gè)過程高度自動(dòng)化,僅需使用簡(jiǎn)單的腳本命令即可調(diào)用不同案例完成仿真,對(duì)用戶友好。
57、(3)本技術(shù)可自動(dòng)生成fpga原型驗(yàn)證環(huán)境,可使用已完成定義的幾種fpga原型驗(yàn)證板使用全自動(dòng)腳本創(chuàng)建原型驗(yàn)證工程,支持按照用戶的fpga原型驗(yàn)證板對(duì)工程配置文件進(jìn)行定義和修改,完成后可一鍵生成適用于用戶fpga原型驗(yàn)證板的工程。
58、(4)本技術(shù)提供加速器模塊,用戶可利用其加速處理特殊任務(wù),同時(shí)提供加速器設(shè)計(jì)的模板,開發(fā)加速器及測(cè)試軟件,加速器可作為risc-v處理器的協(xié)處理器使用。