在嵌入式系統(tǒng)的設(shè)計(jì)中, IP技術(shù)為SoC的設(shè)計(jì)提供了有效途徑, 是SoC的技術(shù)支撐。當(dāng)然, 在國內(nèi)開發(fā)出具有自主知識產(chǎn)權(quán)的IP模塊還面臨著許多問題, 如核心算法的優(yōu)化、不同層次模塊的建立、模塊的可重用問題以及IP模塊的標(biāo)準(zhǔn)化問題等。對于嵌入式處理器IP 核, 面對的挑戰(zhàn)就是如何選擇一個(gè)滿足其應(yīng)用需求的處理器。現(xiàn)已有數(shù)百種嵌入式處理器, 每組都具備一組不同的外設(shè)、存儲(chǔ)器、接口和性能特性, 用戶很難做出一個(gè)合理的選擇。本文設(shè)計(jì)的微處理器的指令集與標(biāo)準(zhǔn)8051單片機(jī)完全兼容, 這樣有利于開發(fā)人員的使用。
1 總體設(shè)計(jì)方案的擬定
1.1 提出改進(jìn)方案
首先在對典型八位微處理器進(jìn)行了詳盡地剖析的基礎(chǔ)上, 指出在傳統(tǒng)典型微處理器內(nèi)核中制約微處理器整體性能的主要因素, 然后提出以下改進(jìn)方案:
(1) 微處理器的內(nèi)核結(jié)構(gòu)上, 將乘、除法單元各自獨(dú)立出來來完成算術(shù)邏輯指令中的乘、除法運(yùn)算。這樣可以回避傳統(tǒng)典型微處理器基于累加器的ALU結(jié)構(gòu)及算術(shù)邏輯指令, 從而提高邏輯指令的執(zhí)行效率。
(2) 在指令系統(tǒng)上, 通過采用類RISC的指令系統(tǒng)和硬布線直接產(chǎn)生控制信號的方式來簡化指令譯碼器的設(shè)計(jì)。同時(shí)為內(nèi)核添加指令緩沖區(qū)、采用指令流水線技術(shù)、多管道并行執(zhí)行指令。
(3) 指令時(shí)序上, 設(shè)計(jì)中盡量減少指令執(zhí)行所需的時(shí)鐘周期, 提高微處理器的運(yùn)行效率。
1.2 總體設(shè)計(jì)思路
根據(jù)IP core通用的設(shè)計(jì)方法, 本文采用了標(biāo)準(zhǔn)的自頂向下的設(shè)計(jì)方法。就是根據(jù)系統(tǒng)級的內(nèi)容,把系統(tǒng)劃分為單元, 然后再把每個(gè)單元?jiǎng)澐譃橄乱粚哟蔚膯卧?這樣一直劃分下去, 直到最底層的單元可以用硬件描述語言進(jìn)行設(shè)計(jì), 如圖1所示; 接著在完成各個(gè)模塊設(shè)計(jì)的基礎(chǔ)上完成系統(tǒng)級設(shè)計(jì);然后進(jìn)行整個(gè)系統(tǒng)的仿真驗(yàn)證; 最后選用特定的FPGA芯片進(jìn)行綜合、布局布線以及功能后仿真。
圖1 微處理器系統(tǒng)級劃分圖
2 各子模塊的設(shè)計(jì)
2.1 ALU模塊
算術(shù)邏輯單元(ALU) 是微控制器的核心部件, ALU的設(shè)計(jì)依賴于指令系統(tǒng), ALU采用什么樣的結(jié)構(gòu)、設(shè)置那些功能都是建立在對系統(tǒng)指令集分析的基礎(chǔ)上來完成。
根據(jù)算術(shù)運(yùn)算類指令可知, ALU單元主要要完成的功能有: 帶/不帶進(jìn)位加/減法、乘法、除法、十進(jìn)制調(diào)整、邏輯運(yùn)算以及布爾操作的實(shí)現(xiàn)。整個(gè)操作的完成是通過多路選擇器控制來完成。因此, 我們可以對整個(gè)ALU系統(tǒng)進(jìn)行如圖2劃分, 然后對各個(gè)子模塊進(jìn)行設(shè)計(jì)。
圖2 ALU系統(tǒng)劃分框圖
2.2 控制通路的設(shè)計(jì)
本文中的控制通路由譯碼器模塊和控制器模塊兩部分組成。這部分的設(shè)計(jì)是在對指令系統(tǒng)進(jìn)行正確分析的基礎(chǔ)上來完成。
設(shè)計(jì)控制通路有兩種主要的方法。微程序控制(或微序列控制) 方式使用存儲(chǔ)器查表方式來輸出控制信號, 而硬連線控制使用時(shí)序邏輯和組合邏輯來產(chǎn)生控制信號。硬件直接實(shí)現(xiàn)的控制單元一般用有限狀態(tài)機(jī)實(shí)現(xiàn), 通常有較高的運(yùn)算速度;但是通用性差, 每個(gè)電路都必須專門設(shè)計(jì)控制單元。每一種方法都有一些變形形式。由于本文中微處理器的控制相對簡單, 所以在設(shè)計(jì)中采用了硬連線控制方法。
(1) 控制器模塊的狀態(tài)機(jī)實(shí)現(xiàn)
根據(jù)本文中多數(shù)輸出要保持一個(gè)完整的時(shí)鐘周期, 此時(shí)鐘周期內(nèi)輸出不能受時(shí)鐘信號的影響,所以采用Moore型有限狀態(tài)機(jī)來完成控制器模塊的設(shè)計(jì)。整個(gè)控制模塊的設(shè)計(jì)通過主狀態(tài)機(jī)和子狀態(tài)機(jī)兩步來完成。注狀態(tài)機(jī)模型如圖3所示。
圖3 控制單元的主狀態(tài)機(jī)模型
以中斷處理子狀態(tài)機(jī)設(shè)計(jì)為例, 對子狀態(tài)機(jī)的設(shè)計(jì)進(jìn)行說明, 狀態(tài)轉(zhuǎn)換圖如圖4所示。
圖4 中斷處理狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖
(2) 存儲(chǔ)器模塊的設(shè)計(jì)
存儲(chǔ)器是數(shù)字系統(tǒng)的重要組成部分, 數(shù)據(jù)處理單元的處理結(jié)果需要存儲(chǔ), 許多處理單元的初始化數(shù)據(jù)也需要存放在存儲(chǔ)器中。本文的存儲(chǔ)器結(jié)構(gòu), 采用的是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開尋址的哈佛結(jié)構(gòu)。同時(shí)又將數(shù)據(jù)存儲(chǔ)器分為內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器兩部分來設(shè)計(jì)。
(3) 中斷系統(tǒng)設(shè)計(jì)
本文中的中斷系統(tǒng)在控制通路來完成, 共提供了5個(gè)中斷源, 同時(shí)通過對中斷優(yōu)先級寄存器IP中的某位的置位或清除, 可以把每個(gè)中斷源分別編程為高優(yōu)先級或低優(yōu)先級。如表1所示。
表1 中斷源表
(4) 定時(shí)器/計(jì)數(shù)器模塊的設(shè)計(jì)
定時(shí)器/計(jì)數(shù)器是微處理器中重要的外圍模塊,它主要是完成作為定時(shí)器和事件計(jì)數(shù)器的功能。
在作為定時(shí)器工作時(shí), 每一個(gè)機(jī)器周期使定時(shí)寄存器加1計(jì)數(shù)。在作為事件計(jì)數(shù)器工作時(shí), 是對外部輸入負(fù)跳變信號做加法計(jì)數(shù), 規(guī)定在每個(gè)機(jī)器周期的某一狀態(tài)采樣此信號, 在前一個(gè)周期采樣到"1", 后一個(gè)周期采樣到"0" 時(shí)計(jì)數(shù)加1, 而在檢測到跳變信號后的那個(gè)周期的下一個(gè)狀態(tài)時(shí),新的計(jì)數(shù)值裝入計(jì)數(shù)寄存器。
3 系統(tǒng)綜合、仿真驗(yàn)證與性能分析
在整個(gè)微處理器IP核的設(shè)計(jì)過程中, 利用可編程邏輯器件進(jìn)行電路驗(yàn)證對于保證設(shè)計(jì)的正確性和投片成功十分重要。在FPGA的設(shè)計(jì)流程中包括三種基本的驗(yàn)證方法: HDL、RTL級描述仿真, 門級仿真和布線后的時(shí)序仿真。具體驗(yàn)證流程如圖5所示。仿真的目的就是要確認(rèn)設(shè)計(jì)的正確性。如果出錯(cuò)的話, 則通過分析仿真器的輸出波形, 找出出錯(cuò)的原因, 并對原設(shè)計(jì)進(jìn)行修改。
圖5 系統(tǒng)驗(yàn)證流圖
3.1 仿真驗(yàn)證
驗(yàn)證方法: 首先編寫各種測試代碼; 然后轉(zhuǎn)化為vhdl文件, 再寫入ROM模塊; 最后在仿真環(huán)境中運(yùn)行IP核, 完成對整個(gè)系統(tǒng)的全指令集測試。一般內(nèi)部RAM和寄存器的值無法直接檢測, 可以通過多條指令將其輸出到IP核的四個(gè)輸出端口供檢查。本文采用Model Tech公司的仿真工具M(jìn)oledsim來進(jìn)行功能仿真和時(shí)序仿真。
圖6是對基本子程序調(diào)用指令的測試仿真時(shí)序。包括子程序調(diào)用、傳送、加法以及返回等指令。根據(jù)測試指令集, 如果程序執(zhí)行正確, 那么在程序執(zhí)行完后, 輸出端口P0口就會(huì)出現(xiàn)21H。
圖6 基本子程序調(diào)用指令的測試仿真波形圖
測試指令集: MOV A, #20H; ACALL DELEY;MOV P0, A; DELAY: INC A; MOV P0, A。
3.2 綜合及綜合結(jié)果分析
本文中的綜合及優(yōu)化都是由綜合工具SynplifyPro來完成的。利用Synplify Pro工具提供的邏輯綜合與適配工具和設(shè)計(jì)的約束條件, 可以方便的實(shí)現(xiàn)本文各模塊的邏輯綜合和布局布線。
對于本文中的八位微處理器來說, 由于它是一個(gè)非常復(fù)雜的數(shù)字邏輯電路, 不僅包含大量的組合邏輯電路, 而且包含了時(shí)序復(fù)雜的時(shí)序邏輯電路。通過邏輯綜合估計(jì)整個(gè)系統(tǒng)超過一百萬門,因此要用大容量的可編程邏輯器件來做電路驗(yàn)證。
通過比較各種可編程邏輯器件的性能和結(jié)構(gòu)特點(diǎn)(見表2), 決定采用器件Xilinx Virtex2 XC2V1000bg575-6來完成本文的電路驗(yàn)證。
表2 Virtex2系列器件性能和結(jié)構(gòu)特點(diǎn)表
綜合結(jié)果分析主要是利用結(jié)構(gòu)視圖、綜合報(bào)告分析綜合結(jié)果是否滿足時(shí)序要求, 分析綜合的頻率、面積等信息。
3.3 性能分析
本文的器件資源的占用情況如表3.(由于內(nèi)部存儲(chǔ)器要占用很多的資源, 故此表列出的是縮減內(nèi)部內(nèi)存后器件的資源占用情況)。
表3 器件資源占用情況表
將經(jīng)過FPGA驗(yàn)證的MCU核與傳統(tǒng)的微處理器做比較, 可以看出, 由于所設(shè)計(jì)的微處理器核是采用硬布線邏輯產(chǎn)生控制信號, 所以其工作時(shí)鐘頻率要大大優(yōu)于傳統(tǒng)的微處理器。FPGA驗(yàn)證的結(jié)果是, 工作時(shí)鐘頻率大于60MHz, 是傳統(tǒng)微控制器工作時(shí)鐘頻率的五倍; 在每MHz時(shí)鐘頻率的指令執(zhí)行效率指標(biāo)上, 所設(shè)計(jì)微處理器核的性能約為傳統(tǒng)微控制器的12倍。這得益于微控制器內(nèi)核采用類RISC指令結(jié)構(gòu), 及設(shè)計(jì)指令執(zhí)行周期的大大減小。
4 結(jié)束語
由于整個(gè)微控制器內(nèi)核都是采用可綜合的VHDL語言描述, 這使得該內(nèi)核具有很好的可移植性、可重復(fù)利用性和實(shí)用性。也可以適當(dāng)?shù)赝貙挃?shù)據(jù)總線的寬度, 以減少內(nèi)存訪問的次數(shù), 從而提高指令執(zhí)行效率。此外, 還可借助EDA工具,方便地與AD/DA轉(zhuǎn)換器、LCD顯示驅(qū)動(dòng)器、串行通信接口等外圍功能模塊綜合成各種嵌入式控制系統(tǒng)。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22042瀏覽量
618245 -
嵌入式
+關(guān)注
關(guān)注
5150文章
19660瀏覽量
317406 -
微處理器
+關(guān)注
關(guān)注
11文章
2383瀏覽量
84159
發(fā)布評論請先 登錄
嵌入式微處理器是由什么組成
嵌入式微處理器與應(yīng)用

評論