2013-05-29 74 views

回答

3

你的問題相當寬泛/模糊。但是在這裏。

從你所問的背景來看,手臂模擬器可能是一個指令集模擬器。就像處理器一樣,軟件解碼指令,跟蹤寄存器並模擬執行(如果一條指令說r1加1,那麼你的軟件中有一個代表r1的變量,並且你加了一個r1)。

一個verilog模擬器,與其他語言沒有什麼不同。 verilog是一種硬件設計語言,在你模擬之前你需要編譯它。就像任何其他高級語言一樣,它需要被編譯成與目標相關的東西。模擬器將擁有自己的目標邏輯塊。 Verilog被編譯到這些塊中,然後模擬這個邏輯,與手臂模擬器不同。對於每個時鐘週期,根據前一週期所連接塊的輸出更新每個邏輯元件的輸入,然後評估每個邏輯元件並確定輸出。永遠重複。對於每個Verilog仿真器,其核心都有不同的目標,部分原因是爲什麼您可以從同一代碼的每個仿真器獲得不同的結果。同樣,當你爲實際目標,fpga,asic等編譯時,它的編譯方式與模擬器不同(或者可以,取決於環境,模擬器等)。

這些模擬器對於任何這些模擬器都沒有什麼神奇的地方,一個指令集模擬器通常很容易編寫,對於想要獲得對指令集或計算機工作方式的深入瞭解的任何人來說,這是一項有價值的任務(從某件事開始小如lc-3,應該少於半小時)。一個FAST模擬器,這是另一個故事,但是一個FUNCTIONAL模擬器相當容易編寫。一旦編譯到簡單邏輯組件的網表,一個verilog模擬器也是很容易的,但最大的任務是評估和解析代碼以獲取信號和邏輯功能列表的信號和項目的數量,以及誰與什麼。不像指令集模擬器那麼簡單,但它的工作原理和工作原理是非常容易理解的...... Verilator非常酷,因爲它將它變成C++代碼行,很多行,而且大小合適的項目可能需要幾個小時甚至在尖叫的機器上進行編譯。 (提示關閉波形以縮短編譯時間)。但是當你看到正在發生的事情時,這個任務是可以理解的。

+0

我嘗試了谷歌搜索,我發現的所有文檔都是相同的,但是有沒有更多關於此ARM模擬器的鏈接? – chitranna

+0

有沒有「一個」手臂模擬器,有很多。 –

+0

我的意思是其中的任何一個詳細閱讀 – chitranna