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