隨著社會的發(fā)展,工業(yè)控制及人們?nèi)粘I钤絹碓阶非缶芸刂疲瑸榱藵M足這種需求,微控制器得到了快速的發(fā)展。隨著VLSI發(fā)展,MCU將原本分散的 CPU,RAM,ROM,I/O等集中于一塊單晶芯片內(nèi),形成一種芯片級計算系統(tǒng)。MCU主要用于控制目的,MCU構(gòu)成的系統(tǒng)有實時、快速的外部響應(yīng),能 迅速采集到大量的數(shù)據(jù),做出邏輯判斷與推理后實現(xiàn)對被控制對象的參數(shù)調(diào)整與控制[1]。
摘要:傳統(tǒng)ISA處理器內(nèi)部有限的邏輯資源和外部固定的引腳封裝大大的限制了它的應(yīng)用范圍。利用FPGA豐富的邏輯資源實現(xiàn)傳統(tǒng)MCU中的各個組成部分,底層采用可配置引腳降低硬件設(shè)計復(fù)雜度,各模塊間采用Wishbone總線結(jié)構(gòu)的方式構(gòu)建系統(tǒng),可以達(dá)到傳統(tǒng)MCU無法完成的要求,具有很好的應(yīng)用前景。使用硬件描述語言,自底向上設(shè)計處理核心80C51,并且與幾類通用外設(shè)互連組成系統(tǒng),使用Virtex?ⅡPro系列FPGA進(jìn)行板級驗證。板級驗證結(jié)果表明實現(xiàn)了既定目標(biāo),與標(biāo)準(zhǔn)MCU兼容,系統(tǒng)運行穩(wěn)定。
關(guān)鍵詞:邏輯資源,VLSI,FPGA,C51處理器
0引言
MCU被廣泛應(yīng)用于家用電器、科學(xué)教育、工業(yè)控制、自動生產(chǎn)及儀器儀表中。在移動互聯(lián)網(wǎng)快速發(fā)展的今天,MCU的應(yīng)用領(lǐng)域進(jìn)一步擴(kuò)大。但是隨著時代的推進(jìn),對控制的要求逐步增大,所需滿足功能的逐漸增多,傳統(tǒng)MCU也越來越顯得捉襟見肘。使用ASIC器件在片內(nèi)實現(xiàn)與傳統(tǒng)MCU相兼容的核心,選用合適的片內(nèi)總線來連接外設(shè),構(gòu)成一個兼容傳統(tǒng)MCU平臺,這種方法必會延續(xù)傳統(tǒng)MCU的生命力,使其獲得更大的發(fā)展。
1Virtex?ⅡPro
FPGA采用了邏輯單元陣列(LogicCellArray,LCA),內(nèi)部包含了可配置的邏輯模塊(ConfigurableLogicBlock,CLB)、輸入/輸出模塊(InputOutputBlock,IOB)和內(nèi)部連線(Interconnect)。與傳統(tǒng)的可編程程器件相比,F(xiàn)PGA是ASIC電路中設(shè)計風(fēng)險最小、開發(fā)費用最低、周期最短的器件之一。采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。同時FPGA的內(nèi)部邏輯和I/O資源非常的豐富,可以說利用FPGA芯片進(jìn)行小批量生產(chǎn),對于提高系統(tǒng)有幫助的。
Virtex?ⅡPro系列[2]在Virtex?Ⅱ的基礎(chǔ)上,增強(qiáng)了嵌入式處理能力,內(nèi)嵌PowerPC405內(nèi)核,還包括了先進(jìn)的主動互聯(lián)技術(shù),以解決高性能系統(tǒng)所面臨的挑戰(zhàn)。此外還增加了高速串行收發(fā)器,提供了千兆以太網(wǎng)的解決方案。主要特征如下[3?4]:
。1)核電壓為1.5V,工作時鐘可以達(dá)到420MHz;
(2)支持多達(dá)20種的I/O接口標(biāo)準(zhǔn);
。3)增加了2個高性能RISC技術(shù),頻率高達(dá)400MHz的PowerPc處理器;
。4)增加多個3.125Gb/s速率的Rocket串行收發(fā)器;
。5)內(nèi)嵌了多個硬核乘法器,提高了DSP處理能力;
(6)具有完全系統(tǒng)時鐘管理功能,多達(dá)8個DCM。
2Virtual80C51Core實現(xiàn)
2.1存儲器管理
所有的8051器件都將程序存儲器(ROM)和數(shù)據(jù)存儲器(RAM)邏輯分離。這種邏輯分離對于允許8位的MCU的8位地址線訪問數(shù)據(jù)存儲器是非常有利的,而且可以進(jìn)行快速的存取操作。
程序存儲器,使用內(nèi)部BRAM,配置為ROM,用于存放存儲器,使用其中的11根地址線,配置為2KB容量,當(dāng)然用戶可以依據(jù)自己的需求來定制容量。數(shù)據(jù)存儲器,使用內(nèi)部BRAM,配置為RAM,容量為128b。內(nèi)部數(shù)據(jù)存儲器包含了4個8b的寄存器組和一個32b的段,其結(jié)構(gòu)如圖2所示。
2.2定時/計數(shù)器
2.3中斷管理
Virtual8051Core為了能更好完成任務(wù),需要支持中斷,為此需要設(shè)計2路內(nèi)部中斷和2路外部中斷。外部中斷,系統(tǒng)通過檢測外部中斷引腳,如果發(fā)生電平變換或者上升下降沿的到來時,便向系統(tǒng)產(chǎn)生一個中斷信號。內(nèi)部中斷,當(dāng)定時器/計數(shù)器,計數(shù)滿時,便向系統(tǒng)產(chǎn)生一個中斷信號。
當(dāng)中斷到來,首先檢測中斷寄存器,是否允許中斷,如果中斷打開,則中斷控制器將會在適當(dāng)?shù)奈恢卯a(chǎn)生一個LCALL指令,除非有如下情況阻塞中斷:系統(tǒng)正在執(zhí)行一個高優(yōu)先級或者優(yōu)先級相同的過程;上一條指令還沒有完全執(zhí)行完畢。
中斷處理過程如下:當(dāng)中斷產(chǎn)生后,硬件系統(tǒng)將會產(chǎn)生一個LCALL的指令;指令系統(tǒng)接受到LCALL指令后,保存現(xiàn)場,將PC(程序計數(shù)器)等寄存器壓入堆棧中;更新PC等寄存器,跳轉(zhuǎn)至中斷執(zhí)行程序,并且清楚中斷標(biāo)志位;中斷程序執(zhí)行完畢后,自動恢復(fù)現(xiàn)場,將堆棧中的PC等寄存器值恢復(fù)。
2.4ALU
ALU的實現(xiàn)較為簡單,采用模塊化設(shè)計,共劃分為3個模塊:控制模塊、加減法模塊和乘除法模塊?刂颇K負(fù)責(zé)簡單的控制功能,如功能選擇等。在本設(shè)計中加法功能使用超前進(jìn)位法來設(shè)計的,而減法功能,則使用加補碼的方式通過加法功能實現(xiàn);乘除法模塊我們可以使用了Virtex?ⅡPro中集成了乘法單元和DSP模塊來實現(xiàn),也可以使用加減法和移位寄存器的組合來實現(xiàn)。其具體方法可見參考文獻(xiàn)[6]。
2.5譯碼控制器
VirtualC51Core使用標(biāo)準(zhǔn)的C51的指令系統(tǒng),這樣便可以做到最好的兼容性,其指令集主要分為如下幾類[7]:
。1)算術(shù)指令,其中包括ADD,INC,SUB,MUL,DIV,DEC等算術(shù)指令;(2)邏輯指令,其中主要有ANL,ORL,XRL等邏輯操作;
。3)數(shù)據(jù)傳輸類指令,其中主要有MOV,PUSH,POP,XCH等;
(4)查找表指令,其中主要是MOVC;
。5)布爾指令,其中有JNC,JNB,JC等;
。6)跳轉(zhuǎn)指令,其中無條件跳轉(zhuǎn)指令有JMP,CALL,RET等,有條件跳轉(zhuǎn)JZ,JNZ,CJNE等;
。7)空指令,NOP。
指令按字節(jié)數(shù)可以分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。按照執(zhí)行周期又可以分為單周期指令、雙周期指令和四周期指令。
當(dāng)獲得一條指令,首先譯碼器進(jìn)行指令譯碼,分解指令,獲得對應(yīng)的指令操作類型,根據(jù)該操作類型來選擇后續(xù)操作邏輯單元塊;然后譯碼目的操作數(shù),獲得目的操作數(shù)的位置,用于存儲結(jié)果,最后譯碼源操作數(shù)。
C51支持多種尋址方式:直接尋址、寄存器尋址、寄存器間接尋址、立即尋址、變址尋址、位尋址和相對選址[7]。正確譯碼獲取源操作數(shù)的地址,由控制器根據(jù)該地址獲取正確的值傳給運算模塊,進(jìn)行運算。由于是早期的MCU,其支持的指令集較少,它的指令格式較為簡單,通過識別其操作碼便可以速的識別出其尋址方式,故其譯碼器設(shè)計較為簡單。
2.6外設(shè)總線接口
VirtualC51Core對于外設(shè)的訪問采用簡單的地址映射方式。采用這種方式,雖然比較浪費地址空間,但是實現(xiàn)較為簡單,無需增加額外設(shè)計,簡化設(shè)計。
80C51作為一款較為簡單的MCU,對其內(nèi)部實現(xiàn)也較為簡潔,所使用的邏輯也較少,所以VirtualC51Core非常適合在低端的FPGA甚至是某些特定的CPLD中實現(xiàn),而且作為早期發(fā)展至今的MCU,其相應(yīng)驅(qū)動資源也較為豐富,對于上層軟件工程師而言,可以迅速的完成設(shè)計任務(wù)。
3外設(shè)總線
在一個系統(tǒng)中光有處理器還是不夠的,需要有豐富的外設(shè)來滿足各種控制要求或者數(shù)據(jù)傳輸功能。而片內(nèi)總線便是將處理器與總線相連接的重要路徑。Wishbone是一種開放并且完全免費的總線標(biāo)準(zhǔn),Wishbone獨有的特點如下:
。1)Wishbone僅僅定義了Core之間的連接時需要的信號;
(2)支持多種連接模式:點對點,數(shù)據(jù)流,共享總線和十字交叉互聯(lián);
。3)Wishbone總線的所有信號都與總線的時鐘同步;
。4)支持大小端模式,用戶可以根據(jù)自己的需求配置成不同的模式;
。5)Wishbone總線接口區(qū)分明確,分為主(Master)/從(Slave)。
(6)Wishbone有四種連接模式[8]:點對點、數(shù)據(jù)流、共享總線和十字交叉互聯(lián),在此使用共享總線式連接方式,其中充當(dāng)Master為VirtualCore,而外設(shè)為Slaver,如圖5所示。
4測試
4.1測試工具
5結(jié)語
隨著MCU的應(yīng)用范圍越來越寬,對MCU的要求也逐步提高。尤其在目前MCU逐漸進(jìn)入SoC時代,IP核復(fù)用將會成為主流設(shè)計方法。為了能使老一代的MCU發(fā)揮延續(xù)其生命力,開發(fā)其兼容IP核,不僅能夠?qū)⒁酝拇a迅速的移植到新系統(tǒng)上,而且還可以加快新系統(tǒng)的開發(fā)。而且可以將以往很多的分立件,使用邏輯功能實現(xiàn),集成于ASIC中,降低外圍硬件電路的設(shè)計。
本文闡述了用FPGA等可編程ASIC元器件來虛擬出傳統(tǒng)的MCU80C51的設(shè)計原理和方法。通過適度改變其內(nèi)部結(jié)構(gòu),添加Wishbone總線,替代傳統(tǒng)MCU片內(nèi)總線,用來完成MCU核與外設(shè)的連接。使用這種方式,可以充分的利用市場上已經(jīng)成熟的外設(shè)核,避免重復(fù)設(shè)計,同時也方便對傳統(tǒng)的MCU進(jìn)行裁剪和定制,這樣將會使傳統(tǒng)的MCU更加的靈活可變。
參考文獻(xiàn)
[1]劉必慰,陳書明,汪東.先進(jìn)微處理器體系結(jié)構(gòu)及其發(fā)展趨勢[J].計算機(jī)應(yīng)用研究,2007,24(3):16?20.
[2]Xilinx.Virtex?iiproandVirtex?iiproXplatformFPGAs:completedatasheet[M].USA:Xilinx,2011.
[3]田耘,徐文波,胡彬.Xilinxisedesignsuite10.xFPGA開發(fā)指南[M].北京:人民郵電出版社,2008.
[4]張春生,常青,肖山竹.基于PowerPC405的SoPC簡單應(yīng)用[J].微處理機(jī),2007(6):117?120.
[5]于冰,沈健,聶晶.高性能8位微控制器IP軟核設(shè)計[J].合肥工業(yè)大學(xué)學(xué)報,2007,30(8):1003?1006.
[6]周殿鳳.基于FPGA的32位ALU軟核設(shè)計[J].電子科技,2010,23(11):80?81.
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/jisuanjiyingyonglw/27132.html