0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

仿真器和模擬器有什么不一樣?

ss ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師譚軍 ? 2018-10-11 14:53 ? 次閱讀

模擬器(simulator)是用于分析研究目標(biāo)系統(tǒng)本身,模擬器系統(tǒng)本身要跟目標(biāo)系統(tǒng)保持一致。例如飛行模擬器對于用戶來講其本身要跟真正的飛機(jī)一致;再比如gem5模擬器,其本身要跟CPU所有內(nèi)部行為一致(包括內(nèi)部運(yùn)行原理都要一致)。好的模擬器本身也可以仿真其目標(biāo)系統(tǒng),但不是所有模擬器都有這個特性。

仿真器(emulator)的目的是作為目標(biāo)系統(tǒng)的替代品,可以完全替代目標(biāo)系統(tǒng),完成其對外的功能,即仿真器系統(tǒng)只需要保證呈現(xiàn)給外部的行為跟目標(biāo)系統(tǒng)一致(不需要保證內(nèi)部運(yùn)行原理一致)。例如想在電腦上玩小時候玩的街機(jī)游戲,就需要在電腦上安裝一個街機(jī)仿真器(雖然很多人喜歡稱其為“街機(jī)模擬器”)。使用仿真器的目的是模擬目標(biāo)系統(tǒng)呈現(xiàn)出的運(yùn)行環(huán)境,仿真器保證的是完成目標(biāo)系統(tǒng)相同的行為,不在乎其內(nèi)部實(shí)現(xiàn)原理,再例如EMU8086仿真器,可以在另一臺非8086電腦上仿真8086微處理器的行為。即使再好的仿真器也不能作為模擬器用于研究目標(biāo)系統(tǒng)內(nèi)部運(yùn)行原理。針對gem5,其本身是一個CPU模擬器,但是因?yàn)槠湟材茏龅椒抡嫫骺梢酝瓿傻墓ぷ鳎╣em5運(yùn)行于Atmoic模式), 盡管其運(yùn)行速度相比真正CPU差很多,也可以認(rèn)為其是一個類似于EMU8086的CPU仿真器。但是盡管gem5運(yùn)行于亂序(Out Of Order, 簡稱O3)時,gem5可以被看做CPU模擬器,其內(nèi)部模擬的CPU各個模塊也不是完全一樣,所以也可以任務(wù),gem5是由仿真多個部件的仿真器構(gòu)成的??傊?,模擬器針對目標(biāo)系統(tǒng)內(nèi)部進(jìn)行模擬,仿真器用于仿真目標(biāo)系統(tǒng)對外的行為。

仿真器和模擬器的不同----程序運(yùn)行區(qū)別

在線仿真器ICE(In\ Circuit Emulator)能檢查運(yùn)行程序的處理器的狀態(tài)。實(shí)際上,ICE取代了(或仿真了)目標(biāo)板上的處理器,是一種強(qiáng)有力的工具。程序在ICE中可以實(shí)時運(yùn)行、調(diào)試。 模擬器(simulator)是完全基于主機(jī)程序的。它模擬了目標(biāo)處理器的功能和指令系統(tǒng),其用戶界面通常和仿真器的一樣或比較類似。模擬器最大的缺點(diǎn)是它僅能模擬處理器,而嵌入式系統(tǒng)經(jīng)常包含一個或更多重要的外圍部件。模擬器無能為力而且不能實(shí)時運(yùn)行程序。它只能起輔助作用進(jìn)行軟件粗調(diào)試,是純軟件的工具;而仿真器是硬件工具。

仿真器和模擬器的不同----工作過程區(qū)別

模擬器是模擬出原系統(tǒng)的一個抽象模型,而不需要真的去做真實(shí)系統(tǒng)要做的事情。因此它其實(shí)不具備真實(shí)系統(tǒng)的功能,只是當(dāng)某一功能執(zhí)行時,通常不必輸出功能執(zhí)行的結(jié)果,只是在simulator中記錄下由此引發(fā)的狀態(tài)變化。因此它通常用于設(shè)計(jì)初期的模型驗(yàn)證。

仿真器則更進(jìn)一步,要真正地去做所有真實(shí)系統(tǒng)能做的事情,只不過做的“過程”不同,它一般用于處理兼容性問題和在資源有限的條件下完成系統(tǒng)原型的實(shí)現(xiàn)。

如果把真實(shí)系統(tǒng)比作一個人的話,simulator就是這個人的一幅肖像畫,而emulator則是這個人的一個克隆人。

舉個例子,我們要實(shí)現(xiàn)一個p2p文件分發(fā)系統(tǒng)。

最開始的時候我們可以實(shí)現(xiàn)一個simulator:它用一個函數(shù)來模擬節(jié)點(diǎn)間的通信,這個函數(shù)的輸入是網(wǎng)絡(luò)性能(帶寬,跳數(shù)),輸出是通信時延————注意,并沒有真正的數(shù)據(jù)在傳輸和拷貝,甚至都沒有真正的節(jié)點(diǎn),我們只是模擬了通信時延這個“特征(feature)”。

