Charley Selvidge是Mentor,a Siemens Business的首席工程經理,待人謙遜有禮,同時深藏敏銳才智和精湛學識,能夠用通俗易懂的詞語解釋復雜概念。
正因如此,他在闡述硬件仿真發展前景時得心應手,這也正是他頗為精通的領域。在20世紀90年代末,Charley在馬薩諸塞州劍橋市的麻省理工學院(MIT)附近創辦了 Virtual Machine Works公司。據了解,VMW于1998年被IKOS Systems收購,之后于2002年加入Mentor。
圖:Charley Selvidge
盡管Charley常年變動,甚至貫穿整個美國遷至加利福尼亞州,但期間他從未間斷設計和完善新型仿真器。最新版的Veloce硬件仿真平臺就是他的杰作,這是一種名為Veloce Strato的數據中心友好型仿真平臺。
最近,Charley一直認為,硬件仿真器操作系統由仿真器軟件系統的自然演變而來。
為說明這一點,他用計算機系統做類比。“在計算機出現的早期,計算機沒有操作系統。程序員很快發現,在計算機硬件的低級操作和想要在計算機中運行的高級任務或程序之間創建標準軟件是非常有用的。”分層方法將提供一系列一致的服務,從而更容易地開發應用和程序,無需重新設置或重復開發通用的底層功能、庫,如打開文件或與計算機進行的其他交互應用。
Charley 對比仿真器并指出:“硬件仿真器包括底部可用于運行數字芯片硬件執行平臺以及可以在仿真器上運行的一系列應用型任務。”這些任務通常具有高級目標,例如對芯片功耗進行特征提取或處理運行于芯片內部處理器上的軟件應用。不論是哪種情況,整個芯片均需視為任務的一部分。
他補充道,這些確實是仿真器通常執行的高級且復雜的任務。操作系統內部仿真的一系列中間服務標準將高級任務和與仿真相關的低級、特定于機器的細節隔離開。
因此,Charley確定,操作系統對于仿真器而言是一個新穎的概念。
硬件仿真中的硬件和軟件可擴展性
所有仿真器均基于某種建模元器件,也就是說,是一種可以對芯片建模的設備。大多數建模元器件是以少量、中等或大量形式組裝,可以創建不同規模的系統。在此底層硬件之上是一種軟件編譯系統。仿真編譯器讀取數據庫或集成電路模型,并寫入數據流以配置仿真器中的建模元器件陣列,以形成芯片映射。
通常情況,使用計算機程序設計集成電路,這種程序可以執行以一種通常稱為硬件描述語言(HDL)的計算機語言編寫的電路描述。最常用的HDL是Verilog SystemVerilog和VHDL。電路描述確定了電路特性。將這些描述合并成一個真實的電路,并編譯成在仿真器上運行的模型。
據Charley介紹,獲得芯片模型后,設計師可將其加載到仿真器上,這是由仿真器的OS軟件執行的特定于機器的任務。OS還可以執行一些其他任務,包括運行和停止時鐘、訪問設計可見性數據,或將激勵應用于仿真模型以及收集其響應。他還提醒我們注意,功能性設計驗證任務包括向設備中寫入數據、從設備中提取數據、判斷設備是否正確,以及與之交互。
這些基本任務對于仿真器可以執行的最高級作業而言很普遍。他舉了幾個例子,包括對功耗進行特征提取、運行軟件和其他一些活動。這些最高級作業反過來調用底層服務的各種基本單元,以完成執行。Charley以提取可見性數據以確定功耗為例。這涉及在測試環境中運行設計、提取數據、處理數據以及向更多軟件提供數據以進行功耗運算。
擴展軟件復雜性是擴展的一個方面,也是一個好的示例。如果擁有如下OS會很有幫助:該OS能夠為更復雜任務提供一系列以更高級抽象方式(換言之,計算機編程方式)管理的基本功能和服務。Charley補充說:“設計師不想使用匯編語言編程。他們不想編寫自己的文件服務程序。現在,他們只需要編譯器和標準接口來實現功能。
仿真器OS擴展的第二方面是對多種型號的設備建模。一方面,設計師可以選擇對小規模的知識產權(IP)模塊建模,以適應一些小型仿真硬件資源。另一方面,設計師可以對CPU或大型互聯網開關芯片等完整片上系統(SoC)設計建模。這樣就產生了一系列面向軟件的挑戰,這些挑戰就是開發用于處理小模型和大模型的軟件兼容性。
他表示:“大型設計難以管理,但針對多種規模做出適當的權衡更具挑戰。一旦解決了軟件挑戰,將有利于在一個標準化的地方存儲解決方案。這個地方就是OS。”
為可見性等功能提供OS中的服務,能夠為小型設計和大型設計提供適當的功能支持,并且無需設計師掌握高效擴展的原理。
Charley說:“在以上這些方面中,OS是用于開發仿真器軟件的一種適當的軟件組織策略。”
硬件仿真應用程序
這讓Charley對硬件仿真產生了新觀點。與PC或手機一樣,硬件仿真正在進入“應用程序”世界。硬件仿真通過與消費類電子設備軟件基本相同的方式,為這些應用程序提供服務。
當處理“應用程序”等特定于應用的問題以及開發解決這些問題的軟件時,以無需編寫軟件即可完成任務方式封裝的較低級服務很有幫助。這些服務可以由操作系統通過一組應用程序編程接口(API)以可訪問的形式提供,API是一種較高級應用獲取底層服務的方法。
通過實施這種軟件組織(指OS和應用程序),設計師可以讓OS軟件平穩化,并確定一系列有效且一致的API。這種方法可以高效開發應用程序,無需考慮較低級細節,且支持不同版本硬件仿真平臺。
使用OS的另一方面是能夠通過提供具有透明度的適應層,將程序等較高級軟件元素與底層硬件中的變化隔離開。設計師使用這種方法開發的應用程序不會因硬件平臺的發展而變化,可以保護原始投資,供將來加以利用。無需重建舊軟件便可在新平臺上工作,因此設計師可以潛心開發可在多代平臺運行的新軟件。
他最后總結道:“像這樣的OS和“應用程序”軟件組織方法對于設計師而言獨特而有利。”接下來,我們請Charley繼續考慮操作系統,也許就會出現新一代的硬件仿真器。同時,我們之后要考慮的是硬件仿真的未來發展潛力。
-
仿真器
+關注
關注
14文章
1019瀏覽量
83843 -
計算機系統
+關注
關注
0文章
289瀏覽量
24149 -
編譯器
+關注
關注
1文章
1638瀏覽量
49197
發布評論請先 登錄
相關推薦
評論