專利名稱:仿真方法
技術(shù)領(lǐng)域:
本發(fā)明涉及仿真技術(shù),特別是仿真技術(shù)中的下載技術(shù)。
背景技術(shù):
隨著芯片集成度和復(fù)雜度越來越高,硬件仿真變得越來越難,也越來越 費時。在硬件仿真中,主機與仿真器或者調(diào)試工具相連接,并通過仿真器或 調(diào)試工具的接口,連接到目標(biāo)板,從而在目標(biāo)板上實現(xiàn)所需要進行的仿真調(diào) 試。目標(biāo)板主要被用于提供仿真平臺、實現(xiàn)仿真調(diào)試。使用仿真器則是因為, 在很多情況下,目標(biāo)板系統(tǒng)往往不能運行,或者運行結(jié)果和仿真器環(huán)境下不 一致,而如果沒有連接仿真器,將無法觀察各種軟件狀態(tài),對分析問題造成 一定困難。
一般來說,在仿真過程中,往往需要完成多個文件下載的任務(wù)。例如, 硬件人員需要利用編寫的測試程序,通過在仿真環(huán)境下,控制用戶軟件的運
行,并且使用斷點、單步跟蹤和查看變量、CPU寄存器、存儲器等數(shù)值的方
法,來查找問題或證明其設(shè)計的正確性,因此,首先需要完成對這些測試軟 件的下載。
現(xiàn)有技術(shù)中,在進行下載操作時,通過仿真器將主機中的目標(biāo)指令逐條 傳輸至目標(biāo)板,每傳輸一條,目標(biāo)板便對所接收的目標(biāo)指令進行執(zhí)行,包括 對其進行解析,提取數(shù)據(jù)地址和搡作信息,并且根據(jù)所提取出的信息,從仿
真器上或通過仿真器從主機上下載數(shù)據(jù);當(dāng)該條目標(biāo)指令所指示的數(shù)據(jù)傳輸 完成后,按照該條指令中的操作信息,從仿真器上或通過仿真器從主機上下 載下一條目標(biāo)指令。也就是說,在完成一項下載任務(wù)的操作過程中,目標(biāo)板 需要下載每條目標(biāo)指令后,逐條對其進行執(zhí)行,從而使得目標(biāo)板和仿真器之間需要進行多次的握手,不僅花費了很多時間,也占據(jù)了大量的帶寬。
申請?zhí)枮?00410098912.3的中國發(fā)明專利申請中就公布了 一種單板軟件 下載方法和裝置,其中,通過在一單板上預(yù)留下載接口作為外圍存儲區(qū)接口, 在軟件下載時,在所述接口上掛接一用于下載軟件的下載板,通過啟動下載 板中啟動程序,將程序代碼寫入所述單板的程序內(nèi)存中。但是,所述下載過 程僅適用于單板批量生產(chǎn)時的軟件下載,并且由于所述單板與所述下載板之 間通過存儲接口進行數(shù)據(jù)或程序的傳輸,因而并不關(guān)心大量的下載指令是否 會造成大量時間和帶寬的占用,而這種方案并不適用于調(diào)試過程中目標(biāo)板與 仿真器之間通過JTAG接口進行通信,對所需要使用的指令和數(shù)據(jù)進行下載; 另外,所述下載板只是起到處理器外圍存儲器的作用,并不能如仿真器一般 起到對調(diào)試過程進行狀態(tài)監(jiān)控的作用。
發(fā)明內(nèi)容
本發(fā)明解決的問題是提高仿真速度,節(jié)約傳輸帶寬。
為解決上述問題,本發(fā)明提供了一種仿真方法,執(zhí)行單次下載任務(wù)包括-. 仿真器接收開始下載指令;仿真器根據(jù)所述開始下載指令,將與執(zhí)行所述下 載任務(wù)相關(guān)的所有目標(biāo)指令發(fā)送給目標(biāo)板;目標(biāo)板接收完所述所有目標(biāo)指令 之后,逐條進行執(zhí)行,從所述仿真器或者通過所述仿真器從主機下載數(shù)據(jù)。
可選的,所述目標(biāo)指令傳輸和所述數(shù)據(jù)傳輸通過JTAG接口進行。
可選的,所述將與執(zhí)行所述下載任務(wù)相關(guān)的所有目標(biāo)指令發(fā)送給目標(biāo)板 包括仿真器對所接收到的開始下載指令進行解析,提取操作信息和地址信 息;仿真器從所述地址信息中提取與執(zhí)行所述下載任務(wù)相關(guān)的所有目標(biāo)指令;
仿真器根據(jù)所獲得的操作信息,將所述目標(biāo)指令傳輸至目標(biāo)板。
可選的,所述目標(biāo)板接收目標(biāo)指令之后的過程,包括目標(biāo)板保存所接 收的目標(biāo)指令;目標(biāo)板逐條提取所述目標(biāo)指令,并進行執(zhí)行,從所述仿真器
4或者通過所述仿真器從主機下載數(shù)據(jù)。
可選的,所述仿真器接收開始下載指令之前還包括仿真器從主機獲得
與執(zhí)行所述下載任務(wù)相關(guān)的需要進行調(diào)試的目標(biāo)指令和數(shù)據(jù)。
可選的,所述仿真器從主機獲得需要進行調(diào)試的目標(biāo)指令和數(shù)據(jù),通過
RS232協(xié)議串口、或并口、或USB接口、或以太網(wǎng)接口進行。
與現(xiàn)有技術(shù)相比,本發(fā)明通過先將執(zhí)行單次下載任務(wù)的所有目標(biāo)指令進 行傳輸,然后通過目標(biāo)板的存儲和逐條執(zhí)行,完成數(shù)據(jù)的下載,從而減少了 仿真器和目標(biāo)板握手的次數(shù),縮短了下載時間,并且也提高了仿真效率,節(jié)
約了帶寬。
圖1是本發(fā)明仿真方法實施方式的流程圖2是本發(fā)明仿真方法具體實施方式
中,仿真器、主機、目標(biāo)板的結(jié)構(gòu) 示意圖3是本發(fā)明仿真方法具體實施例的流程圖。
具體實施例方式
器之間的握手次數(shù),從而縮短了通信時間,減小了傳輸帶寬。
參考圖1,本發(fā)明提供了一種仿真方法,其中,執(zhí)行單次下載任務(wù)的過程 包括步驟S100,仿真器接收開始下載指令;步驟S200,仿真器根據(jù)所述開 始下載指令,將與執(zhí)行所述下載任務(wù)相關(guān)的所有目標(biāo)指令發(fā)送給目標(biāo)板;步 驟S300,目標(biāo)板接收完所述所有目標(biāo)指令之后,逐條進行執(zhí)行,從所述仿真 器或者通過所述仿真器從主機下載數(shù)據(jù)。
下面結(jié)合附圖,具體對本發(fā)明實施方式進行詳細描述。步驟sioo,仿真器接收開始下載指令。其中,所述開始下載指令可包括
地址信息以及操作指令等。所述地址信息可包括用于所述目標(biāo)板執(zhí)行該次下 載任務(wù)所需的目標(biāo)指令的存儲地址。所述操作信息可包括用于指示所述仿真 器執(zhí)行傳輸目標(biāo)指令的操作。
在其它的實施方式中,在步驟S100之前還可以包括仿真器從主機獲得 需要進行調(diào)試的目標(biāo)指令和數(shù)據(jù)。仿真器可通過以太網(wǎng)的傳輸,從主機處獲 得目標(biāo)指令和it據(jù),并進行保存。
步驟S200,仿真器根據(jù)所述開始下載指令,將執(zhí)行所述下載任務(wù)相關(guān)的 所有目標(biāo)指令發(fā)送給目標(biāo)板。
在具體實施中,首先,仿真器對所接收到的開始下載指令進行解析,提 取所述操作信息和所述地址信息。
其次,仿真器根據(jù)所獲得的地址信息,獲取所需要進行傳輸?shù)乃械哪?標(biāo)指令。 一般來說,仿真器從主機獲取目標(biāo)指令和數(shù)據(jù)之后,將其保存在仿 真器的內(nèi)存模塊中。當(dāng)仿真器解析得到所述地址信息之后,根據(jù)所述地址信 息,從對應(yīng)的內(nèi)存模塊中提取需要進行傳輸?shù)南螺d指令。
接著,仿真器根據(jù)所獲得的操作信息,將所有相關(guān)的目標(biāo)指令傳輸至目 標(biāo)板。其中,所述目標(biāo)指令傳輸結(jié)束之前不進行數(shù)據(jù)的傳輸。
具體來說,在傳輸指令或數(shù)據(jù)之前,仿真器與目標(biāo)板需要采用握手信號 進行相互識別。握手信號是一種常用的相互識別的信號,用于在兩臺計算機 或其他設(shè)備之間實現(xiàn)通信或傳遞信息。舉個例子,接收方具有RTS( Request to Send)信號和DTS信號,發(fā)送方具有CTS ( Clear to Send)信號和DSR信號。 當(dāng)接收方準(zhǔn)備好接收數(shù)據(jù),它置高RTS線表示它準(zhǔn)備好了,如果發(fā)送方也就 緒,它置高CTS,表示它即將發(fā)送數(shù)據(jù)。類似的,還有DTR (Data Terminal Ready)信號和DSR ( Data Set Ready )信號,用于傳輸數(shù)據(jù)信號。也就是說,每當(dāng)目標(biāo)板和仿真器之間要進行一次傳輸時,首先就需要通 過握手信號建立連接,當(dāng)握手次數(shù)越多的情況下,由于每次握手需要等待對 方進行回應(yīng),因此所花費的時間也就越長。
步驟S300,目標(biāo)板接收完所述所有的相關(guān)目標(biāo)指令之后,逐條進行執(zhí)行。 具體來說,首先,目標(biāo)板將所述所有的相關(guān)目標(biāo)指令保存在目標(biāo)板的內(nèi)存單 元,接著,開始逐條執(zhí)行所述目標(biāo)指令在執(zhí)行過程中,先讀取所保存的目 標(biāo)指令,提取其中的地址信息和操作信息;然后,根據(jù)所述操作信息,進行 執(zhí)行,可包括選擇讀取下一條目標(biāo)指令,或者從仿真器中或通過仿真器從 主機下載數(shù)據(jù),或者對接收的數(shù)據(jù)進行存儲。
參考圖2,仿真器201、主機202和目標(biāo)板203,主機202與仿真器201 相連接,仿真器201通過JTAG接口與目標(biāo)板203的JTAG端口相連接,其中, 目標(biāo)板203至少包括指令寄存器和數(shù)據(jù)寄存器。
本發(fā)明仿真方法的具體實施方式
中, 一方面,將仿真器201與主機202, 通過RS232協(xié)議串口、或并口、或USB接口、或以太網(wǎng)接口、或其它接口相 連接。在進行調(diào)試之前,仿真器201從主機202獲得需要進行調(diào)試的程序和 數(shù)據(jù)。具體來說,采用ICE接口協(xié)議轉(zhuǎn)換器,將所獲得的程序和數(shù)據(jù)放入ICE 接口協(xié)議轉(zhuǎn)換器的閃存中。在下載操作中,所獲得的程序和數(shù)據(jù)具體可包括
目標(biāo)板執(zhí)行下載任務(wù)的目標(biāo)指令和數(shù)據(jù)。
另一方面,仿真器201與目標(biāo)板203之間,通過JTAG接口相連接,進行 通信。具體地來說,仿真器201通過JTAG接口 ,對目標(biāo)板203相關(guān)數(shù)據(jù)寄存 器和指令寄存器進行訪問。JTAG(Joint Test Action Group,聯(lián)合測試行動組) 是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE 1149. 1兼容),其主要功能之一,就是用于對 各類芯片以及芯片的外圍設(shè)備進行調(diào)試。
具體來說,JTAG接口通過在目標(biāo)板203內(nèi)部定義一個TAP ( Test AccessPort,測試訪問端口),訪問目標(biāo)板203所提供的所有數(shù)據(jù)寄存器和指令寄存 器。其中,TAP至少包含時鐘信號TCK,用于提供基本時鐘信號;模式選 擇信號TMS,用于控制TAP在不同的狀態(tài)間進行轉(zhuǎn)換;數(shù)據(jù)輸入信號TDI, 用于將所有要輸入到特定寄存器的數(shù)據(jù)在TCK驅(qū)動下一位一位串行輸入,以 及數(shù)據(jù)輸出信號TDO,用于將所有要從特定寄存器輸出的數(shù)據(jù)在TCK驅(qū)動下 一位一位串行輸出。TAP的狀態(tài)通過TAP控制器來控制,TAP控制器是一個 16位的狀態(tài)機,負責(zé)測試信號指令的輸入、輸出、指令解碼等。
目標(biāo)板203上電之后,TAP控制器自動進入Test-Logic Reset狀態(tài),然后 依次進入Run-Test / Idle、 Select畫DR-Scan、 Select-IR-Scan、 Capture-IR、 Shift-IR、 Exit-IR、 Update-IR狀態(tài),最后回到Run-Test/Idle狀態(tài)。在此過程中,狀態(tài) 的轉(zhuǎn)移都是通過TCK信號,具體來說,是TCK信號的上升沿,進行驅(qū)動, 并且通過TMS信號對TAP的狀態(tài)進行選擇轉(zhuǎn)換的。
其中,在Capture-IR狀態(tài)下, 一個特定的邏輯序列被加載到指令寄存器 中;在Shift-IR狀態(tài)下,可以將一條特定的指令送到指令寄存器中;在Update-IR 狀態(tài)下,剛才輸入到指令寄存器中的指令將用來更新指令寄存器。最后,系 統(tǒng)又回到Run-Test/Idle狀態(tài),指令生效,完成對指令寄存器的訪問。當(dāng)系統(tǒng) 又返回到Run-Test / Idle狀態(tài)后,根據(jù)前面指令寄存器的內(nèi)容選定所需要的數(shù) 據(jù)寄存器,開始執(zhí)行對數(shù)據(jù)寄存器的工作。其基本原理與指令其存器的訪問 完全相同,依次為select-DR-Scan、 Capture畫DR、 Shift-D、 Exit-DR、 Update-DR, 最后回到Run-Test/Idle狀態(tài)。通過TDI和TDO,就可以將新的數(shù)據(jù)加載到 數(shù)據(jù)寄存器中。經(jīng)過一個周期后,就可以捕獲數(shù)據(jù)寄存器中的數(shù)據(jù),完成對 與數(shù)據(jù)寄存器的每個寄存器單元相連的目標(biāo)板203引腳的數(shù)據(jù)更新,也完成 了對數(shù)據(jù)寄存器的訪問。
其中,參考圖3,執(zhí)行單次下載任務(wù),具體可包括步驟S301, ICE接口協(xié)議轉(zhuǎn)換器201與主機202相連接,獲得執(zhí)行該次 下載任務(wù)的程序和待下載的數(shù)據(jù)。具體來說,ICE接口協(xié)議轉(zhuǎn)換器201通過與 主機202進行通信,將所獲得的待下載數(shù)據(jù)和目標(biāo)指令存入ICE接口協(xié)議轉(zhuǎn) 換器201的閃存中。
步驟S302, ICE接口協(xié)議轉(zhuǎn)換器201接收開始下載指令。其中,開始下 載指令可包括目標(biāo)指令的地址信息、進行下載的操作信息,還可包括需要傳 輸至目標(biāo)板的所有目標(biāo)指令的長度。
步驟S303, ICE接口協(xié)議轉(zhuǎn)換器201對所述開始下載指令進行解析,根 據(jù)所解析的結(jié)果,獲取存儲在閃存中的目標(biāo)指令。所述解析包括獲取所述開 始下載指令中的地址信息、操作信息以及下載長度。
步驟S304, ICE接口協(xié)議轉(zhuǎn)換器201將所述目標(biāo)指令傳輸至目標(biāo)板203。 當(dāng)傳輸長度到達所述所有目標(biāo)指令的長度時,結(jié)束目標(biāo)指令的傳輸。
步驟S305,目標(biāo)板203接收所述目標(biāo)指令,并進行保存。
步驟S306,目標(biāo)板203逐條執(zhí)行所述目標(biāo)指令,根據(jù)所述目標(biāo)指令,從 ICE接口協(xié)議轉(zhuǎn)換器201下載數(shù)據(jù)。
相較于現(xiàn)有技術(shù)在傳輸目標(biāo)指令的同時,對每條所傳輸?shù)哪繕?biāo)指令進行 執(zhí)行,以及根據(jù)該條目標(biāo)指令,從仿真器或通過仿真器從主機下載對應(yīng)的數(shù) 據(jù),本發(fā)明實施方式在執(zhí)行下載任務(wù)時,先將目標(biāo)指令全部傳輸至執(zhí)行下載 任務(wù)的目標(biāo)板,而不對數(shù)據(jù)進行傳輸;當(dāng)所述目標(biāo)指令全部傳輸完之后,目 標(biāo)板逐條執(zhí)行所述目標(biāo)指令,并根據(jù)所述目標(biāo)指令,完成數(shù)據(jù)的下載。
現(xiàn)有技術(shù)在下載每條目標(biāo)指令之后,就執(zhí)行該條目標(biāo)指令,執(zhí)行結(jié)束之 后再和仿真器通信,下載下一條目標(biāo)指令。因此,對于下載每條目標(biāo)指令, 目標(biāo)板都需要與仿真器進行通信。但是由于有些目標(biāo)指令并不需要對數(shù)據(jù)進 行處理,因而當(dāng)所述目標(biāo)指令被全部下載并保存在目標(biāo)板中時,目標(biāo)板能夠直接對此類目標(biāo)指令進行處理,而不需要對每條目標(biāo)指令與仿真器通信,減 少了仿真過程目標(biāo)板和仿真器之間的握手次數(shù),從而減少了下載時間,并且 也節(jié)約了帶寬。特別是當(dāng)下載數(shù)據(jù)量較大,例如目標(biāo)指令超過1000條時,本 發(fā)明實施方式將所述目標(biāo)指令全部傳輸并保存至目標(biāo)板之后,目標(biāo)板逐條執(zhí) 行所述目標(biāo)指令,并根據(jù)所述目標(biāo)指令,與仿真器傳輸數(shù)據(jù),從而有效地縮 短了仿真時間。
雖然本發(fā)明已通過較佳實施例說明如上,但這些較佳實施例并非用以限 定本發(fā)明。本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),應(yīng)有能力 對該較佳實施例做出各種改正和補充,因此,本發(fā)明的保護范圍以權(quán)利要求 書的范圍為準(zhǔn)。
10
權(quán)利要求
1. 一種仿真方法,其特征在于,執(zhí)行單次下載任務(wù)的過程包括仿真器接收開始下載指令;仿真器根據(jù)所述開始下載指令,將與執(zhí)行所述下載任務(wù)相關(guān)的所有目標(biāo)指令發(fā)送給目標(biāo)板;目標(biāo)板接收完所述所有目標(biāo)指令之后,逐條進行執(zhí)行,從所述仿真器或者通過所述仿真器從主機下載數(shù)據(jù)。
2. 如權(quán)利要求1所述的仿真方法,其特征在于,所述目標(biāo)指令傳輸和所述數(shù) 據(jù)傳輸通過JTAG接口進行。
3. 如權(quán)利要求1所述的仿真方法,其特征在于,所述將與執(zhí)行所述下載任務(wù) 相關(guān)的所有目標(biāo)指令發(fā)送給目標(biāo)板包括仿真器對所接收到的開始下載指令進行解析,纟是取4喿作信息和地址信息; 仿真器從所述地址信息中提取與執(zhí)行所述下載任務(wù)相關(guān)的所有目標(biāo)指令; 仿真器根據(jù)所獲得的操作信息,將所述目標(biāo)指令傳輸至目標(biāo)板。
4. 如權(quán)利要求1所述的仿真方法,其特征在于,所述目標(biāo)板接收目標(biāo)指令之 后的過程,包括目標(biāo)板保存所接收的目標(biāo)指令;目標(biāo)板逐條提取所述目標(biāo)指令,并進行執(zhí)行,從所述仿真器或者通過所述 仿真器從主機下載數(shù)據(jù)。
5. 如權(quán)利要求1所述的仿真方法,其特征在于,所述仿真器接收開始下載指 令之前還包括仿真器從主機獲得與執(zhí)行所述下載任務(wù)相關(guān)的需要進行調(diào) 試的目標(biāo)指令和數(shù)據(jù)。
6. 如權(quán)利要求5所述的仿真方法,其特征在于,所述仿真器從主機獲得需要 進行調(diào)試的目標(biāo)指令和數(shù)據(jù),通過RS232協(xié)議串口、或并口、或USB接 口、或以太網(wǎng)4妻口進4亍。
全文摘要
本發(fā)明提供了一種仿真方法,其中執(zhí)行單次下載任務(wù)包括仿真器接收開始下載指令;仿真器根據(jù)所述開始下載指令,將與執(zhí)行所述下載任務(wù)相關(guān)的所有目標(biāo)指令發(fā)送給目標(biāo)板;目標(biāo)板接收完所述所有的相關(guān)目標(biāo)指令之后,逐條進行執(zhí)行。本發(fā)明通過先將執(zhí)行單次下載任務(wù)的所有目標(biāo)指令進行傳輸,然后通過目標(biāo)板的存儲和逐條執(zhí)行,完成數(shù)據(jù)的下載,從而減少了仿真器和目標(biāo)板握手的次數(shù),縮短了下載時間,并且也提高了仿真效率,節(jié)約了帶寬。
文檔編號G06F17/50GK101482896SQ20091004586
公開日2009年7月15日 申請日期2009年1月20日 優(yōu)先權(quán)日2009年1月20日
發(fā)明者豐 梁 申請人:華亞微電子(上海)有限公司