適用于多類型cpu的聯(lián)合仿真工具的制作方法【專利摘要】本發(fā)明公開了一種適用于多類型CPU的聯(lián)合仿真工具,包括:ELF文件解釋器,用于提取ELF文件中的調(diào)試信息和數(shù)據(jù)區(qū);指令集反匯編器,用于將內(nèi)部的調(diào)試信息和指令轉(zhuǎn)化為相應(yīng)內(nèi)核指令集的內(nèi)核匯編指令代碼;波形文件解釋器,通過讀取和解析VCD文件,對VCD文件中的多通道數(shù)字信號波形信息進行解釋,生成輸出波形的形式,并加載進內(nèi)存中;波形顯示器,對內(nèi)存中存儲的被解釋過的多通道數(shù)字信號波形信息進行處理;調(diào)試器用戶界面,通過各自的窗口顯示所述內(nèi)核匯編指令代碼和多通道數(shù)字信號波形,并且實現(xiàn)多通道數(shù)字信號波形和內(nèi)核匯編指令代碼的相互自動對應(yīng)。本發(fā)明可以有效提高驗證的工作效率?!緦@f明】適用于多類型CPU的聯(lián)合仿真工具【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及一種適用于多類型CPU(中央處理器)的聯(lián)合仿真工具?!?br>背景技術(shù):
】[0002]隨著集成電路工藝的不斷發(fā)展以及集成電路(IC)應(yīng)用領(lǐng)域的不斷深入,IC設(shè)計的復雜度和性能復雜度較以前有了本質(zhì)的提升,這對芯片設(shè)計公司和芯片應(yīng)用廠商的驗證方案提出了更高的要求。[0003]針對帶有內(nèi)核的電路的設(shè)計,傳統(tǒng)方法是在大型服務(wù)器或工作站上進行硬件代碼的仿真,仿真結(jié)果以波形形式反映在圖形界面上。在這個過程中,軟件或硬件工程師將軟件代碼經(jīng)過編譯后提供給驗證工程師作為硬件仿真的輸入文件。這種驗證方式通過人工觀察波形來定位隱藏的缺陷(以下簡稱“BUG”)。但BUG可能出現(xiàn)的層次較多,可能由于硬件電路的原因,也可能由于上層軟件的原因。因此當驗證工程師發(fā)現(xiàn)問題后,會聯(lián)合軟件工程師一起排查。驗證工程師指出波形上異常情況出現(xiàn)的位置,通常通過數(shù)據(jù)和地址總線一類的信號進行軟件指令的定位。軟件工程師通過驗證工程師提供的信息對軟件代碼可能出現(xiàn)錯誤的地方進行BUG定位,確認和修改,之后將結(jié)果反饋給驗證工程師。通常對于一個BUG,將會多次重復上述過程,而上述過程中通過波形對應(yīng)到匯編代碼的工作都由手工完成,這給工程師們增加很多不必要的工作量。同時由于軟硬件交互層面上的工作涵蓋軟件和硬件兩方面的知識,這給來自于不同背景的工程師帶來了很大負擔,無形中提高了工作的復雜度。【
發(fā)明內(nèi)容】[0004]本發(fā)明要解決的技術(shù)問題是提供一種適用于多類型CPU的聯(lián)合仿真工具,可以有效提高驗證的工作效率。[0005]為解決上述技術(shù)問題,本發(fā)明的適用于多類型CPU的聯(lián)合仿真工具,包括:[0006]一ELF(可執(zhí)行鏈接格式,ExecutableandLinkableFormat)文件解釋器,用于提取ELF文件中調(diào)試文件數(shù)據(jù),該調(diào)試文件數(shù)據(jù)包括的調(diào)試信息和數(shù)據(jù)區(qū);[0007]—指令集反匯編器,用于加載調(diào)試文件數(shù)據(jù),并將調(diào)試文件內(nèi)部的調(diào)試信息和指令轉(zhuǎn)化為相應(yīng)內(nèi)核指令集的內(nèi)核匯編指令代碼;[0008]一波形文件解釋器,加載V⑶(基于ASCII碼的文件格式,ValueChangeDump)波形文件,通過讀取和解析V⑶波形文件,對V⑶波形文件中的仿真得到的多通道數(shù)字信號波形信息進行解釋,生成輸出波形的形式,并加載進內(nèi)存中;[0009]一波形顯示器,對內(nèi)存中存儲的被解釋過的仿真得到的多通道數(shù)字信號波形信息進行處理;[0010]一調(diào)試器用戶界面,位于所述波形顯示器上,負責調(diào)用所有后臺程序,加載并顯示輸入文件和動態(tài)調(diào)試程序;將所述內(nèi)核匯編指令代碼和仿真得到的多通道數(shù)字信號波形在各自的窗口中進行顯示,并且實現(xiàn)仿真得到的多通道數(shù)字信號波形和內(nèi)核匯編指令代碼的相互自動對應(yīng)。[0011]為了提高整個驗證過程的工作效率,可以將不必要的人工操作交由計算機進行處理。采用本發(fā)明可以將內(nèi)核匯編指令代碼和硬件仿真得到的多通道數(shù)字信號波形進行自動化關(guān)聯(lián),簡化軟件工程師和驗證工程師處理軟硬件交互過程中的工作,使他們可以將更多的精力放在各自擅長的領(lǐng)域;進而有效的提高驗證團隊的工作效率。【專利附圖】【附圖說明】[0012]下面結(jié)合附圖與【具體實施方式】對本發(fā)明作進一步詳細的說明:[0013]附圖是聯(lián)合仿真工具操作流程示意圖。【具體實施方式】[0014]結(jié)合附圖所示,所述適用于多類型CPU的聯(lián)合仿真工具包括:一ELF文件解釋器,一指令集反匯編器,一波形文件解釋器,一波形顯示器,一調(diào)試器用戶界面。該聯(lián)合仿真工具具有圖形界面(即調(diào)試器用戶界面)顯示功能,波形顯示功能,及波形與內(nèi)核匯編指令代碼雙向自動化關(guān)聯(lián)的功能。所述聯(lián)合仿真工具支持多種類型的CPU內(nèi)核,如C51,ARM;可通過調(diào)試器用戶界面選擇CPU內(nèi)核類型。所述聯(lián)合仿真工具在多文檔視圖中,支持各子窗口的浮動和嵌入。[0015]軟件測試代碼,是由軟件測試人員編寫的用于對電路作進一步調(diào)試的軟件代碼。該軟件測試代碼通過基于不同內(nèi)核的編譯器編譯生成ELF文件和仿真所要的BIN(二進制)文件(即固件測試文件)。[0016]數(shù)字電路網(wǎng)表為帶有內(nèi)核電路的數(shù)字電路網(wǎng)表,是由數(shù)字設(shè)計人員通過硬件描述語言編寫的硬件代碼經(jīng)過編譯和綜合得到的門級網(wǎng)表。[0017]在Linux服務(wù)器端使用仿真器加載數(shù)字電路網(wǎng)表和BIN文件,對數(shù)字電路進行硬件仿真,生成以VCD格式輸出的波形文件,即VCD波形文件,該VCD波形文件是一種基于ASCII碼的文件格式,用于記錄由EDA(電子設(shè)計自動化)仿真工具產(chǎn)生的信號信息。該波形文件的格式有*.vcd和*.fsdb兩種格式,其中*.fsdb格式可以轉(zhuǎn)化為*.vcd格式。[0018]ELF文件作為軟件仿真的輸入文件載入所述聯(lián)合仿真工具中,由所述ELF文件解釋器將ELF文件中的調(diào)試信息與數(shù)據(jù)區(qū)(指令區(qū))提取出來。該調(diào)試信息與數(shù)據(jù)區(qū)即為附圖中所示的調(diào)試文件數(shù)據(jù)。[0019]所述指令集反匯編器加載調(diào)試文件數(shù)據(jù),并將調(diào)試文件內(nèi)部的調(diào)試信息和指令轉(zhuǎn)化為相應(yīng)內(nèi)核指令集的內(nèi)核匯編指令代碼。[0020]所述聯(lián)合仿真工具的波形文件解釋器加載V⑶波形文件,通過讀取和解析V⑶波形文件,對VCD波形文件中的仿真得到的多通道數(shù)字信號波形信息進行解釋,生成輸出波形的形式,并加載進內(nèi)存中。[0021]所述波形顯示器,對內(nèi)存中存儲的被解釋過的仿真得到的多通道數(shù)字信號波形信息進行處理,并通過調(diào)試器用戶界面顯示仿真得到的多通道數(shù)字信號波形。所述波形顯示器可以是用戶PC(個人電腦)。[0022]所述調(diào)試器用戶界面,負責調(diào)用所有后臺程序(如指令集反匯編器),加載并顯示輸入文件和動態(tài)調(diào)試程序;使所述內(nèi)核匯編指令代碼,仿真得到的多通道數(shù)字信號波形通過各自的窗口顯示在用戶PC上,并且實現(xiàn)仿真得到的多通道數(shù)字信號波形和內(nèi)核匯編指令代碼的相互對應(yīng)。[0023]所述調(diào)試器用戶界面橫縱軸分別為記錄著波形的采樣時間點和各數(shù)字信號通道。該調(diào)試器用戶界面可實現(xiàn)包括波形的放大和縮小,標尺,查找上下沿,程序追蹤等功能。所述調(diào)試器用戶界面支持多通道數(shù)字信號波形信號數(shù)量的增加和減少,信號顏色的改變,手動改變信號擺放次序,多個信號歸結(jié)為總線,總線解開成為多個信號,顯示標尺間的時間。[0024]所述仿真得到的多通道數(shù)字信號波形和內(nèi)核匯編指令代碼的雙向自動化關(guān)聯(lián),即可以從內(nèi)核匯編指令代碼對應(yīng)到仿真得到的多通道數(shù)字信號波形,也可以從仿真得到的多通道數(shù)字信號波形對應(yīng)到相應(yīng)內(nèi)核匯編指令代碼。關(guān)聯(lián)的方向可以由用戶自己選擇。[0025]仿真得到的多通道數(shù)字信號波形與內(nèi)核匯編指令代碼采用CPU中的代表地址信息的特征寄存器進行雙向自動化關(guān)聯(lián)(如ARMCPU中可采用R15寄存器,下述R15即代表該地址信息寄存器),意味著通過多通道數(shù)字信號波形上的一個定位標尺可以將多通道數(shù)字信號波形上相應(yīng)的指令定位到與其對應(yīng)的內(nèi)核匯編指令代碼上,同時也可以通過選擇內(nèi)核匯編指令代碼,定位該內(nèi)核匯編指令代碼在多通道數(shù)字信號波形上出現(xiàn)的位置。[0026]如果選擇從內(nèi)核匯編指令代碼對應(yīng)到多通道數(shù)字信號波形,可通過在程序主框架內(nèi)的編輯框中設(shè)定搜索區(qū)間和輸入需要搜索的R15值,實現(xiàn)內(nèi)核匯編指令代碼與多通道數(shù)字信號波形的對應(yīng)。具體方式為,在內(nèi)核匯編指令代碼窗口中,通過選擇相應(yīng)的內(nèi)核匯編指令代碼,得到其對應(yīng)R15值。同時設(shè)定多通道數(shù)字信號波形上搜索的時間區(qū)域的邊界點A和B,即在時間點A到時間點B內(nèi)進行搜索。點擊搜索后程序自動在多通道數(shù)字信號波形上搜索該R15值,如果搜索成功,程序?qū)⒃谠摱嗤ǖ罃?shù)字信號波形區(qū)域中標記出所有匹配的波形,并將窗口視圖定位于第一個搜索結(jié)果處,同時在波形信息窗口顯示出搜索結(jié)果,即搜索區(qū)域和各匹配波形的時間點,通過點擊搜索結(jié)果可以直接將窗口視圖跳轉(zhuǎn)到匹配波形。如果搜索失敗,則在波形信息窗口中顯示出搜索結(jié)果,即搜索區(qū)域和未找到匹配波形。[0027]如果選擇從多通道數(shù)字信號波形對應(yīng)到內(nèi)核匯編指令代碼,可在波形窗口中通過鎖定R15信號通道和設(shè)置定位標尺位置,實現(xiàn)多通道數(shù)字信號波形與相應(yīng)內(nèi)核匯編指令代碼的對應(yīng)。具體方式為,首先對R15信號通道進行鎖定,之后通過滑動波形窗口中的一個定位標尺對該通道上的波形進行選擇,軟件會根據(jù)標尺所選擇的波形的值在內(nèi)核匯編指令代碼窗口將相應(yīng)內(nèi)核匯編指令代碼標識出來。[0028]以上通過【具體實施方式】對本發(fā)明進行了詳細的說明,但這些并非構(gòu)成對本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進,這些也應(yīng)視為本發(fā)明的保護范圍?!緳?quán)利要求】1.一種適用于多類型CPU的聯(lián)合仿真工具,其特征在于,包括:一可執(zhí)行鏈接格式ELF文件解釋器,用于提取可執(zhí)行鏈接格式ELF文件中的調(diào)試文件數(shù)據(jù),該調(diào)試文件數(shù)據(jù)包括調(diào)試信息和數(shù)據(jù)區(qū);一指令集反匯編器,用于加載調(diào)試文件數(shù)據(jù),并將調(diào)試文件內(nèi)部的調(diào)試信息和指令轉(zhuǎn)化為相應(yīng)內(nèi)核指令集的內(nèi)核匯編指令代碼;一波形文件解釋器,加載基于ASCII碼的文件格式VCD波形文件,通過讀取和解析基于ASCII碼的文件格式VCD波形文件,對基于ASCII碼的文件格式VCD波形文件中的仿真得到的多通道數(shù)字信號波形信息進行解釋,生成輸出波形的形式,并加載進內(nèi)存中;一波形顯示器,對內(nèi)存中存儲的被解釋過的仿真得到的多通道數(shù)字信號波形信息進行處理;一調(diào)試器用戶界面,位于所述波形顯示器上,負責調(diào)用所有后臺程序,加載并顯示輸入文件和動態(tài)調(diào)試程序;將所述內(nèi)核匯編指令代碼和處理后的仿真得到的多通道數(shù)字信號波形在各自的窗口中進行顯示,并且實現(xiàn)仿真得到的多通道數(shù)字信號波形和內(nèi)核匯編指令代碼的相互自動對應(yīng)。2.如權(quán)利要求1所述的聯(lián)合仿真工具,其特征在于:支持多種類型的CPU內(nèi)核,且通過所述調(diào)試器用戶界面進行選擇CPU內(nèi)核類型。3.如權(quán)利要求1所述的聯(lián)合仿真工具,其特征在于:所述調(diào)試器用戶界面橫縱軸分別為記錄著波形的采樣時間點和各數(shù)字信號通道;該調(diào)試器用戶界面能實現(xiàn)波形的放大和縮小,標尺,查找上下沿,程序追蹤;所述調(diào)試器用戶界面支持多通道數(shù)字信號波形信號數(shù)量的增加和減少,信號顏色的改變,手動改變信號擺放次序,多個信號歸結(jié)為總線,總線解開成為多個信號,顯示標尺間的時間。4.如權(quán)利要求1所述的聯(lián)合仿真工具,其特征在于:在多文檔視圖中,支持各子窗口的浮動和嵌入。5.如權(quán)利要求1所述的聯(lián)合仿真工具,其特征在于:所述波形顯示器為用戶個人電腦PCo6.如權(quán)利要求1所述的聯(lián)合仿真工具,其特征在于:所述仿真得到的多通道數(shù)字信號波形與內(nèi)核匯編指令代碼采用CPU中的代表地址信息的特征寄存器進行雙向自動化關(guān)聯(lián)。7.如權(quán)利要求1至6中任一所述的聯(lián)合仿真工具,其特征在于:所述仿真得到的多通道數(shù)字信號波形與內(nèi)核匯編指令代碼雙向自動化關(guān)聯(lián)是指,通過多通道數(shù)字信號波形上的一個定位標尺可以將多通道數(shù)字信號波形上相應(yīng)的指令定位到與其對應(yīng)的內(nèi)核匯編指令代碼上,同時也可以通過選擇內(nèi)核匯編指令代碼,定位該內(nèi)核匯編指令代碼在多通道數(shù)字信號波形上出現(xiàn)的位置?!疚臋n編號】G06F17/50GK103678747SQ201210352252【公開日】2014年3月26日申請日期:2012年9月19日優(yōu)先權(quán)日:2012年9月19日【發(fā)明者】丁穎,張萬強申請人:上海華虹集成電路有限責任公司