本發(fā)明屬于自動(dòng)化測(cè)試技術(shù)領(lǐng)域,特別涉及一種基于現(xiàn)場(chǎng)可編程陣列的在線仿真器自動(dòng)化測(cè)試系統(tǒng)及方法。
背景技術(shù):
在線仿真器(ICE)也稱為硬件仿真器,屬于MCU開(kāi)發(fā)過(guò)程中使用的與芯片等效物理裝置。其產(chǎn)品的特性就是要嚴(yán)格逼近真實(shí)芯片的功能特性、電氣特性以及物理特性等。用戶使用該設(shè)備以及其配套的IDE開(kāi)發(fā)環(huán)境,能快速的進(jìn)行嵌入式編程、交叉編譯、實(shí)時(shí)仿真調(diào)試等。該類設(shè)備一般具備可重構(gòu)的特性,即一個(gè)ICE,通常能模擬多款MCU芯片的特性。
然而,隨著ICE兼容的芯片類型越來(lái)越多,產(chǎn)品的測(cè)試成為了一項(xiàng)工作量無(wú)比龐大的事情。因?yàn)槊總€(gè)MCU芯片本身的功能的非常之多,而且測(cè)試步驟包含流片前的RTL驗(yàn)證、模數(shù)混合驗(yàn)證、FPGA驗(yàn)證以及流片后的樣品測(cè)試、CP測(cè)試等等。ICE作為另外一個(gè)獨(dú)立的產(chǎn)品,其測(cè)試工作量自然也同比增長(zhǎng)。那么如何通過(guò)自動(dòng)化測(cè)試的方式,實(shí)現(xiàn)測(cè)試Case的遞歸和遍歷,減少測(cè)試人力的投入,稱為ICE產(chǎn)品開(kāi)發(fā)過(guò)程中非常重要的問(wèn)題。
如專利申請(qǐng)201510617717.5公開(kāi)了一種用于ICE的MCU仿真方法,該方法通過(guò)CS-SIM主模塊和CS-SIM從模塊來(lái)實(shí)現(xiàn),其中ICE的CPU以及CS-SIM主模塊集成在FPGA中,CS-SIM從模塊集成于目標(biāo)芯片中;CS-SIM主模塊通過(guò)監(jiān)控CPU的SFR總線,在CPU讀寫模擬相關(guān)寄存器的同時(shí),將SFR信息通過(guò)CS-SIM總線寫入到目標(biāo)芯片當(dāng)中;目標(biāo)芯片中通過(guò)CS-SIM從模塊接收SFR信息完成SFR配置,最終將模擬輸出映射到IO口上,實(shí)現(xiàn)芯片內(nèi)部數(shù)模接口到ICE數(shù)模接口的等效替換。然而,CS-SIM主模塊和CS-SIM從模塊并沒(méi)有記錄ICE的型號(hào)及各種應(yīng)用程序,對(duì)于不同的ICE產(chǎn)品測(cè)試,就需要重新進(jìn)行所有的測(cè)試步驟,不可避免地帶來(lái)資源和成本的浪費(fèi),影響測(cè)試的效率。
技術(shù)實(shí)現(xiàn)要素:
基于此,因此本發(fā)明的首要目地是提供一種ICE自動(dòng)化測(cè)試系統(tǒng)及測(cè)試方法,該自動(dòng)化測(cè)試系統(tǒng)和測(cè)試方法,能實(shí)現(xiàn)所有ICE支持型號(hào)的數(shù)字功能測(cè)試,同時(shí)也能擴(kuò)展支持芯片的FPGA自動(dòng)化驗(yàn)證和樣片的數(shù)字自動(dòng)化測(cè)試。
本發(fā)明的另一個(gè)目地在于提供一種ICE自動(dòng)化測(cè)試系統(tǒng)及測(cè)試方法,該自動(dòng)化測(cè)試系統(tǒng)和測(cè)試方法能減少測(cè)試人力的投入,減少了手動(dòng)操作,大大縮短了測(cè)試流程,提高了測(cè)試效率。
為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種ICE自動(dòng)化測(cè)試系統(tǒng),所述測(cè)試系統(tǒng)包含上位機(jī)和下位機(jī)兩大部分,其中:
所述上位機(jī)使用腳本作為測(cè)試系統(tǒng)的中央控制臺(tái),并存放了ICE型號(hào)庫(kù)、程序用例庫(kù)(FC,F(xiàn)irmware Case)、TB用例庫(kù)、以及測(cè)試用例庫(kù)(TC,Test Case);
所述下位機(jī)包含:DUT(Device Under Test)ICE本身和TB(Test Board)測(cè)試板,DUT是程序用例的硬件載體,TB充當(dāng)系統(tǒng)的DUT輸入激勵(lì)X的信號(hào)發(fā)生器和DUT輸出結(jié)果Y的信號(hào)測(cè)量?jī)x等測(cè)試組件;
所述上位機(jī)和下位機(jī)通過(guò)API接口進(jìn)行通信。
上位機(jī)主要包括有控制腳本,TC,F(xiàn)C和API(Application Programming Interface),控制腳本通過(guò)調(diào)用RBF文件對(duì)DUT和TB進(jìn)行硬件重構(gòu),調(diào)用MSCL(Microsoft Compiler)編譯測(cè)試用例TC生成EXE可執(zhí)行文件,調(diào)用CSCL(ChipSea Compiler)交叉編譯程序用例FC生成HEX文件,TC通過(guò)API加載FC到DUT中實(shí)現(xiàn)軟件重構(gòu),并執(zhí)行某種數(shù)字功能的測(cè)試。
下位機(jī)主要包括USB接口,DUT板和TB板,DUT由CPLD,FPGA和GPIO電路和CS-SIM主模塊構(gòu)成,通過(guò)CPLD對(duì)FPGA進(jìn)行配置時(shí)序,快速重構(gòu),實(shí)現(xiàn)DUT的硬件重構(gòu),DUT再通過(guò)加載FC實(shí)現(xiàn)軟件重構(gòu),并通過(guò)CS-SIM主模塊產(chǎn)生總線C對(duì)TB進(jìn)行激勵(lì)配置和測(cè)量配置,通過(guò)GPIO電路接收信號(hào)激勵(lì)和產(chǎn)生響應(yīng)信號(hào);TB由CPLD,FPGA和GPIO電路和CS-SIM從模塊構(gòu)成,通過(guò)CPLD對(duì)FPGA進(jìn)行快速重構(gòu),實(shí)現(xiàn)可重構(gòu)式測(cè)試組件;TB通過(guò)CS-SIM從模塊接收總線C的配置信息后,調(diào)用測(cè)試組件對(duì)DUT輸出信號(hào)激勵(lì)X和接收輸出結(jié)果Y。
進(jìn)一步,所述TB,其通過(guò)USB接口與上位機(jī)進(jìn)行通信,通過(guò)GPIO接口與GPIO電路進(jìn)行通信,通過(guò)CS-SIM接口(C口)與DUT進(jìn)行通信。
更進(jìn)一步,所述C口是一個(gè)主從模式的串行總線,CS-SIM從模塊將其轉(zhuǎn)為BIU并行總線,X信號(hào)產(chǎn)生所需要的模塊,如G0信號(hào)號(hào)產(chǎn)生器、G1序列產(chǎn)生器,以及Y信號(hào)的測(cè)量模塊,如M0頻率測(cè)量計(jì)、M1脈寬測(cè)量計(jì)等都掛載在BIU總線上。另外,如果DUT包含以下標(biāo)準(zhǔn)接口,如UART、I2C、SPI等,也可以在BIU中掛載對(duì)應(yīng)標(biāo)準(zhǔn)接口模塊。
由于DUT是可重構(gòu)的,GPIO引腳排布變化多樣。在TB中,只有C口引腳的位置是固定的。X引腳和Y引腳的位置隨著DUT配置的變化而變化。
因此在TB中,存在一個(gè)GPIO復(fù)用陣列,以及GPIO外設(shè)模塊;GPIO復(fù)用陣列可以將任意G、M、S模塊的輸入輸出分配到任意GPIO外設(shè)模塊中,GPIO外設(shè)模塊用于配置任意GPIO引腳的輸入、輸出、上下拉等模式,GPIO的分配和配置也是通過(guò)將GPIO復(fù)用陣列及GPIO外設(shè)模塊掛載在BIU總線上實(shí)現(xiàn)的。
所述上位機(jī)采用perl腳本作為整個(gè)測(cè)試系統(tǒng)的膠水語(yǔ)言,能自動(dòng)有序的調(diào)用API對(duì)DUT和TB進(jìn)行硬件重構(gòu),再調(diào)用編譯器對(duì)FC代碼進(jìn)行自動(dòng)編譯和下載。
上位機(jī)測(cè)試啟動(dòng)后,主要的測(cè)試流程為:
101、第一步訪問(wèn)ICE型號(hào)庫(kù)選擇指定型號(hào)對(duì)DUT進(jìn)行硬件重構(gòu);
102、第二步訪問(wèn)TB型號(hào)庫(kù)選擇合適的TB型號(hào)對(duì)TB進(jìn)行硬件重構(gòu)(可選);
103、第三步訪問(wèn)程序用例庫(kù)對(duì)DUT的程序區(qū)進(jìn)行軟件重構(gòu);
104、第四步調(diào)用指定的測(cè)試用例開(kāi)始運(yùn)行測(cè)試。
ICE從硬件上劃分,主要可以分為3大功能模塊:仿真模塊、內(nèi)核模塊、以及外設(shè)模塊。因此,CS-ATS測(cè)試方法可以分為3大類:
1)仿真功能測(cè)試。對(duì)于該類測(cè)試,不需要進(jìn)行上述測(cè)試流程的第102步。而測(cè)試用例主要通過(guò)API讀寫DUT的程序區(qū)、數(shù)據(jù)區(qū)、寄存器、PC指針等,以及調(diào)用單步、斷點(diǎn)運(yùn)行、全速運(yùn)行仿真命令等,來(lái)模擬用戶在IDE上操作過(guò)程。對(duì)于該類測(cè)試,每一個(gè)測(cè)試用例匹配一個(gè)合適的程序用例,測(cè)試激勵(lì)和斷言都在測(cè)試用例中體現(xiàn)。
2)內(nèi)核功能測(cè)試。對(duì)于該類測(cè)試,不需要進(jìn)行上述測(cè)試流程的第102步。對(duì)于該類測(cè)試,每一個(gè)程序用例,共用一個(gè)固定的測(cè)試用例,測(cè)試激勵(lì)和斷言都在程序用例中體現(xiàn)。
3)外設(shè)功能測(cè)試。對(duì)于該類測(cè)試,每一個(gè)程序用例,共用一個(gè)固定的測(cè)試用例,測(cè)試激勵(lì)在TB中體現(xiàn),測(cè)試斷言在程序用例中體現(xiàn)。
本發(fā)明所實(shí)現(xiàn)的自動(dòng)化測(cè)試系統(tǒng)和測(cè)試方法,能實(shí)現(xiàn)所有ICE支持型號(hào)的數(shù)字功能測(cè)試,減少測(cè)試人力的投入,很大程度上減少了手動(dòng)操作,大大縮短了測(cè)試流程。并且自動(dòng)化輸出測(cè)試日志,方便測(cè)試人員快速發(fā)現(xiàn)問(wèn)題,進(jìn)而修復(fù)芯片設(shè)計(jì)。
附圖說(shuō)明
圖1是本發(fā)明所實(shí)施的結(jié)構(gòu)原理圖。
圖2是本發(fā)明所實(shí)施的結(jié)構(gòu)示意圖。
圖3是本發(fā)明所實(shí)施的TB邏輯架構(gòu)圖。
圖4是本發(fā)明所實(shí)施的腳本測(cè)試流程圖。
圖5是本發(fā)明所實(shí)施的測(cè)試用例測(cè)試流程圖。
圖6是本發(fā)明所實(shí)施的程序用例測(cè)試流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1所示,為本發(fā)明所實(shí)施一種ICE自動(dòng)化測(cè)試系統(tǒng)的原理圖,圖中,所述測(cè)試系統(tǒng)包含上位機(jī)和下位機(jī)兩大部分,其中:
上位機(jī)使用腳本作為測(cè)試系統(tǒng)的中央控制臺(tái),并存放了ICE型號(hào)庫(kù)、程序用例庫(kù)(FC)、TB用例庫(kù)、以及測(cè)試用例庫(kù)(TC)。
下位機(jī)包含:DUT和TB測(cè)試板,DUT是程序用例的硬件載體,TB充當(dāng)系統(tǒng)的DUT輸入激勵(lì)X的信號(hào)發(fā)生器和DUT輸出結(jié)果Y的信號(hào)測(cè)量?jī)x等測(cè)試組件。所述上位機(jī)和下位機(jī)通過(guò)API接口進(jìn)行通信。
結(jié)合圖2所示,上位機(jī)主要包括有控制腳本,TC,F(xiàn)C和API,控制腳本通過(guò)調(diào)用RBF文件對(duì)DUT和TB進(jìn)行硬件重構(gòu),調(diào)用MSCL編譯測(cè)試用例TC生成EXE可執(zhí)行文件,調(diào)用CSCL交叉編譯程序用例FC生成HEX文件,TC通過(guò)API加載FC到DUT中實(shí)現(xiàn)軟件重構(gòu),并執(zhí)行某種數(shù)字功能的測(cè)試。
下位機(jī)主要包括USB接口,DUT板和TB板,DUT由CPLD,FPGA和GPIO電路和CS-SIM主模塊構(gòu)成,通過(guò)CPLD對(duì)FPGA進(jìn)行配置時(shí)序,快速重構(gòu),實(shí)現(xiàn)DUT的硬件重構(gòu),DUT再通過(guò)加載FC實(shí)現(xiàn)軟件重構(gòu),并通過(guò)CS-SIM主模塊產(chǎn)生總線C對(duì)TB進(jìn)行激勵(lì)配置和測(cè)量配置,通過(guò)GPIO電路接收信號(hào)激勵(lì)和產(chǎn)生響應(yīng)信號(hào);TB由CPLD,FPGA和GPIO電路和CS-SIM從模塊構(gòu)成,通過(guò)CPLD對(duì)FPGA進(jìn)行快速重構(gòu),實(shí)現(xiàn)可重構(gòu)式測(cè)試組件;TB通過(guò)CS-SIM從模塊接收總線C的配置信息后,調(diào)用測(cè)試組件對(duì)DUT輸出信號(hào)激勵(lì)X和接收輸出結(jié)果Y。
TB,其通過(guò)USB接口與上位機(jī)進(jìn)行通信,通過(guò)GPIO接口與GPIO電路進(jìn)行通信,通過(guò)CS-SIM接口(C口)與DUT進(jìn)行通信。
圖3所示為TB的邏輯架構(gòu)圖,結(jié)合圖3所示,C口是一個(gè)主從模式的串行總線,CS-SIM從模塊將其轉(zhuǎn)為BIU并行總線,X信號(hào)產(chǎn)生所需要的模塊,如G0信號(hào)號(hào)產(chǎn)生器、G1序列產(chǎn)生器,以及Y信號(hào)的測(cè)量模塊,如M0頻率測(cè)量計(jì)、M1脈寬測(cè)量計(jì)等都掛載在BIU總線上。另外,如果DUT包含以下標(biāo)準(zhǔn)接口,如UART、I2C、SPI等,也可以在BIU中掛載對(duì)應(yīng)標(biāo)準(zhǔn)接口模塊。
由于DUT是可重構(gòu)的,GPIO引腳排布變化多樣。在TB中,只有C口引腳的位置是固定的。X引腳和Y引腳的位置隨著DUT配置的變化而變化。因此在TB中,存在一個(gè)GPIO復(fù)用陣列,以及GPIO外設(shè)模塊;GPIO復(fù)用陣列可以將任意G、M、S模塊的輸入輸出分配到任意GPIO外設(shè)模塊中,GPIO外設(shè)模塊用于配置任意GPIO引腳的輸入、輸出、上下拉等模式,GPIO的分配和配置也是通過(guò)將GPIO復(fù)用陣列及GPIO外設(shè)模塊掛載在BIU總線上實(shí)現(xiàn)的。
上位機(jī)采用perl腳本作為整個(gè)測(cè)試系統(tǒng)的膠水語(yǔ)言,能自動(dòng)有序的調(diào)用API對(duì)DUT和TB進(jìn)行硬件重構(gòu),再調(diào)用編譯器對(duì)FC代碼進(jìn)行自動(dòng)編譯和下載。
同時(shí),上位機(jī)采用C++作為編寫測(cè)試用例,直接調(diào)用ICE提供的API接口,可以快速友好的訪問(wèn)ICE設(shè)備。采用ICE支持的匯編語(yǔ)言編寫程序用例,并通過(guò)API加載到DUT的程序區(qū)中。
下位機(jī)則采用ICE主板電路直接作為TB測(cè)試板的硬件電路,使其支持快速重構(gòu)、GPIO復(fù)用等多種ICE具備的特性。并通過(guò)重構(gòu)數(shù)字邏輯實(shí)現(xiàn)DUT所需的各類測(cè)試組件。
而且,下位機(jī)選用CS-SIM接口作為TB配置通道的標(biāo)準(zhǔn)接口。DUT通過(guò)該接口快速配置TB中的測(cè)試組件產(chǎn)生測(cè)試信號(hào),以及讀取TB中測(cè)試組件的測(cè)試結(jié)果。
同時(shí),選用一主多從的總線架構(gòu)方式實(shí)現(xiàn)TB各類測(cè)試組件的集成,使用一種GPIO復(fù)用陣列模塊實(shí)現(xiàn)各類測(cè)試組件輸入輸出的引腳動(dòng)態(tài)分配。
上位機(jī)測(cè)試啟動(dòng)后,主要的測(cè)試流程為:
101、第一步訪問(wèn)ICE型號(hào)庫(kù)選擇指定型號(hào)對(duì)DUT進(jìn)行硬件重構(gòu);
102、第二步訪問(wèn)TB型號(hào)庫(kù)選擇合適的TB型號(hào)對(duì)TB進(jìn)行硬件重構(gòu)(可選);
103、第三步訪問(wèn)程序用例庫(kù)對(duì)DUT的程序區(qū)進(jìn)行軟件重構(gòu);
104、第四步調(diào)用指定的測(cè)試用例開(kāi)始運(yùn)行測(cè)試。
測(cè)試方法可以分為3大類:
1)仿真功能測(cè)試。對(duì)于該類測(cè)試,不需要進(jìn)行上述測(cè)試流程的第102步。而測(cè)試用例主要通過(guò)API讀寫DUT的程序區(qū)、數(shù)據(jù)區(qū)、寄存器、PC指針等,以及調(diào)用單步、斷點(diǎn)運(yùn)行、全速運(yùn)行仿真命令等,來(lái)模擬用戶在IDE上操作過(guò)程。對(duì)于該類測(cè)試,每一個(gè)測(cè)試用例匹配一個(gè)合適的程序用例,測(cè)試激勵(lì)和斷言都在測(cè)試用例中體現(xiàn)。
2)內(nèi)核功能測(cè)試。對(duì)于該類測(cè)試,不需要進(jìn)行上述測(cè)試流程的第102步。對(duì)于該類測(cè)試,每一個(gè)程序用例,共用一個(gè)固定的測(cè)試用例,測(cè)試激勵(lì)和斷言都在程序用例中體現(xiàn)。
3)外設(shè)功能測(cè)試。對(duì)于該類測(cè)試,每一個(gè)程序用例,共用一個(gè)固定的測(cè)試用例,測(cè)試激勵(lì)在TB中體現(xiàn),測(cè)試斷言在程序用例中體現(xiàn)。
由此,結(jié)合到腳本、TC和FC,具體情況如下:
如圖4所示,腳本流程為:控制臺(tái)執(zhí)行腳本,加載RBF進(jìn)行DUT硬件重構(gòu),若判斷測(cè)試類型是外設(shè)測(cè)試,則還需要加載Rbf進(jìn)行測(cè)試組件的重構(gòu)。接著調(diào)用CSCL編譯FC,加載FC到DUT中實(shí)現(xiàn)軟件重構(gòu),調(diào)用MSCL編譯TC,執(zhí)行TC給出測(cè)試激勵(lì),讀取DUT響應(yīng)結(jié)果,控制臺(tái)判斷并給出測(cè)試結(jié)果。
DUT的程序加載和調(diào)試運(yùn)行動(dòng)作是有TC控制實(shí)現(xiàn)的。TC流程圖如圖5所示,所有測(cè)試用例TC使用類似的流程,先初始化DUT參數(shù),再加載運(yùn)行在DUT中的程序用例FC。然后開(kāi)始執(zhí)行仿真調(diào)試命令,如單步、復(fù)位、調(diào)試運(yùn)行、設(shè)置斷點(diǎn)等。執(zhí)行之后可以通過(guò)讀取DUT的相關(guān)狀態(tài)信息,如PC值、RAM區(qū)內(nèi)容、ROM區(qū)內(nèi)容等判斷DUT工作是否工作正常等。
數(shù)字外設(shè)的測(cè)試分輸入類和輸出類,輸入類為TB給出信號(hào)激勵(lì),DUT輸出響應(yīng)結(jié)果,TB進(jìn)行測(cè)量。輸出類為DUT輸出信號(hào)到TB進(jìn)行測(cè)量。兩種類型都需要進(jìn)行MCU數(shù)字外設(shè)的初始化和測(cè)試組件的初始化,然后根據(jù)具體測(cè)試的數(shù)字功能進(jìn)行選擇激勵(lì)模塊和測(cè)量模塊。數(shù)字外設(shè)測(cè)試FC流程圖如圖6所示。
因此,本發(fā)明所實(shí)現(xiàn)的自動(dòng)化測(cè)試系統(tǒng)和測(cè)試方法,能實(shí)現(xiàn)所有ICE支持型號(hào)的數(shù)字功能測(cè)試,減少測(cè)試人力的投入,很大程度上減少了手動(dòng)操作,大大縮短了測(cè)試流程。并且自動(dòng)化輸出測(cè)試日志,方便測(cè)試人員快速發(fā)現(xiàn)問(wèn)題,進(jìn)而修復(fù)芯片設(shè)計(jì)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。