本發(fā)明屬于fpga原型驗證,特別涉及一種基于fpga的soc原型自動回歸驗證方法及其系統(tǒng)。
背景技術(shù):
1、隨著soc芯片規(guī)模越來越大,為了保證芯片的質(zhì)量,縮短軟件硬件開發(fā)周期,基于fpga的原型驗證被廣泛應(yīng)用。soc芯片在設(shè)計與驗證過程中,在驗證環(huán)節(jié)發(fā)現(xiàn)問題后,需要進(jìn)行設(shè)計修改,為了保證soc芯片質(zhì)量,減小流片的失敗率,在進(jìn)行設(shè)計修改后不能只驗證修改的功能,必須對所有功能進(jìn)行回歸驗證。因此,如何減少回歸驗證的時間,成為縮短soc芯片開發(fā)周期的關(guān)鍵點。
2、在傳統(tǒng)基于fpga的soc原型驗證過程中,驗證人員一般使用集成開發(fā)環(huán)境ide,編寫系統(tǒng)功能的驗證程序,下載到soc系統(tǒng)中,調(diào)試運行程序,觀察功能是否正確。對于輸出功能,例如pwm模塊輸出,一般需要外接示波器,肉眼觀察波形是否正確;對于輸入捕獲功能,例如cap模塊捕獲,一般需要外接信號發(fā)生器提供信號激勵。每次進(jìn)行回歸驗證過程中,以上操作都要重復(fù)一次,耗費大量的時間與精力。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于克服現(xiàn)有技術(shù)的上述不足,本發(fā)明提供一種基于fpga的soc原型自動回歸驗證方法及其系統(tǒng),可以避免回歸驗證過程中已驗證正確功能的重復(fù)操作,提高驗證效率,減少驗證時間。
2、為解決上述技術(shù)問題,本發(fā)明提供了一種基于fpga的soc原型自動回歸驗證方法,包括如下步驟:
3、步驟一:使用傳統(tǒng)方法進(jìn)行第一次驗證,將驗證通過的程序和波形數(shù)據(jù)保存到emmc存儲芯片;
4、步驟二:在回歸驗證過程中,從emmc存儲芯片中讀取驗證程序和波形數(shù)據(jù),將驗證程序自動下載到soc系統(tǒng)運行,利用波形數(shù)據(jù)進(jìn)行功能驗證,所有功能運行結(jié)束后,將結(jié)果上傳至pc電腦端;
5、還包括:
6、將soc原型驗證按照是否需要外部提供輸入激勵或者對外輸出波形的特點劃分為如下三類soc功能:
7、類型ⅰ的功能,驗證此功能,不需要外部提供輸入激勵,也不對外輸出波形;對于類型ⅰ的功能回歸驗證,驗證程序運行后,驗證程序自行判斷功能是否正確,并在判斷結(jié)束后通過通知信號引腳向控制系統(tǒng)通知讀取驗證結(jié)果;控制系統(tǒng)在讀取到通知信號后,通過讀取結(jié)果反饋信號獲取驗證結(jié)果,將驗證結(jié)果保存到信息存儲表后,進(jìn)行下一項功能的回歸測試;
8、類型ⅱ的功能,驗證此功能,對外輸出波形,需要驗證波形是否正確;對于類型ⅱ的功能回歸驗證,驗證程序運行后輸出波形,通過通知信號引腳向互聯(lián)系統(tǒng)和控制系統(tǒng)通知soc系統(tǒng)開始輸出波形;互聯(lián)系統(tǒng)通過內(nèi)部采樣fifo對輸入波形進(jìn)行采樣并記錄波形數(shù)據(jù);控制系統(tǒng)將互聯(lián)系統(tǒng)內(nèi)部采樣fifo中波形數(shù)據(jù)和emmc存儲芯片中保存的波形數(shù)據(jù)進(jìn)行比較,如果相同則驗證正確,如果波形數(shù)據(jù)不同則驗證錯誤,將驗證結(jié)果保存到信息存儲表后,進(jìn)行下一項功能的回歸測試;
9、類型ⅲ的功能,驗證此功能,需要外部提供輸入激勵;對于類型ⅲ的功能回歸驗證,驗證程序運行后,通過通知信號引腳向互聯(lián)系統(tǒng)和控制系統(tǒng)通知soc系統(tǒng)開始捕獲波形;控制系統(tǒng)從emmc存儲芯片中讀取波形數(shù)據(jù),傳輸?shù)交ヂ?lián)系統(tǒng)內(nèi)部的波形輸出fifo中,互聯(lián)系統(tǒng)產(chǎn)生soc系統(tǒng)需要的外部激勵信號,驗證程序捕獲外部輸入激勵并判斷是否正確;然后通過通知信號引腳向控制系統(tǒng)通知讀取運行結(jié)果,控制系統(tǒng)在讀取到通知信號后,讀取結(jié)果反饋信號,將結(jié)果保存到信息存儲表后,進(jìn)行下一項功能的回歸測試。
10、優(yōu)選的,在所述回歸驗證過程中,還包括:控制系統(tǒng)根據(jù)信息存儲表從emmc存儲芯片中讀取驗證程序流文件(.bit文件),并使用通用io口模擬jtag協(xié)議,將驗證程序流文件下載到soc系統(tǒng)中運行。
11、優(yōu)選的,對于所有soc功能,在第一次驗證過程中,均使用集成開發(fā)環(huán)境,編寫對應(yīng)功能的驗證程序,下載到soc系統(tǒng)中,調(diào)試運行程序;所有驗證程序除了實現(xiàn)特定功能外,還需要額外提供一個引腳作為通知信號,提供一個引腳作為結(jié)果信號。
12、優(yōu)選的,對于所述類型ⅰ的功能,在第一次驗證并確認(rèn)正確后,控制系統(tǒng)將驗證程序流文件(.bit文件)保存到emmc存儲芯片中;
13、對于所述類型ⅱ的功能,在第一次驗證時,驗證程序運行后輸出波形,互聯(lián)系統(tǒng)通過內(nèi)部采樣fifo對soc系統(tǒng)的輸出波形進(jìn)行采樣并記錄波形數(shù)據(jù);同時通過示波器等外部儀器觀察輸出波形是否正確,如果輸出波形正確,則控制系統(tǒng)將互聯(lián)系統(tǒng)中采集的波形數(shù)據(jù)和驗證程序流文件(.bit文件)保存到emmc存儲芯片中;如果輸出波形錯誤,則表明此soc功能存在問題,需要修改soc芯片設(shè)計后重復(fù)此操作;
14、對于類型ⅲ的功能,在第一次驗證時,使用信號發(fā)生器等外部儀器提供輸入波形激勵,互聯(lián)系統(tǒng)通過內(nèi)部采樣fifo對輸入波形進(jìn)行采樣并記錄波形數(shù)據(jù),如果soc系統(tǒng)中捕獲模塊捕獲外部輸入激勵的功能正確,則控制系統(tǒng)將互聯(lián)系統(tǒng)中采集的波形數(shù)據(jù)和驗證程序流文件(.bit文件)保存到emmc存儲芯片中;如果捕獲功能錯誤,則表明此soc功能存在問題,需要修改soc芯片設(shè)計后重復(fù)此操作;
15、優(yōu)選的,對于所述類型ⅰ、類型ⅱ和類型ⅲ的功能驗證,每次將驗證程序與波形數(shù)據(jù)保存到emmc存儲芯片中時,需要按照信息存儲表將信息更新到控制系統(tǒng)程序中。
16、優(yōu)選的,所述信息存儲表中包括:功能名稱、功能編碼、類型編碼、程序地址、數(shù)據(jù)地址和結(jié)果;所述功能名稱使用ascii碼,所述功能編碼從數(shù)值0開始,依次遞增加1,用于實現(xiàn)soc系統(tǒng)引腳與互聯(lián)系統(tǒng)中fifo信號引腳的靈活連接,所述程序地址和數(shù)據(jù)地址均為在emmc存儲芯片中的保存地址,所述結(jié)果成功為1和失敗為0。
17、本發(fā)明還提供了一種基于fpga的soc原型自動回歸驗證系統(tǒng),采用如上述所述的一種基于fpga的soc原型自動回歸驗證方法,包括:
18、soc系統(tǒng),用于運行基于fpga的soc芯片網(wǎng)表;
19、互聯(lián)系統(tǒng),通過采用fpga實現(xiàn)soc系統(tǒng)和控制系統(tǒng)信號連接,在第一次傳統(tǒng)驗證過程中,負(fù)責(zé)外部輸入激勵波形的波形數(shù)據(jù)采集和soc系統(tǒng)輸出波形的波形數(shù)據(jù)采集;在回歸驗證過程中,負(fù)責(zé)向soc系統(tǒng)輸出波形或者從soc系統(tǒng)采集波形;
20、控制系統(tǒng),在第一次傳統(tǒng)驗證過程中,將驗證程序和正確的波形數(shù)據(jù)保存到emmc存儲芯片中;在回歸驗證過程中,從emmc存儲芯片中讀取驗證程序和波形數(shù)據(jù),將驗證程序自動下載到soc系統(tǒng)運行,所有功能運行結(jié)束后,將結(jié)果上傳至pc電腦端;
21、emmc存儲芯片,用于存儲驗證程序和波形數(shù)據(jù);
22、pc電腦端,用于接收回歸驗證結(jié)果。
23、優(yōu)選的,所述互聯(lián)系統(tǒng)內(nèi)部還包括:
24、一個波形采集fifo,用于記錄輸入波形的采樣信息;在互聯(lián)系統(tǒng)程序中,外部信號輸入引腳連接波形采集fifo的寫入引腳,當(dāng)開啟波形采樣時,一個計時器按照設(shè)定的頻率遞增計數(shù),每當(dāng)外部信號出入引腳發(fā)生變化時,將此時的所有外部波形引腳電平的組合邏輯值與計時器的值保存到波形采集fifo中,重復(fù)此操作直至所有波形采集結(jié)束;之后,控制系統(tǒng)根據(jù)需求讀取波形采集fifo波形數(shù)據(jù);由于soc系統(tǒng)的輸出模塊存在多個,為了實現(xiàn)所有輸出模塊的波形信號都可以和互聯(lián)系統(tǒng)采集fifo的寫入信號連接,同時又不增加采集fifo的數(shù)量,簡化互聯(lián)系統(tǒng)軟件設(shè)計,互聯(lián)系統(tǒng)軟件設(shè)計中使用功能編碼切換波形采集fifo的寫入信號與soc系統(tǒng)中多個輸出模塊的輸出信號的連接,所述功能編碼由控制系統(tǒng)從信息存儲表中讀取,通過引腳傳輸?shù)交ヂ?lián)系統(tǒng)中;
25、一個波形輸出fifo,用于接收控制系統(tǒng)發(fā)送的波形數(shù)據(jù),然后產(chǎn)生波形輸出到引腳,在互聯(lián)系統(tǒng)程序中,波形輸出fifo的輸出引腳連接soc系統(tǒng)的捕獲引腳;一個計時器按照設(shè)定的頻率遞增計數(shù),波形輸出fifo的輸出引腳根據(jù)波形數(shù)據(jù)里的組合邏輯值輸出邏輯電平,產(chǎn)生波形信號;每當(dāng)計時器的值與波形輸出fifo中保存的波形數(shù)據(jù)里的時間值相同時,讀取下一組波形數(shù)據(jù),更新時間比較值和波形輸出信號,重復(fù)此操作直至所有波形輸出結(jié)束;由于soc系統(tǒng)的輸入模塊存在多個,為了實現(xiàn)所有輸入模塊捕獲信號都可以和波形輸出fifo的輸出信號連接,同時又不增加波形輸出fifo的數(shù)量,簡化互聯(lián)系統(tǒng)軟件設(shè)計,在互聯(lián)系統(tǒng)軟件設(shè)計中使用功能編碼切換波形輸出fifo的輸出信號與soc系統(tǒng)中多個輸入模塊的捕獲信號的連接,所述功能編碼由控制系統(tǒng)從信息存儲表中讀取,通過引腳傳輸?shù)交ヂ?lián)系統(tǒng)中。
26、優(yōu)選的,所述互聯(lián)系統(tǒng)實現(xiàn)soc系統(tǒng)和控制系統(tǒng)之間信號連接透傳時,還包括:驗證程序下載信號引腳、通知信號引腳、結(jié)果信號引腳和soc系統(tǒng)復(fù)位引腳。以上引腳都是由互聯(lián)系統(tǒng)實現(xiàn)soc系統(tǒng)和控制系統(tǒng)之間透傳。其優(yōu)點在于,可以更改互聯(lián)系統(tǒng)中程序設(shè)計即可實現(xiàn)信號引腳的靈活配置,避免了硬件連接無法更改的弊端。
27、優(yōu)選的,在控制系統(tǒng)的程序設(shè)計中,需要根據(jù)操作流程中的步驟,區(qū)分程序的功能主體。在操作流程步驟一中,控制系統(tǒng)程序主要實現(xiàn)從互聯(lián)系統(tǒng)內(nèi)部采樣fifo中讀取波形數(shù)據(jù),然后將程序?qū)Ⅱ炞C程序和波形數(shù)據(jù)保存到存儲芯片中。在操作流程步驟二中,控制系統(tǒng)程序主要實現(xiàn)從存儲芯片emmc中讀取驗證程序和波形數(shù)據(jù),將驗證程序自動下載到soc系統(tǒng)運行,根據(jù)類型編碼決定是否將波形數(shù)據(jù)下載到互聯(lián)系統(tǒng)內(nèi)部fifo或者從互聯(lián)系統(tǒng)內(nèi)部fifo中讀取波形數(shù)據(jù)進(jìn)行對比。所有功能運行結(jié)束后,將結(jié)果上傳至電腦端。因此,需要使用宏定義區(qū)分程序的功能主體。即所述控制系統(tǒng)還包括:使用宏定義區(qū)分控制系統(tǒng)在傳統(tǒng)驗證和回歸驗證步驟的功能主體;在控制系統(tǒng)程序中設(shè)計一個驗證程序流數(shù)組,用于存放驗證程序流文件;設(shè)計一個波形數(shù)組,用于存放從互聯(lián)系統(tǒng)波形采集fifo讀取的波形數(shù)據(jù);設(shè)計一個信息存儲表數(shù)組,用于存放每個soc功能的相關(guān)信息。
28、本發(fā)明與現(xiàn)有技術(shù)相比,具有如下有益效果:
29、本發(fā)明在第一次驗證過程中保存已驗證通過的驗證程序和波形數(shù)據(jù),在回歸驗證過程中進(jìn)行重復(fù)使用,避免了在回歸驗證過中波形輸出需要外接示波器進(jìn)行肉眼觀察輸出波形的正確性或者需要外接信號發(fā)生器提供信號激勵給波形輸入模塊,同時實現(xiàn)驗證程序自動下載。避免回歸驗證過程中已驗證正確功能的重復(fù)操作,提高驗證效率,減少驗證時間,從而縮短芯片上市周期,有利于搶占市場。