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