




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
采用VHDL語言在FPGA上實現(xiàn)WolfMCU體系結(jié)構(gòu)的設(shè)計嵌入式系統(tǒng)往往執(zhí)行比較單一的任務(wù),針對某種特定應(yīng)用而專門設(shè)計,但目前在嵌入式系統(tǒng)中采用的微處理器絕大部分都是通用嵌入式微處理器,其通用的指令集面對千差萬別的嵌入式應(yīng)用時暴露出專用性差,執(zhí)行效率低的弱點。另一個問題是,目前應(yīng)用的嵌入式微處理器都是硬核,功能模塊和指令集都是固定的,當應(yīng)用發(fā)生較大變化時,很難通過對微處理器功能模塊和指令集進行擴展來適應(yīng)變化,往往只能換用一款新的微處理器,甚至重新設(shè)計整個嵌入式系統(tǒng)的硬件和軟件,浪費了大量的時間和金錢。因此,如何提高指令集的針對性,提高指令的執(zhí)行效率以及如何增強嵌入式微處理器的擴展能力成了困擾嵌入式系統(tǒng)開發(fā)人員的兩個難題。1.ASIP和FPGAASIP的提出是微處理器設(shè)計理念的一項重大創(chuàng)新。ASIP(Application-SpecificInstructionsetProcessor)即專用指令集處理器,它相對傳統(tǒng)微處理器最大的特點就是其指令集針對特定應(yīng)用專門設(shè)計,一條指令就可以完成該種應(yīng)用常做的一系列運算,例如一些常用算法,這樣就極大的提高了指令的執(zhí)行效率,往往若干條普通指令幾十個時鐘周期完成的操作用一條專用指令幾個時鐘周期就完成了。采用ASIP理念設(shè)計微處理器可以在很大程度上解決上一節(jié)提到的指令集專用性差,指令執(zhí)行效率低的問題,但這是要付出代價的,因為這些專用指令一般需要專門硬件電路支持才能實現(xiàn)。ASIP用傳統(tǒng)的集成電路技術(shù)實現(xiàn)是不現(xiàn)實的,集成電路設(shè)計復雜,開發(fā)周期長,定型后無法進行擴充,這樣每遇到一種新應(yīng)用,就得重新設(shè)計一款專用芯片,成本是不可接受的,這在一個時期內(nèi)限制了ASIP的發(fā)展,直到FPGA(FieldProgrammableGateArray,現(xiàn)場可編程門陣列)的出現(xiàn),才為ASIP的實現(xiàn)提供了可能。FPGA內(nèi)部包含可配置邏輯模塊CLB(ConfigurableLogicBlock),可以方便的用硬件描述語言進行開發(fā)。硬件描述語言描述要實現(xiàn)的電路的功能,經(jīng)過編譯、綜合形成配置FPGA芯片的字節(jié)碼文件,經(jīng)下載后就可以在CLB內(nèi)部形成一塊模擬的專用電路,功能與實際電路完全一樣,這樣就可以實現(xiàn)對ASIP中專用指令的支持。用FPGA實現(xiàn)ASIP,相對傳統(tǒng)的集成電路來說,最大的優(yōu)點是擴展性好,遇到新應(yīng)用時,完全可以對一個較小的軟核原型進行擴充,通過添加新模塊,實現(xiàn)對針對該應(yīng)用設(shè)計的專用指令的支持,迅速完成新的設(shè)計。此外,F(xiàn)PGA還有設(shè)計方便,開發(fā)周期短,可重復編程等優(yōu)點?;谝陨嫌懻?,可以看出ASIP+FPGA設(shè)計模式可以從很大程度上解決引言中提到的兩個難題。為了進行更深入的研究,我們對該設(shè)計模式進行了嘗試,用VHDL硬件描述語言在FPGA上實現(xiàn)了一個8位微處理器軟核(以下稱為WolfMCU),并為該微處理器實現(xiàn)了6條專用指令,每一條專用指令都由FPGA芯片中的專用電路支持。2.WolfMCU體系結(jié)構(gòu)設(shè)計微處理器常用的體系結(jié)構(gòu)有兩種――馮氏結(jié)構(gòu)和哈佛結(jié)構(gòu)。在馮氏結(jié)構(gòu)中,指令和數(shù)據(jù)使用同一個存儲器,經(jīng)由同一個總線傳輸,而在哈佛結(jié)構(gòu)中,使用兩個獨立的存儲器,分別存儲指令和數(shù)據(jù),并且使用兩條獨立的總線,分別作為CPU與每個存儲器之間的專用通信路徑,這樣就保證了系統(tǒng)具有較高的可靠性,嵌入式系統(tǒng)追求的就是高可靠性,因此哈佛結(jié)構(gòu)的嵌入式微處理器在嵌入式系統(tǒng)中被廣泛應(yīng)用,本文介紹的WolfMCU也采用了哈佛結(jié)構(gòu)。2.1WolfMCU的體系結(jié)構(gòu)WolfMCU由6個模塊組成,包括控制器、運算器、定時器/計數(shù)器、存儲器、串口通信控制器和并行通訊接口,如圖1所示??刂破魇荳olfMCU的大腦,在它的控制下,各模塊協(xié)調(diào)有序的工作??刂破靼ㄋ膫€模塊――譯碼模塊、有限狀態(tài)機模塊、存儲器控制模塊和中斷處理模塊。譯碼模塊對指令進行譯碼,產(chǎn)生相應(yīng)的控制信號。有限狀態(tài)機模塊控制WolfMCU在不同工作狀態(tài)之間進行轉(zhuǎn)換。WolfMCU共有四種工作狀態(tài):STARTUP、FETCH、EXEC1和EXEC2。STARTUP是WolfMCU加電后的初始狀態(tài),WolfMCU復位后也回到這個狀態(tài);FETCH是取指令狀態(tài),EXEC1和EXEC2是指令執(zhí)行狀態(tài),處理器根據(jù)譯碼結(jié)果在這兩個狀態(tài)下取操作數(shù)進行計算。存儲器控制模塊在譯碼模塊產(chǎn)生的控制信號的作用下取指令和操作數(shù),并送往正確的地方。中斷處理模塊接收外部中斷并進行處理,WolfMCU共有兩個中斷源:Int0和Int0。運算器在控制器的控制下完成指定的運算。WolfMCU的運算器支持8位數(shù)據(jù)的加、減、乘、與、或、非等基本運算,還支持十進制調(diào)整、乘加、乘減、平方后加、平方后減、取絕對值等特殊運算,這些特殊運算由專用指令實現(xiàn),由專用電路支持。系統(tǒng)內(nèi)不同部件的工作時鐘可能與系統(tǒng)時鐘不一致,比如串口控制器,它的工作時鐘根據(jù)不同波特率而不同,這就要求系統(tǒng)提供相應(yīng)的時鐘,以保證其正常工作,定時器/計數(shù)器可以實現(xiàn)對系統(tǒng)時鐘進行分頻以遍提供給相應(yīng)的部件使用。存儲器包括100字節(jié)的ROM、和100字節(jié)RAM(ROM和RAM都可以擴充容量)。ROM里存放要執(zhí)行的程序,RAM中存放運算過程中產(chǎn)生的數(shù)據(jù)。ROM中的程序可由上位PC機通過串口寫入。2.2實驗驗證2.1節(jié)介紹了WolfMCU的體系結(jié)構(gòu),接下來以一個小程序為例分析WolfMCU工作的具體過程。該程序?qū)崿F(xiàn)加法的操作,圖2所示是該程序的三條指令及其在軟核ROM中的存儲狀態(tài),第一條指令NOP是空操作指令,第二條指令把立即數(shù)56H送到累加器Acc中去,第三條指令給累加器Acc加上立即數(shù)5FH,結(jié)果保存在累加器Acc中,最后Acc中的結(jié)果是56H+5FH=B5H。第一條空操作指令比較簡單,系統(tǒng)不進行任何操作,只是狀態(tài)由初始狀態(tài)(STARTUP),變?yōu)槿≈噶顮顟B(tài)(FETCH),PC指針加1,指向下一條指令MOV。在第二個指令周期里,系統(tǒng)處于FETCH狀態(tài),存儲器控制模塊從ROM的001地址處讀出8位數(shù)據(jù)(01110100),把它送往譯碼模塊譯碼,譯碼模塊根據(jù)指令碼(01110100)識別出這是MOV_Acc_imm指令(把立即數(shù)送往累加器Acc),知道該指令需要有一個操作數(shù),所以把PC指針加1,并把系統(tǒng)下一個狀態(tài)置為EXEC1,為下一個周期取該指令的操作數(shù)做好準備。第三個指令周期開始,存儲器控制模塊取出操作數(shù)56H(01010110),同時譯碼模塊發(fā)出控制信號,指出這是從ROM輸入的數(shù)據(jù)(因為系統(tǒng)處在EXEC1狀態(tài)),目標寄存器是累加器Acc,然后PC指針加1,置系統(tǒng)下一個狀態(tài)為FETCH,為取下一條指令做好準備。在這個時鐘周期內(nèi),存儲器控制模塊已經(jīng)把56H送到累加器Acc中了。ADD指令的執(zhí)行過程和MOV指令類似,這里就不做詳述,唯一不同的是ADD指令執(zhí)行過程中經(jīng)過了兩次譯碼,第一次和MOV相同,第二次是在控制器把加法控制信號發(fā)送到ALU之后,ALU還要識別出這條加法指令是要把立即數(shù)和累加器中的操作數(shù)相加,這樣才能最終完成操作。至此,這段程序執(zhí)行完畢,正確輸出結(jié)果B5H。下載到MemecV2mb1000FPGA開發(fā)板上的運行,通過七段數(shù)碼管顯示的結(jié)果,如圖3所示:3.WolfMCU指令集設(shè)計對于桌面計算機系統(tǒng)來說,因為要面對不同的應(yīng)用,指令集功能越強大越好,通用性越強越好。但對于嵌入式系統(tǒng)來說,由于只面對某種特定的應(yīng)用,所以在滿足應(yīng)用需求的前提之下指令集越小越好,指令越專用,效率越高越好。綜合考慮了指令集尺寸和專用性,WolfMCU的指令集共有22條指令,包括16條通用指令和6條專用指令。16條通用指令都是最常用的指令,以后再設(shè)計其他專用指令集微處理器時可以在此基礎(chǔ)上進行擴充,通用指令包括數(shù)據(jù)傳送指令,算術(shù)運算指令,邏輯運算指令,控制轉(zhuǎn)移指令等四類,在這不再詳述。6條專用指令,如表1所列,增強了WolfMCU的運算能力。除了指令的功能之外,指令的尋址方式也是指令集設(shè)計的一個重要方面,WolfMCU共支持4種尋址方式:立即尋址、寄存器尋址、直接尋址、寄存器間接尋址。ASIP的設(shè)計,重點和難點是專用指令的實現(xiàn),下面以DA指令(十進制調(diào)整)為例介紹一下專用指令的實現(xiàn)。這條指令跟在加法指令后,對累加器Acc中8位結(jié)果進行調(diào)整,使它調(diào)整為壓縮得BCD碼的數(shù),以完成十進制加法運算功能。DA指令執(zhí)行的流程圖如圖4所示,具體代碼不再詳細介紹,這段代碼編譯后形成一個模塊連接在WolfMCU的控制器上,下載到FPGA芯片之后,相當于有一塊專用電路支持DA指令,控制器只要把ACC中的內(nèi)容發(fā)送到這個模塊,就可以返回調(diào)整后的結(jié)果,大大提高了該指令的執(zhí)行效率。用下面的程序測試DA指令的執(zhí)行效果:程序執(zhí)行十進制的8和9相加,在WolfMCU軟核上執(zhí)行后,輸出0107(圖5所示為通過七段數(shù)碼管顯示結(jié)果),說明DA指令執(zhí)行正確。其他專用指令的實現(xiàn)方式和DA指令類似,也是作為一個模塊連接在WolfMCU軟核之上,調(diào)用這些指令時,只需把操作數(shù)傳送給這些模塊。4.專用指令實現(xiàn)與普通指令實現(xiàn)的性能對比上表中列出的乘加、乘減等指令也像十進制調(diào)整指令一樣,因為有專門的電路支持這些指令,因此可以在幾個時鐘周期內(nèi)迅速輸出結(jié)果。上面提到的十進制調(diào)整指令,首先需要判斷累加器的低四位是否大于9,輔助進位標志位是否為1,二者滿足其一就給低四位加上06H,然后判斷高四位,若高四位或進位標志為1,則給高四位加上60H,如果使用普通指令編程實現(xiàn),至少需要上百個時鐘周期,而采用專用指令之后,只需要12個時鐘周期,表2列出了采用專用指令和普通指令時需要的時鐘周期的對比。由表2可以看出,采用專用指令后,所需時鐘周期數(shù)至少降低了40%,為實現(xiàn)這些專用指令付出的硬件代價還是值得的。5.總結(jié)本文介紹了一種提高嵌入式微處理器指令執(zhí)行效率和擴展性的設(shè)計思路--ASIP+FPGA,并對這種思路進行了嘗試,實現(xiàn)了一個8位的微處理器軟核,為這個軟核設(shè)計了16條通用指令和6條專用指令,通過與普通指令的實現(xiàn)開銷進行對比,驗證了ASIP+FPGA設(shè)計模式的優(yōu)勢,這個簡單的8位微處理器軟核可以作為設(shè)計復雜ASIP的原型,可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網(wǎng)設(shè)備安全性的提升途徑-全面剖析
- 民間債權(quán)執(zhí)行困境與出路-全面剖析
- 數(shù)字化教學策略探討-全面剖析
- 棋類競賽與競技精神塑造-全面剖析
- 智能家居技術(shù)發(fā)展-全面剖析
- 探索數(shù)據(jù)可視化技術(shù)在教育行業(yè)的潛力-全面剖析
- 洗滌劑多功能復合技術(shù)-全面剖析
- 智能化控制系統(tǒng)設(shè)計-全面剖析
- 微波輔助甘草酸苷提取工藝-全面剖析
- 環(huán)境時空異質(zhì)性對植物化感作用的影響-全面剖析
- 樓梯踏步抹灰標準合同7篇
- 【廈門大學】DeepSeek大模型賦能高校教學和科研
- 西安房屋租賃合同(官方版)6篇
- 2025年商丘職業(yè)技術(shù)學院單招職業(yè)技能考試題庫含答案
- 2025年榆林城市投資經(jīng)營集團有限公司招聘筆試參考題庫含答案解析
- 2025屆高三化學二輪復習 化學工藝流程 課件
- 2024廣東深圳市龍崗區(qū)產(chǎn)服集團“春雨”第二批招聘筆試筆試參考題庫附帶答案詳解
- PLC應(yīng)用技術(shù)課件 任務(wù)7. S7-1200 PLC控制電動機星三角啟動(定時器)
- 旅行社運營實務(wù)課件 2.2 設(shè)計國內(nèi)長線主題旅游產(chǎn)品
- 股份制合作協(xié)議及企業(yè)章程草案
- 《清華大學介紹》課件
評論
0/150
提交評論