接下來,我們把這個分發(fā)系統(tǒng)實(shí)現(xiàn)了,編譯成一個exe文件,但這時我們發(fā)現(xiàn)我們沒有足夠多的計(jì)算機(jī)來組成一個真實(shí)的、具有足夠規(guī)模的網(wǎng)絡(luò)來進(jìn)一步測試(通常p2p網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)成百上千),這時,我們可以寫一個emulator:它可以區(qū)分同一個計(jì)算機(jī)上的不同進(jìn)程,因此我們可以在一臺計(jì)算機(jī)上開100個進(jìn)程,這樣可以用100臺計(jì)算機(jī)模擬出10000臺計(jì)算機(jī)的網(wǎng)絡(luò)————注意,此時數(shù)據(jù)真的是通過Socket在傳輸,只不過有的數(shù)據(jù)走的是loopback口,并沒有真的進(jìn)網(wǎng)卡。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1018

    瀏覽量

    83741
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    875

    瀏覽量

    43220
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)類型不一樣和接口 怎么解決

    要怎么解決接口和產(chǎn)生的數(shù)據(jù)類型不一樣的問題,然后利用MYRIO的模擬輸出通道接到示波器里面為什么沒有波形啊,數(shù)據(jù)類型應(yīng)該是不一樣,要怎么解決這個問題呢?
    發(fā)表于 05-09 01:00

    FLASH的連接仿真器仿真與脫離仿真器的運(yùn)行問題,請問為什么會與屏上顯示的不一樣

    的參數(shù),是實(shí)際參數(shù)嗎?為什么會與屏上顯示的不一樣?此外,在兩塊DSP芯片互相傳輸?shù)膶?shí)驗(yàn)中,插著仿真器運(yùn)行時,傳輸無誤,但是斷電,拔掉仿真器,上電之后,傳輸就會出現(xiàn)錯誤。請問這個問題又是怎么回事?
    發(fā)表于 06-06 04:00

    DSP讀FPGA的DNA,請問為什么會出現(xiàn)仿真器在線運(yùn)行和片內(nèi)自動運(yùn)行結(jié)果不一樣的情況呢?

    致。但把程序燒進(jìn)6713,重啟運(yùn)行,總是顯示錯誤,并且經(jīng)常出現(xiàn)上電后HPI忙(HYDY為1)使得上位機(jī)直等待而系統(tǒng)黑屏,為什么?說明:6713讀FPGA時序已經(jīng)設(shè)計(jì)為默認(rèn),即SET\STROBE\HOLD時間均為最長。為什么會出現(xiàn)仿
    發(fā)表于 08-02 06:31

    這個仿真例程設(shè)置的參數(shù)一樣,為何會出現(xiàn)不一樣仿真結(jié)果?

    這個仿真例程設(shè)置的參數(shù)一樣,為何會出現(xiàn)不一樣仿真結(jié)果?
    發(fā)表于 12-23 09:08

    仿真器仿真時CCS報錯的原因?

    您好,我在使用2812的仿真器產(chǎn)生PWM控制MOSFET時,經(jīng)常出現(xiàn)CCS報錯的問題,如果把程序燒寫進(jìn)DSP就不會出現(xiàn)問題,使用仿真器控制DSP與把程序固化到DSP中,什么不一樣嗎?
    發(fā)表于 06-13 20:31

    風(fēng)速傳感和風(fēng)量傳感什么不一樣?

    風(fēng)速傳感和風(fēng)量傳感什么不一樣
    發(fā)表于 03-17 06:57

    SWD和傳統(tǒng)的調(diào)試方式什么不一樣

    SWD 仿真模式概念簡述先所說 SWD 和傳統(tǒng)的調(diào)試方式什么不一樣:首先給大家介紹下經(jīng)驗(yàn)之談:(): SWD 模式比 JTAG 在高速模式下面更加可靠. 在大數(shù)據(jù)量的情況下面 JT
    發(fā)表于 02-23 06:38

    8051系列單機(jī)編輯調(diào)試仿真器(8051模擬器)

    8051系列單機(jī)編輯調(diào)試仿真器(8051模擬器)
    發(fā)表于 08-05 08:21 ?177次下載
    8051系列單機(jī)編輯調(diào)試<b class='flag-5'>仿真器</b>(8051<b class='flag-5'>模擬器</b>)

    仿真器模擬器的不同_仿真器模擬器的區(qū)別簡單分析

    仿真器模擬器經(jīng)常被混淆,兩者有些許相似,但是是兩個不同的概念,本文為大家?guī)?b class='flag-5'>仿真器模擬器的區(qū)別簡單分析。
    發(fā)表于 01-05 14:27 ?8601次閱讀

    NFC與RFID什么不一樣?資料下載

    電子發(fā)燒友網(wǎng)為你提供NFC與RFID什么不一樣?資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-22 08:53 ?11次下載
    NFC與RFID<b class='flag-5'>有</b>什么<b class='flag-5'>不一樣</b>?資料下載

    氣密性測試與氣壓測試什么不一樣的呢?

    氣密性測試與氣壓測試什么不一樣的呢?
    發(fā)表于 12-27 15:38 ?4532次閱讀

    C++中不一樣的重載是什么

    這里想分享C++中不一樣的重載,即const重載。
    的頭像 發(fā)表于 02-21 14:02 ?765次閱讀
    C++中<b class='flag-5'>不一樣</b>的重載是什么

    PDSDK COM 套件參考手冊(仿真器/模擬器調(diào)試定制套件)

    PDSDK COM 套件參考手冊(仿真器/模擬器調(diào)試定制套件)
    發(fā)表于 05-05 19:29 ?0次下載
    PDSDK COM 套件參考手冊(<b class='flag-5'>仿真器</b>/<b class='flag-5'>模擬器</b>調(diào)試<b class='flag-5'>器</b>定制套件)

    PDSDK COM 套件參考手冊(仿真器/模擬器調(diào)試定制套件)

    PDSDK COM 套件參考手冊(仿真器/模擬器調(diào)試定制套件)
    發(fā)表于 06-26 19:21 ?0次下載
    PDSDK COM 套件參考手冊(<b class='flag-5'>仿真器</b>/<b class='flag-5'>模擬器</b>調(diào)試<b class='flag-5'>器</b>定制套件)

    不同芯片的DMA(Direct Memory Access)是不一樣

    不同芯片的DMA(Direct Memory Access)是不一樣
    的頭像 發(fā)表于 10-16 09:14 ?1558次閱讀