天目全數(shù)字實時仿真軟件SkyEye作為基于可視化建模的硬件行為級仿真平臺,能夠為嵌入式軟件提供虛擬化運行環(huán)境,開發(fā)、測試人員可在該虛擬運行環(huán)境上進行軟件開發(fā)、軟件測試和軟件驗證活動。小到芯片,大到系統(tǒng),SkyEye均可進行模擬。
1936年,被譽為“計算機科學與人工智能之父”的艾倫·圖靈在其著作中證明了一個能夠執(zhí)行任何可計算序列的通用計算機的可行性[1],奠定了計算機仿真技術的理論基礎。20世紀50年代,世界上第一臺“商用程序內藏式電子計算機”EDSAC項目便使用了這一理論,其所使用的錯誤診斷技術中的“STEP-BY-STEP”技術已具備當前處理器仿真中常用的“解釋執(zhí)行”特性[2]。
(資料圖片)
隨著計算機硬件性能飛速提高和軟件技術的不斷進步,計算機仿真技術也取得了長足的發(fā)展,并進入廣泛實用階段,已被應用于移植異構計算機、研制處理器、開發(fā)和測試操作系統(tǒng)以及應用軟件、檢測病毒、虛擬化服務器等領域。
在應用仿真的諸多領域之中,嵌入式軟件開發(fā)測試憑借以下特點,在仿真技術的適用性上顯得尤為突出:
(1) 復雜的交叉開發(fā)環(huán)境:仿真能夠避免可執(zhí)行文件的下載操作;
(2) 相對低速的嵌入式處理器:仿真所造成的性能損耗能夠被PC機運行速度克服,甚至超過真實目標機的運行速度;
(3) 高可靠性要求的嵌入式軟件:避免物理測試環(huán)境的缺乏及其固有缺陷。
使用仿真技術來構建嵌入式軟件虛擬驗證系統(tǒng)的方式越來越受到重視。
作為仿真技術中最為適合嵌入式軟件的類型,全數(shù)字實時仿真技術指在達到仿真目標硬件平臺實時性要求的基礎上,對仿真目標進行純軟件模擬。
嵌入式領域中的全數(shù)字實時仿真,指通過軟件方式對嵌入式板塊的SoC以及各種外設進行建模,并實現(xiàn)功能級別的仿真,其實時性能夠和真實硬件相媲美。其主要價值在于可以脫離硬件,及時甚至提早進行功能開發(fā)和非干預的驗證,且仿真結果和硬件平臺的運行結果保持一致。
龍芯中科作為國內知名的自主CPU設計供應商,面向國家信息化建設需求,現(xiàn)已推出三個系列(龍芯一、二、三號)多款CPU,且自研LoongArch指令集。本文主要聚焦于龍芯二號系列產品:龍芯2K1000處理器。
龍芯2K1000處理器主要面向于網絡應用,兼顧平板應用及工控領域應用。采用40nm工藝,片內集成2個GS264處理器核,與MIPS64體系結構兼容,主頻1GHz,64位DDR3控制器,以及各種系統(tǒng)IO接口。
龍芯2K1000結構圖如下:
▲ 龍芯2K1000結構圖
使用SkyEye平臺對龍芯2K1000進行仿真,共分為三步:
第一步:基于SkyEye的設備建模工具,完成龍芯2K1000板卡上CPU和外設功能級的建模,形成動態(tài)鏈接庫提供給SkyEye仿真引擎使用。
第二步:按照龍芯2K1000結構圖,在SkyEye Workstation的建模區(qū)域,通過拖拽基本模塊(第一步中完成的)、配置外設和總線屬性完成龍芯2K1000板卡級的建模,此時已經得到一塊全數(shù)字的仿真板卡。
第三步:創(chuàng)建SkyEye的啟動腳本,對應物理板卡的燒錄流程。
SkyEye已經支持龍芯2K1000,并在該仿真板卡成功運行Linux3.10(使用gcc4.9編譯),在串口中可以輸入Shell命令和Linux進行交互。以下為運行過程:
參考文獻
[1] Turing A M. On Computable Numbers, with an Application to the Entscheidungsproblem[J]. Proceedings of the London Mathematical Society, 1936, 42(1):230-265.
[2] Gill S. The Diagnosis of Mistakes in Programmes on the EDSAC[J]. Proceedings of the Royal Society A Mathematical Physical & Enginee ring Sciences, 1951, 206(1087):538-554.
標簽: