国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于PowerPCSoC架構(gòu)的仿真平臺設(shè)計方法

      文檔序號:9922156閱讀:698來源:國知局
      基于PowerPC SoC架構(gòu)的仿真平臺設(shè)計方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種仿真平臺設(shè)計方法。特別是涉及一種基于SystemC事務(wù)級建模,在PowerPC SoC仿真平臺基礎(chǔ)之上的基于PowerPC SoC架構(gòu)的仿真平臺設(shè)計方法。
      【背景技術(shù)】
      [0002]基于ESL(ESL,Electronic System Level)的SoC設(shè)計可以快速地搭建硬件平臺,并快速開發(fā)/驗證軟件應(yīng)用程序,進而確定系統(tǒng)的最優(yōu)架構(gòu),實現(xiàn)SoC的軟硬件的協(xié)同設(shè)計。ESL設(shè)計包含兩種技術(shù),一種是基于事務(wù)級建模的方法,該方法可利用SystemC語言對硬件模塊的行為進行精確建模,并以此完成系統(tǒng)驗證及設(shè)計空間探測,但精確的建模導(dǎo)致所描述的硬件平臺仿真速度過慢,無法運行規(guī)模較大的系統(tǒng)/應(yīng)用軟件,如操作系統(tǒng),高清視頻解碼等。另一種方法為虛擬機技術(shù),側(cè)重于對硬件功能的描述。因此,仿真速度較快,可運行操作系統(tǒng)等大規(guī)模系統(tǒng)或應(yīng)用軟件,但是過粗的建模精度導(dǎo)致無法對SoC架構(gòu)的優(yōu)劣進行評估。如何綜合以上兩種方法的優(yōu)點,在保證ESL設(shè)計精度的同時提高仿真速度已成為SoC設(shè)計方法學(xué)領(lǐng)域所關(guān)心的問題。
      [0003]PowerPC是一種由POWER架構(gòu)衍生出來的精簡指令集架構(gòu)的中央處理器。PowerPC架構(gòu)被公認為第二代高性能精簡指令集計算機的代表。PowerPC具有高性能,高穩(wěn)定性,可靠性,良好的軟件兼容,芯片性能選擇范圍大等優(yōu)勢,不僅用于大型服務(wù)器,個人PC上,而且廣泛應(yīng)用于汽車電子、航空電子、監(jiān)控設(shè)備、打印設(shè)備、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明所要解決的技術(shù)問題是,提供一種在保證ESL設(shè)計精度的同時提高仿真速度,使得用戶在沒有真實的硬件條件下就能夠進行軟件和硬件的協(xié)同開發(fā)以及功能驗證的基于PowerPC SoC架構(gòu)的仿真平臺設(shè)計方法。
      [0005]本發(fā)明所采用的技術(shù)方案是:一種基于PowerPCSoC架構(gòu)的仿真平臺設(shè)計方法,包括如下步驟:
      [0006]I)指令集仿真,采用QEMU虛擬機的動態(tài)二進制翻譯技術(shù)作為PowerPC SoC架構(gòu)仿真平的指令集仿真器進行指令集仿真;
      [0007]2)對仿真平臺中關(guān)鍵組件建模,基于SystemC事務(wù)級建模方法,完成了對主設(shè)備模塊和從設(shè)備模塊的精確建模,設(shè)計出具有完整功能的PowerPC SoC架構(gòu)的仿真平臺;
      [0008]3)中斷設(shè)計,實現(xiàn)仿真平臺的中斷系統(tǒng)。
      [0009]步驟I)所述的指令集仿真是在QEMU中PowerPC架構(gòu)的基礎(chǔ)上實現(xiàn)的,首先將所有PowerPC指令集添加到QEMU的指令表中,然后根據(jù)PowerPC指令的操作碼去查找QEMU指令表中的對應(yīng)指令。
      [0010]所述的QEMU指令表中包含兩部分,第一部分是根據(jù)指令操作碼的定義,把操作的數(shù)值存入QEMU指令表中,形成指令表的索引;第二部分是為了實現(xiàn)任一指令的功能所對應(yīng)的函數(shù),所述函數(shù)把相應(yīng)指令分解成微操作。[0011 ]步驟I)所述的指令集仿真具體包括:
      [0012]創(chuàng)建op.c文件,并定義所有的微操作函數(shù);op.c文件中每一個微操作函數(shù),都會生成一個固定的微操作特征值函數(shù),微操作特征值函數(shù)為每一個微操作分配一個固定的特征值,定義在創(chuàng)建的gen_op.h文件中,在創(chuàng)建的translate.c文件中將PowerPC指令翻譯成多個微操作特征值函數(shù),進而生成微操作特征值數(shù)組,根據(jù)微操作特征值數(shù)組,查找op.c文件所生成的微操作索引表,生成TB塊指令Buf fer,構(gòu)成PowerPC的指令集仿真器,從而進行指令集仿真。
      [0013]步驟2)中所述的主設(shè)備模塊包括SystemCWrapper和指令集仿真器;所述的從設(shè)備模塊包括:存儲器、tty顯示器、frame buffer幀緩存圖片顯示模塊和time時鐘模塊。
      [0014]步驟2)所述的對主設(shè)備模塊的精確建模包括:
      [0015]SystemC Wrapper實現(xiàn)一個類,在所述SystemC Wrapper實現(xiàn)的類上提供一個用于指令集仿真器訪問存儲器的函數(shù)接口 ISS to memory access,主設(shè)備模塊實現(xiàn)兩個線程,一個線程用于實現(xiàn)譯碼流程,根據(jù)當前的PC值進行譯碼工作;另外一個線程用于實現(xiàn)中斷處理功能;每一個線程內(nèi)部均為while(l)循環(huán)結(jié)構(gòu),以保證主設(shè)備模塊的持續(xù)運行;主設(shè)備模塊需要主動向從設(shè)備模塊發(fā)送讀寫請求,通過主設(shè)備模塊的read和write接口通過總線去讀取相應(yīng)從設(shè)備模塊的數(shù)據(jù);取指令需要頻繁地訪問存儲器,會浪費大量系統(tǒng)時間,為了節(jié)省這部分系統(tǒng)訪存時間,通過所述SystemC Wrapper實現(xiàn)的類上的函數(shù)接口,使指令集仿真器能夠直接訪問存儲器從而獲取指令和數(shù)據(jù);每一個主設(shè)備模塊都有一個地址映射表,用于記錄所有從設(shè)備的地址空間,通過所述地址映射表確定主設(shè)備模塊要訪問的從設(shè)備模塊的所對應(yīng)的編號。
      [0016]用于實現(xiàn)譯碼流程的線程中,每次循環(huán)體內(nèi)翻譯一個TB塊的程序并執(zhí)行;中斷線程中,每當有中斷到來時喚醒中斷線程,處理中斷,標記中斷標志位;在下一次譯碼流程開始時,如果發(fā)現(xiàn)已有中斷,保存當前PC值和狀態(tài)寄存器,跳轉(zhuǎn)到中斷偏移向量,執(zhí)行相應(yīng)的中斷服務(wù)程序,處理中斷。
      [0017]步驟2)所述的對從設(shè)備模塊的精確建模包括:
      [0018]從設(shè)備模塊中,寄存器以32位位寬形式定義,地址按4位對齊,實現(xiàn)兩個線程,一個線程用于實現(xiàn)從設(shè)備模塊基本功能,主要描述從設(shè)備模塊的基本功能;一個線程發(fā)出中斷,用于向主設(shè)備模塊告知從設(shè)備已經(jīng)完成主設(shè)備所要求的功能,每一個線程內(nèi)部均為while(I)循環(huán)結(jié)構(gòu),以保證從設(shè)備模塊的持續(xù)運行,通過睡眠喚醒機制實現(xiàn)從設(shè)備之間的同步。
      [0019]步驟3)所述的中斷設(shè)計,實現(xiàn)仿真平臺的中斷系統(tǒng)是,
      [0020]首先設(shè)計一個可讀標志位,所述標志位是在可用的地址空間內(nèi)開辟一塊地址空間,稱作同步全局變量;所述同步全局變量用一個byte表示,O表示不可讀,I表示可讀,為了保證地址對齊,開辟32位即4byte的地址空間,開始時,把所述的同步全局變量置成0,之后往從設(shè)備模塊寫入數(shù)據(jù),啟動從設(shè)備模塊開始工作,然后進入循環(huán)階段判斷同步全局變量是否置成I,如果同步全局變量為0,表明從設(shè)備模塊運行尚未結(jié)束,則循環(huán)等待;如果置成I,則表明從設(shè)備模塊運行結(jié)束,應(yīng)用程序繼續(xù)執(zhí)行;
      [0021 ] PowerPC架構(gòu)的中斷向量地址為0x500,當有中斷發(fā)生的時候,指令集仿真器首先保存當前的PC值和狀態(tài)寄存器,然后修改當前PC值為0x500,保證下次譯碼時取得的指令是地址0x500的指令,在0x500地址處通過memcopy函數(shù),把一條跳轉(zhuǎn)指令添加到0x500地址上,然后跳轉(zhuǎn)到中斷服務(wù)程序的首地址,執(zhí)行中斷服務(wù)程序;
      [0022]所述中斷服務(wù)程序包括匯編程序和C程序,為了保證應(yīng)用程序的正常運行,中斷服務(wù)程序需要保存現(xiàn)場,中斷服務(wù)程序利用匯編程序保存現(xiàn)場:選取一片可用的地址空間,把所有的通用寄存器和狀態(tài)寄存器壓入所述的地址空間中,之后調(diào)用跳轉(zhuǎn)指令,使匯編程序跳轉(zhuǎn)至C程序;C程序主要功能是實現(xiàn)中斷服務(wù),把同步全局變量置成I進行中斷處理,中斷處理完畢后,跳轉(zhuǎn)回匯編程序;此時匯編程序恢復(fù)現(xiàn)場,把壓入地址空間中的通用寄存器和狀態(tài)寄存器出棧,當所有寄存器出棧完畢后,調(diào)用指令rfi返還PC指針和狀態(tài)寄存器,應(yīng)用程序繼續(xù)執(zhí)行,從而完成基于PowerPC SoC架構(gòu)的高層次仿真平臺的設(shè)計。
      [0023]本發(fā)明的基于PowerPCSoC架構(gòu)的仿真平臺設(shè)計方法,實現(xiàn)了軟硬件的協(xié)同仿真,降低了設(shè)計風(fēng)
      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1