仿真器種類
軟件仿真器
這種方法主要是使用計(jì)算機(jī)軟件來模擬運(yùn)行,實(shí)際的單片機(jī)運(yùn)行因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)。用戶不需要搭建硬件電路就可以對(duì)程序進(jìn)行驗(yàn)證,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最終的設(shè)計(jì)。
硬件仿真器
使用附加的硬件來替代用戶系統(tǒng)的單片機(jī)并完成單片機(jī)全部或大部分的功能。使用了附加硬件后用戶就可以對(duì)程序的運(yùn)行進(jìn)行控制,例如單步,全速,查看資源斷點(diǎn)等。硬件仿真是開發(fā)過程中所必須的。
仿真器的基本實(shí)現(xiàn)方式
1)商用CPU這是一種最簡(jiǎn)單的實(shí)現(xiàn)方式,直接采用最普通的商用CPU去設(shè)計(jì)仿真器。一般來說,CPU都有一些資源,如非屏蔽中斷,NMI,TRAP指令,Ready信號(hào)等等。在用商用CPU去設(shè)計(jì)仿真器時(shí),基本上都會(huì)采用這些指令式信號(hào),以達(dá)到單步Step,全速運(yùn)行Go,斷點(diǎn)Breakpoint的功能。用商用CPU去設(shè)計(jì)仿真器,一般來說其CPU的速度不能很快,
如像8051,196等是可以采用這種方式的。若CPU的速度很快,則無法去實(shí)現(xiàn)。因?yàn)榉抡嫫饕贑PU的地址,數(shù)據(jù)總線上截取或插入某些資訊。CPU的速度太快,則根本無法在時(shí)序上去做截取或插入資訊的動(dòng)作。用商用CPU去做仿真CPU,一般來說會(huì)碰到I/O管腳重整的困難,就像最簡(jiǎn)單的8051或83C196,其A/D總線都可復(fù)用成I/O。而仿真器是要提供所有有關(guān)CPU的資料給用戶。所以,實(shí)際上CPU是以地址/數(shù)據(jù)總線的方式在運(yùn)行。如用戶的設(shè)計(jì)是用I/O方式的話,仿真器就一定要重新整合一套I/O線路出來。這一點(diǎn)是最麻煩的地方,往往有些簡(jiǎn)單的仿真器就不能做到這一點(diǎn)。
2)采用特殊的仿真模式有的商用CPU會(huì)提供一些特殊的仿真模式,其CPU還是采用商用CPU。但當(dāng)CPU在上電或復(fù)位時(shí),如果在CPU的某些管腳上灌一些特殊的電平或序列,則CPU就會(huì)進(jìn)入一種特殊的仿真模式,如Philips的8051CPU,就是有一種叫“Hooks”的模式。進(jìn)入這種模式之后,CPU會(huì)在地址數(shù)據(jù)總線上分時(shí)地提供一些用于I/O重建的信息。有了這種特殊的仿真模式,仿真器進(jìn)行I/O重建相對(duì)來說比較簡(jiǎn)單一些,但往往會(huì)存在著一些時(shí)序方面的問題。畢竟進(jìn)入仿真模式之后的CPU的時(shí)序與普通CPU是有所不同的。如果用戶的設(shè)計(jì)非??量痰脑挘袝r(shí)會(huì)存在連不上目標(biāo)板的問題,并且,這時(shí)的CPU在跑很高的時(shí)鐘頻率會(huì)遇到困難。
3)使用專用仿真CPU–BondoutSilicon一般來說,當(dāng)CPU的速度很快時(shí),往往就需要專用的仿真CPU了。這時(shí)仿真器在控制方面,相對(duì)來說設(shè)計(jì)起來就比較簡(jiǎn)單。但此時(shí)仿真器的性能,已在很大程度上取決于仿真CPU了。仿真CPU設(shè)計(jì)得好,則相對(duì)來說仿真器的功能及穩(wěn)定度都會(huì)比較好。但是,由于仿真CPU是一款專用的CPU,對(duì)于芯片廠商來說生產(chǎn)的數(shù)量非常少,往往其測(cè)試程度不會(huì)很高,專用的仿真CPU或多或少都會(huì)有些問題,就像目前國內(nèi)仿真器普遍采用的W78958仿真CPU。這是Winbond為8051做的一種仿真CPU,其在中斷,I/O的驅(qū)動(dòng)能力等存在著問題。
4)利用BDM,JTAG方式當(dāng)CPU越來越復(fù)雜,速度越變?cè)娇鞎r(shí),以上方式都已不能滿足要求了。像PowerPC或Pentium,其內(nèi)部有MMU,Cache,并且可亂序執(zhí)行,以往傳統(tǒng)的總線方式都不可行了。JTAG的提出,最初是給測(cè)試用的,主要目的是為了測(cè)試器件是否焊好,是否存在短路或斷路。后來,一些CPU的廠商把這一概念引進(jìn)到了用于CPU內(nèi)部。把JTAG的移位寄存器全部連到CPU內(nèi)部的控制狀態(tài)寄存器,并增加一些仿真器專用的寄存器,如控制Memory的讀寫等。這時(shí),仿真器在硬件上面已變得很簡(jiǎn)單了,用戶設(shè)計(jì)目標(biāo)板時(shí),只要把幾個(gè)控制管腳電平設(shè)計(jì)正確,就可以實(shí)現(xiàn)在線實(shí)時(shí)控制。
-
仿真器
+關(guān)注
關(guān)注
14文章
1016瀏覽量
83645 -
硬件仿真器
+關(guān)注
關(guān)注
0文章
7瀏覽量
8638 -
軟件仿真器
+關(guān)注
關(guān)注
0文章
2瀏覽量
1714
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論