• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      專用SoC仿真系統(tǒng)的研究與實(shí)現(xiàn)

      2014-04-25 09:44:04李長(zhǎng)波
      關(guān)鍵詞:流程圖寄存器指令

      李長(zhǎng)波

      (蕪湖職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241000)

      在企業(yè)的研發(fā)中,經(jīng)常遇到硬件軟件化和軟件硬件化的問(wèn)題。本文論述的是一個(gè)硬件軟件化的問(wèn)題,用軟件仿真硬件,使用戶在軟件仿真的環(huán)境中完成需要硬件才可以完成的工作。對(duì)于各種專用SoC,硬件軟件化的平臺(tái)搭建有較高的技術(shù)含量。

      1 專用SoC的硬件構(gòu)成

      圖1為SoC芯片的構(gòu)成框圖[1],由圖1可以看出,該芯片有十大模塊構(gòu)成,分別是主控MCU、電源、觸摸屏、雙時(shí)鐘、UART、SPI、LCD 控制器、FLASH 驅(qū)動(dòng)、I/O口和存儲(chǔ)器。專用SoC是針對(duì)某一類特定需求而設(shè)計(jì)。圖1所示的IC是為了詞典機(jī)設(shè)計(jì)的框架,每一個(gè)應(yīng)用模塊都有對(duì)應(yīng)的用途。主控SoC調(diào)度所有的模塊,而且其中還包含累加器、RAM、各種寄存器等資源。存儲(chǔ)器是線性存儲(chǔ)器,要求容量大,存放數(shù)量龐大的詞典數(shù)據(jù)。雙時(shí)鐘模塊要實(shí)現(xiàn)高速運(yùn)算和計(jì)時(shí)功能,開(kāi)機(jī)時(shí)高速運(yùn)算,關(guān)機(jī)時(shí)保留低速時(shí)鐘計(jì)時(shí);I/O口模塊可以外加各種DSP,如語(yǔ)音,也可以設(shè)計(jì)按鍵。FLASH驅(qū)動(dòng)用來(lái)存放可以被用戶修改的數(shù)據(jù)。LCD控制器外接COG類的LCD 作為顯示設(shè)備[2]。

      圖1 SoC的基本構(gòu)成

      2 SoC仿真系統(tǒng)的原理

      2.1 主控SoC的仿真模型的建立[3]

      SoC內(nèi)部有4個(gè)部分要建立模型:累加器、RAM、FLASH、各類寄存器。根據(jù)所仿真的SoC的類型,抽象出它的數(shù)據(jù)模型,如SoC的位數(shù)等。圖2是SoC的基本框圖,從圖2中可以看出,要建立的仿真模型有累加器ACC、寄存器、RAM。寄存器包括SoC各種功能寄存器,如狀態(tài)寄存器、堆棧寄存器、通用寄存器、特殊寄存器等,并且要清楚每個(gè)寄存器每個(gè)位的功能。RAM也包含較多的內(nèi)涵,如全局變量、局部變量、堆棧區(qū)以及特殊變量等的仿真,都需要嚴(yán)密的算法,來(lái)保證結(jié)果的正確。

      圖2 處理單元的基本構(gòu)成

      2.2 其它模塊仿真模型的建立[3]

      其它模塊包括:觸摸屏、雙時(shí)鐘、UART、SPI、LCD控制器、FLASH驅(qū)動(dòng)、I/O口和存儲(chǔ)器模塊。對(duì)于每一個(gè)外設(shè),系統(tǒng)都為它定義好數(shù)學(xué)模型的同時(shí),開(kāi)一個(gè)或多個(gè)線程完成對(duì)其功能的仿真。圖3為觸摸屏的仿真流程圖,圖4為FLASH的仿真流程圖。從圖3中可以看出,觸摸屏要處理單擊、雙擊和拖動(dòng)三個(gè)事件;FLASH要處理扇區(qū)讀寫(xiě)問(wèn)題,而且在寫(xiě)的時(shí)候,要完成先擦出后寫(xiě)入的功能。其它模塊與此類似,不重復(fù)敘述。

      圖3 觸摸屏仿真流程圖

      圖4 FLASH讀寫(xiě)流程圖

      2.3 指令仿真模型的建立[3]

      指令仿真是系統(tǒng)非常關(guān)鍵的部分,每一條指令按照它對(duì)應(yīng)的時(shí)序、操作的寄存器、影響的狀態(tài)位、影響的堆棧等都要準(zhǔn)確仿真(圖5)。而且對(duì)于指令仿真,不僅要建立單個(gè)指令的數(shù)據(jù)模型,還要建立整個(gè)數(shù)據(jù)指令集合的處理系統(tǒng)。

      圖5 MCS-51的取指時(shí)序

      時(shí)序?qū)蝹€(gè)指令非常關(guān)鍵,下面以總線數(shù)據(jù)寫(xiě)為例加以說(shuō)明。從圖5可以看出,每一個(gè)時(shí)間點(diǎn)要非常準(zhǔn)確,系統(tǒng)在進(jìn)行指令仿真時(shí),必須按時(shí)鐘準(zhǔn)確計(jì)算。所以,仿真只能是高速I(mǎi)C仿真低速I(mǎi)C。

      圖6是SoC主控芯片左移指令的流程圖,從圖6中可以看出,指令操作就是數(shù)據(jù)結(jié)構(gòu)的操作,所以,數(shù)據(jù)結(jié)構(gòu)的定義非常關(guān)鍵。當(dāng)前芯片的架構(gòu)主要是ARM和MIPS,而指令集基本使用RISC(Reduced Instruction Set Computing)指令集,所以仿真相對(duì)規(guī)范。

      圖6 左移指令流程圖

      把SoC主芯片的指令全部用程序解釋出來(lái)之后,這些子模塊需要進(jìn)行管理。本系統(tǒng)建立了一個(gè)指針隊(duì)列加以管理。每個(gè)元素的信息如圖7所示,其顯示了指令集的管理結(jié)構(gòu)。其中指令是一個(gè)指針,指向?qū)?yīng)的指令子模塊,優(yōu)先級(jí)依據(jù)RISC指令集提供信息確定,脈沖數(shù)是該指令占用多少個(gè)脈沖,時(shí)間是該指令執(zhí)行完所消耗的總時(shí)間。

      圖7 指令集管理結(jié)構(gòu)

      3 SoC仿真系統(tǒng)的實(shí)現(xiàn)

      系統(tǒng)使用VC開(kāi)發(fā)平臺(tái)設(shè)計(jì)完成,在開(kāi)發(fā)的過(guò)程中,大量使用宏定義,有較好的可移植性。

      3.1 總體設(shè)計(jì)

      系統(tǒng)劃分的模塊[4]如圖8所示,共分為5大模塊,分別是處理器模塊、存儲(chǔ)器模塊、指令模塊、外設(shè)模塊和人機(jī)接口模塊。處理器模塊完成處理器的數(shù)據(jù)定義、參數(shù)設(shè)置、程序運(yùn)行等功能;存儲(chǔ)器模塊完成處理器的數(shù)據(jù)定義、參數(shù)設(shè)置、讀寫(xiě)運(yùn)算等功能;指令模塊完成指令的仿真、指令集合的管理、指令的調(diào)用機(jī)制等功能;外設(shè)模塊完成外設(shè)的數(shù)據(jù)定義、參數(shù)設(shè)置、功能仿真等功能;人機(jī)接口模塊處理系統(tǒng)與用戶的接口。

      圖8 總體模塊的劃分

      3.2 詳細(xì)設(shè)計(jì)

      總體設(shè)計(jì)把系統(tǒng)分成五部分大的模塊,這些模塊還要繼續(xù)分割成小的模塊。模塊越小,任務(wù)越清晰,這是軟件設(shè)計(jì)的基本步驟。這里只以處理器模塊來(lái)加以說(shuō)明,其它的模塊省略。從圖9中可以看出,處理器模塊又劃分出四個(gè)小模塊,分別是現(xiàn)場(chǎng)模塊、指令模塊、時(shí)序模塊和計(jì)算模塊?,F(xiàn)場(chǎng)模塊完成SoC主芯片的累加器、寄存器、RAM等功能;指令模塊完成指令的仿真設(shè)計(jì)和管理;時(shí)序模塊完成SoC晶振的仿真和計(jì)算功能;計(jì)算模塊完成上述三個(gè)模塊的集成及綜合處理的功能。這些小模塊還可以繼續(xù)劃分,直到分成可以直接寫(xiě)子函數(shù)為止,并且完成流程圖。

      圖9 處理器模塊的劃分

      3.3 代碼轉(zhuǎn)化

      根據(jù)詳細(xì)設(shè)計(jì)的流程圖,程序員可以完成代碼的轉(zhuǎn)化。流程圖代碼化屬于正向工程范疇,先將流程圖轉(zhuǎn)化成流程樹(shù),樹(shù)有根節(jié)點(diǎn)和子節(jié)點(diǎn),根節(jié)點(diǎn)表示整個(gè)流程,子節(jié)點(diǎn)可以是控制節(jié)點(diǎn)或代碼節(jié)點(diǎn)。控制節(jié)點(diǎn)可以實(shí)現(xiàn)順序、分支、循環(huán)等控制;代碼節(jié)點(diǎn)實(shí)現(xiàn)函數(shù)調(diào)用、表達(dá)式或代碼段,然后再對(duì)流程樹(shù)進(jìn)行深度優(yōu)先的遍歷,輸出每個(gè)流程節(jié)點(diǎn)所表示的代碼,最終得到源文件[5-6]。

      3.4 程序測(cè)試

      程序測(cè)試是指對(duì)一個(gè)完成了全部或部分功能、模塊的計(jì)算機(jī)程序在正式使用前的檢測(cè),以確保該程序能按預(yù)定的方式正確地運(yùn)行。測(cè)試可以分成白盒測(cè)試、黑盒測(cè)試和灰盒測(cè)試。系統(tǒng)完成之后,通過(guò)測(cè)試才可以交付使用。本系統(tǒng)使用灰盒測(cè)試法,主要由程序設(shè)計(jì)人員自己完成邏輯覆蓋測(cè)試和功能覆蓋測(cè)試。

      4 結(jié)束語(yǔ)

      本系統(tǒng)完成專用SoC在PC機(jī)上的軟仿真,完成了SoC的軟化功能。本系統(tǒng)的應(yīng)用在兩個(gè)方面:一是產(chǎn)品開(kāi)發(fā),二是宣傳品制作。開(kāi)發(fā)一款電子產(chǎn)品,若軟件工作量大,則軟開(kāi)發(fā)平臺(tái)非常重要。因?yàn)檐浖嗳送瓿?,軟開(kāi)發(fā)平臺(tái)有高效率和低成本的特點(diǎn),現(xiàn)在很多此類廠商都使用軟件開(kāi)發(fā)平臺(tái)。另外,當(dāng)前互聯(lián)網(wǎng)的影響非常大,如果能把你的產(chǎn)品做成演示版放在互聯(lián)網(wǎng)上宣傳,效果非常好,仿真軟件在這個(gè)方面起到很大作用。

      [1]張志良.單片機(jī)原理與控制技術(shù)[M].2版.北京:機(jī)械工業(yè)出版社,2007.

      [2]袁志勇.嵌入式系統(tǒng)原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2009.

      [3]徐士良.計(jì)算機(jī)軟件技術(shù)基礎(chǔ)[M].3版.北京:清華大學(xué)出版社,2010.

      [4]奈霍夫.數(shù)據(jù)結(jié)構(gòu)與算法分析[M].2版.北京:清華大學(xué)出版社,2006.

      [5] Donald Hearn,Pauline Baker.Computer Graphics C Version[M].北京:清華大學(xué)出版社,1998.

      [6]黃維通,姚瑞霞.Visual C++程序設(shè)計(jì)教程[M].北京:機(jī)械工業(yè)出版社,2001.

      猜你喜歡
      流程圖寄存器指令
      聽(tīng)我指令:大催眠術(shù)
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      ARINC661顯控指令快速驗(yàn)證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      專利申請(qǐng)審批流程圖
      河南科技(2016年8期)2016-09-03 08:08:22
      專利申請(qǐng)審批流程圖
      河南科技(2016年6期)2016-08-13 08:18:29
      寧??h村級(jí)權(quán)力清單36條
      坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
      《天津醫(yī)藥》稿件處理流程圖
      榆社县| 壶关县| 巩留县| 株洲市| 峨边| 长乐市| 永泰县| 鞍山市| 桦川县| 合江县| 沿河| 甘肃省| 台安县| 南召县| 禹城市| 勃利县| 友谊县| 濮阳市| 随州市| 边坝县| 丹江口市| 昌乐县| 增城市| 子洲县| 安福县| 巨野县| 英德市| 和田市| 西充县| 通化县| 临泽县| 武川县| 成都市| 璧山县| 泊头市| 绵阳市| 类乌齐县| 四会市| 德惠市| 叶城县| 东平县|