專利名稱:微處理器仿真器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種微處理器硬件仿真器,特別是涉及一種具有片內(nèi)XRAM (外部隨機(jī)存取存儲器)或可以外掛XRAM的微處理器的仿真器。
背景技術(shù):
隨著微處理器芯片技術(shù)的不斷發(fā)展,同時為滿足越來越多樣化的各種 實際應(yīng)用的需求,出現(xiàn)了很多內(nèi)部集成了片內(nèi)XRAM的微處理器芯片和可 以外掛XRAM的微處理器。作為針對微處理器芯片內(nèi)用戶程序調(diào)試的主要 工具,硬件仿真器必須能高效、方便、真實的仿真出產(chǎn)品芯片運(yùn)行用戶程 序時的各項功能和各種性能,其中當(dāng)然也包括微處理器芯片內(nèi)的XRAM或 外掛的XRAM的功能和性能。
無論是片內(nèi)XRAM還是外掛的XRAM都具有掉電后原存儲的數(shù)據(jù)丟失, 重新上電后XRAM內(nèi)數(shù)據(jù)隨機(jī)的特性。但是在實際中,對一定數(shù)量片內(nèi)或 外掛的XRAM而言,它們在重新上電后,其中的初始數(shù)據(jù)是各不相同的。 而對同一個片內(nèi)或外掛的XRAM而言,每次重新上電后,其中的初始數(shù)據(jù) 幾乎都是完全相同的。因此,由于在實際的產(chǎn)品中微處理器內(nèi)用戶程序?qū)?會面對的是極多數(shù)量的片內(nèi)或外掛XRAM,每次重新上電后對用戶程序而 言這些XR扁內(nèi)的數(shù)據(jù)都是各不相同的,對唯一的用戶程序而言認(rèn)為上電 后XRAM內(nèi)的數(shù)據(jù)是隨機(jī)的。但是,在仿真器中使用仿真芯片替代真實的 產(chǎn)品芯片,仿真芯片也只有唯一的一塊片內(nèi)或外掛的XRAM,在用戶程序
的開發(fā)、調(diào)試過程中一般只使用一套仿真器,上電后現(xiàn)有的仿真器也不會
去對XRAM進(jìn)行任何的操作,也就是說,用戶程序面對的是唯一的一塊片 內(nèi)或外掛XRAM。因此,對用戶程序而言,在重新上電后,面對的片內(nèi)或 外掛XRAM內(nèi)的數(shù)據(jù)幾乎每次都是相同的,并不是隨機(jī)的數(shù)據(jù)。這與產(chǎn)品 芯片真實使用情況下,用戶程序面對的是極多數(shù)量的片內(nèi)或外掛XRAM, 每次重新上電后對唯一的用戶程序而言這些XRAM內(nèi)的數(shù)據(jù)都是各不相同 的、不可預(yù)測的、隨機(jī)的情況不一致,造成了對用戶程序而言,在仿真器 上的工作環(huán)境與在真實產(chǎn)品時的工作環(huán)境的差異。
由于在仿真器中,每次上電后現(xiàn)有的仿真器不會去對XRAM進(jìn)行任何 操作,用戶程序面對的片內(nèi)或外掛XRAM內(nèi)的數(shù)據(jù)都是相同的,給用戶程 序造成了 XRAM內(nèi)數(shù)據(jù)不是隨機(jī)的假象。正常情況下,在上電后用戶程序 應(yīng)該初始化XRAM內(nèi)的數(shù)據(jù),然后才可以使用這些數(shù)據(jù)。如果用戶程序沒 有初始化XRAM內(nèi)需要使用的數(shù)據(jù)區(qū),或者這部分初始化程序存在錯誤導(dǎo) 致XRAM內(nèi)需要使用的數(shù)據(jù)區(qū)沒有初始化,仍舊維持上電后的數(shù)據(jù),將會 導(dǎo)致此后用戶程序直接使用XRAM中上電后就存在的這些數(shù)據(jù)。用戶程序 在仿真器上調(diào)試時,由于只有一塊唯一的XR細(xì),每次上電后看到的XRAM 內(nèi)的數(shù)據(jù)內(nèi)容都是相同的。如果由于用戶程序的錯誤而沒有初始化XRAM 內(nèi)需要使用的數(shù)據(jù)區(qū)(可能是較大的一塊區(qū)域,也可能只是一個字節(jié)), 就直接使用了其中上電后就存在的數(shù)據(jù),恰巧上電后XRAM這個區(qū)域內(nèi)存 在的數(shù)據(jù)是對用戶程序有效、有意義的數(shù)據(jù),用戶程序就可以正常的運(yùn)行 下去,而不會出現(xiàn)錯誤。由于同一套仿真器內(nèi)的同一塊片內(nèi)或外掛XRAM 每次上電后的數(shù)據(jù)幾乎都完全相同,存在上述錯誤的用戶程序在調(diào)試時,
總是能正常的工作,而無法體現(xiàn)出程序中的這一問題。但是當(dāng)這樣一個存 在上述問題的用戶程序在仿真器上調(diào)試通過后,大規(guī)模的應(yīng)用在產(chǎn)品芯片
上時,由于各個產(chǎn)品芯片片內(nèi)或外掛XRAM內(nèi)的數(shù)據(jù)上電后各不相同,具 有隨機(jī)性,用戶程序需要使用的區(qū)域內(nèi)的數(shù)據(jù)不可能都恰好都是有效數(shù) 據(jù),就會導(dǎo)致用戶程序的出錯,最終導(dǎo)致產(chǎn)品的問題,帶來不可估量的損 失。如果,上述的用戶程序需要使用的XRAM內(nèi)的這個數(shù)據(jù)區(qū)很小,例如 1或2個字節(jié),出現(xiàn)上述情況的概率將會很大。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種微處理器仿真器,可以確保同一 套仿真器內(nèi)每次上電后仿真芯片片內(nèi)或外掛的XRAM內(nèi)的數(shù)據(jù)是隨機(jī)的, 較為真實地模擬出用戶程序在大量真實產(chǎn)品芯片上配合實際XRAM工作的 環(huán)境。
為解決上述技術(shù)問題,本發(fā)明的微處理器仿真器包括仿真芯片、仿真 器處理器、與仿真器處理器相連接的隨機(jī)數(shù)發(fā)生器;仿真芯片內(nèi)具有微處 理器核,還包括位于仿真芯片片內(nèi)或者位于仿真芯片外外掛于所述仿真器 內(nèi)的XRAM,
所述微處理器核、仿真器處理器、位于仿真芯片片內(nèi)或者位于仿真芯 片外外掛于所述仿真器內(nèi)的XRAM三者通過數(shù)據(jù)/地址總線連接,仿真器處 理器通過數(shù)據(jù)/地址總線對仿真芯片片內(nèi)或外掛的XRAM進(jìn)行寫入數(shù)據(jù)的 操作;仿真器處理器向隨機(jī)數(shù)發(fā)生器發(fā)出命令,要求隨機(jī)數(shù)發(fā)生器產(chǎn)生隨 機(jī)數(shù)并返還給仿真器處理器。
由于采用本發(fā)明的微處理器仿真器,可以確保同一套仿真器內(nèi)每次上電后仿真芯片片內(nèi)或外掛的XRAM內(nèi)的數(shù)據(jù)對用戶程序而言都是隨機(jī)的, 較為真實地模擬出了用戶程序在大量真實產(chǎn)品芯片上配合實際XRAM工作 的環(huán)境,同時可以幫助用戶發(fā)現(xiàn)用戶程序中初始化XRAM部分的錯誤,可 以有效地保障用戶程序在仿真器上調(diào)試結(jié)果的可靠性和有效性,降低用戶 程序應(yīng)用到產(chǎn)品芯片時的風(fēng)險。
同時,如果出現(xiàn)用戶程序沒有成功初始化XRAM內(nèi)需要使用的區(qū)域就 直接使用了 XRAM上電后數(shù)據(jù)的錯誤,可以很容易的在使用本發(fā)明的仿真 器調(diào)試用戶程序時被發(fā)現(xiàn)。
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明
圖1是本發(fā)明的微處理器仿真器結(jié)構(gòu)示意圖(一),XRAM位于仿真芯 片內(nèi);
圖2是本發(fā)明的微處理器仿真器結(jié)構(gòu)示意圖(二), XRAM外掛于仿真 芯片外。
具體實施例方式
如圖1所示,XRAM5位于仿真芯片6片內(nèi)時,本發(fā)明的微處理器仿真器l 包括仿真芯片6、仿真器處理器2、隨機(jī)數(shù)發(fā)生器3。仿真芯片6內(nèi)具有微處 理器核4,微處理器核4 、 XRAM5、仿真器處理器2三者通過標(biāo)準(zhǔn)的數(shù)據(jù)/ 地址總線相連接。仿真器處理器2通過數(shù)據(jù)/地址總線對XRAM5進(jìn)行寫入數(shù) 據(jù)的操作。仿真器處理器2與隨機(jī)數(shù)發(fā)生器3連接,并向隨機(jī)數(shù)發(fā)生器3發(fā) 出命令,要求隨機(jī)數(shù)發(fā)生器3產(chǎn)生隨機(jī)數(shù)并返還給仿真器處理器2。隨機(jī)數(shù) 發(fā)生器3可以使用各種通用的單芯片形式的隨機(jī)數(shù)發(fā)生器芯片,仿真處理器2與隨機(jī)數(shù)發(fā)生器3間的連接形式根據(jù)選擇的隨機(jī)數(shù)發(fā)生器芯片3的對外接口來確定。
如圖2所示,XRAM8外掛在仿真芯片9外,且位于仿真器7內(nèi)的情況 下,本發(fā)明的微處理器仿真器7包括仿真芯片9、仿真器處理器2、隨機(jī) 數(shù)發(fā)生器3。仿真芯片9內(nèi)具有微處理器核4,微處理器核4、 XRAM8、仿 真器處理器2三者通過標(biāo)準(zhǔn)的數(shù)據(jù)/地址總線相連接。仿真器處理器2通 過數(shù)據(jù)/地址總線對外掛的XRAM8進(jìn)行寫入數(shù)據(jù)的操作。仿真器處理器2 與隨機(jī)數(shù)發(fā)生器連接3 ,仿真器處理器2可以向隨機(jī)數(shù)發(fā)生器3發(fā)出命令, 要求隨機(jī)數(shù)發(fā)生器3產(chǎn)生隨機(jī)數(shù)并返還給仿真器處理器2。
仿真器的工作原理是,仿真器在上電后首先處于監(jiān)控狀態(tài),仿真芯片 不工作,用戶程序也不運(yùn)行,仿真器先要完成自己的初始化之后才會進(jìn)入 運(yùn)行狀態(tài),進(jìn)入運(yùn)行狀態(tài)后,仿真芯片才開始工作,用戶程序開始運(yùn)行。
本發(fā)明利用這一特點,如圖1所示,當(dāng)仿真器1上電后處于監(jiān)控狀態(tài), 仿真芯片6和用戶程序還沒有開始工作和運(yùn)行時,由仿真器處理器2向隨 機(jī)數(shù)發(fā)生器3發(fā)出命令不斷取得隨機(jī)數(shù),并把這些隨機(jī)數(shù)填入到仿真芯片 6的片內(nèi)XRAM5中,進(jìn)行對整個XRAM5內(nèi)數(shù)據(jù)的初始化。當(dāng)仿真器1退出 監(jiān)控狀態(tài)進(jìn)入運(yùn)行狀態(tài)時,XRAM5內(nèi)的全部數(shù)據(jù)都已經(jīng)被初始化成隨機(jī)數(shù) 了 ,此時用戶程序通過微處理器核4訪問到的就不是同一塊XRAM5每次上 電時都固定的初始數(shù)據(jù),而是由仿真器處理器2填入的隨機(jī)數(shù)據(jù)了。仿真 器1每次上電時,都重復(fù)上述過程,仿真器處理器2每次都會從隨機(jī)數(shù)發(fā) 生器3那里取得隨機(jī)數(shù)并填入XR層5中,由于隨機(jī)數(shù)發(fā)生器3產(chǎn)生的隨機(jī) 數(shù)具有很好的隨機(jī)性,因此對XRAM5中的各個字節(jié)存儲單元而言,每次上
電后被初始化成相同數(shù)值的概率非常的小,這樣,每次重新上電后當(dāng)仿真器1進(jìn)入運(yùn)行狀態(tài),用戶程序看到的XRAM5內(nèi)的數(shù)據(jù)都是不同的、隨機(jī)的, 這就與用戶程序在大量的產(chǎn)品芯片上運(yùn)行時上電后看到的XRAM情況很接 近了。當(dāng)使用仿真器1調(diào)試用戶程序時,如果出現(xiàn)用戶程序沒有成功初始 化XRAM5內(nèi)需要使用的區(qū)域就直接使用了 XRAM5內(nèi)該區(qū)域內(nèi)數(shù)據(jù)的錯誤 時,由于重新上電時該區(qū)域內(nèi)的數(shù)據(jù)都會被重新初始化、隨機(jī)化,不可能 每次都恰好被初始化成有效、有意義的數(shù)據(jù),用戶程序的錯誤就很容易在 調(diào)試時就被發(fā)現(xiàn)出來了。
如圖2所示,當(dāng)外掛XRAM時是這樣的,仿真器7上電后處于監(jiān)控狀 態(tài),仿真芯片9和用戶程序還沒有開始工作和運(yùn)行時,由仿真器處理器2 向隨機(jī)數(shù)發(fā)生器3發(fā)出命令不斷取得隨機(jī)數(shù),并把這些隨機(jī)數(shù)填入到仿真 芯片9外掛的XRAM8中,進(jìn)行對整個XRAM8內(nèi)數(shù)據(jù)的初始化。當(dāng)仿真器7 退出監(jiān)控狀態(tài)進(jìn)入運(yùn)行狀態(tài)時,XRAM8內(nèi)的全部數(shù)據(jù)都已經(jīng)被初始化成隨 機(jī)數(shù)了,此時用戶程序通過微處理器核4訪問到的就不是同一塊XRAM8 每次上電時都固定的初始數(shù)據(jù),而是由仿真器處理器2填入的隨機(jī)數(shù)據(jù) 了。仿真器7每次上電時,都重復(fù)上述過程,仿真器處理器2每次都會從 隨機(jī)數(shù)發(fā)生器3那里取得隨機(jī)數(shù)并填入XRAM8中。
權(quán)利要求
1. 一種微處理器仿真器,包括仿真芯片、仿真器處理器、位于仿真芯片片內(nèi)或者位于仿真芯片外外掛于所述仿真器內(nèi)的XRAM,仿真芯片內(nèi)具有微處理器核,其特征在于還包括與仿真器處理器相連接的隨機(jī)數(shù)發(fā)生器;所述微處理器核、仿真器處理器、位于仿真芯片片內(nèi)或者位于仿真芯片外外掛于所述仿真器內(nèi)的XRAM三者通過數(shù)據(jù)/地址總線連接,仿真器處理器通過數(shù)據(jù)/地址總線對仿真芯片片內(nèi)或外掛的XRAM進(jìn)行寫入數(shù)據(jù)的操作;仿真器處理器向隨機(jī)數(shù)發(fā)生器發(fā)出命令,要求隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)并返還給仿真器處理器。
2、 如權(quán)利要求1所述的微處理器仿真器,其特征在于在上電后的 所述仿真器初始化過程中,所述仿真器處理器從隨機(jī)數(shù)發(fā)生器取得隨機(jī) 數(shù),并填入到仿真芯片片內(nèi)或外掛的XRAM中,對XRAM內(nèi)數(shù)據(jù)初始化。
全文摘要
本發(fā)明公開了一種微處理器仿真器,包括仿真芯片,仿真器處理器,隨機(jī)數(shù)發(fā)生器。仿真器處理器可以通過數(shù)據(jù)/地址總線對仿真芯片片內(nèi)或外掛的XRAM進(jìn)行寫入數(shù)據(jù)的操作。仿真器處理器可以向隨機(jī)數(shù)發(fā)生器發(fā)出命令,要求隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)并返還給仿真器處理器。在上電后的仿真器初始化過程中,仿真器處理器從隨機(jī)數(shù)發(fā)生器取得隨機(jī)數(shù),并填入到仿真芯片片內(nèi)或外掛的XRAM中,對XRAM內(nèi)數(shù)據(jù)初始化。本發(fā)明可以較為真實地模擬出用戶程序在真實產(chǎn)品芯片上配合實際XRAM工作的環(huán)境,可以幫助用戶發(fā)現(xiàn)用戶程序中初始化XRAM部分的錯誤,從而有效地保障用戶程序在仿真器上調(diào)試結(jié)果的可靠性和有效性,降低用戶程序應(yīng)用到產(chǎn)品芯片時的風(fēng)險。
文檔編號G06F11/36GK101206615SQ20061014751
公開日2008年6月25日 申請日期2006年12月20日 優(yōu)先權(quán)日2006年12月20日
發(fā)明者許國泰 申請人:上海華虹集成電路有限責(zé)任公司