基于VLSI 平臺的AVR 處理器仿真與設(shè)計
0 引言
隨著社會發(fā)展,工業(yè)控制及人們?nèi)粘I钤絹碓阶非缶芸刂?,為滿足這種需求,微控制器得到了快速發(fā)展。微控制器(Micro Control Unit,MCU)又稱單片微型控制計算機或單片機。隨著大規(guī)模集成電路(LargeScale Integration,LSI)發(fā)展,MCU將原本分散的中央處理器(Central Processor Unit,CPU)、隨機存儲器(Ran-dom Access Memory,RAM)、只讀存儲器(Read OnlyMemory,ROM)、輸入/輸出接口(In/Out Ports,I/O)等集中于一塊單晶芯片內(nèi),形成一種芯片級計算系統(tǒng)。MCU主要用于控制,MCU構(gòu)成的系統(tǒng)有實時、快速的外部響應,能迅速采集到大量數(shù)據(jù),做出邏輯判斷與推理后實現(xiàn)對被控制對象的參數(shù)調(diào)整與控制。但是隨著對控制的要求增大,傳統(tǒng)MCU也越來越顯得捉襟見肘。為此使用專用應用集成電路(Application Specific IntegratedCircuit,ASIC)器件在片內(nèi)實現(xiàn)與傳統(tǒng)MCU相兼容的核心,選用合適的片內(nèi)總線來連接外設(shè),構(gòu)成一個兼容傳統(tǒng)MCU平臺,這種方法必會延續(xù)傳統(tǒng)MCU的生命力,使其獲得更大的發(fā)展。
1 MCU 簡介
若將4位單片機的出現(xiàn)作為MCU的起點,MCU的發(fā)展大致可以分為如下階段:初級階段(1971年-1976年)、8 位低性能階段(1976 年-1980 年)、8 位高性能階段(1980年-1983年)、16位階段(1983年至80年代末)、片上系統(tǒng)(System On-Chip,SoC)階段(1990-)。一個通用的MCU 由ROM、RAM、GPIO、串行設(shè)備(UART/SPI/IIC)、計數(shù)器/定時器(TIMER)等組成,并通過總線連接,如圖1所示。
傳統(tǒng)MCU 都需要一套指令集結(jié)構(gòu)(Instruction SetArchitecture,ISA)。從現(xiàn)階段主流體系結(jié)構(gòu)講,主要分為復雜指令集(Complex Instruction Set Computer,CISC)和精簡指令集(Reduced Instruction Set Computer,RISC)。
RISC增加了運行速度,大大減小了指令集數(shù)目,方便使用多級流水線結(jié)構(gòu),可增加寄存器數(shù)量。AVR單片機就是一款內(nèi)置FLASH的增強型RISC處理器[4].
另外MCU需要將數(shù)據(jù)和指令存儲于存儲器中。目前使用最多的兩種存儲器組織結(jié)構(gòu)分別為馮·諾依曼結(jié)構(gòu)(Von Neumann Architecture)和哈佛結(jié)構(gòu)(Harvard Ar-chitecture)。馮·諾依曼結(jié)構(gòu)將處理器指令和數(shù)據(jù)合并在一起存儲,指向同一存儲器的不同物理地址。哈佛結(jié)構(gòu)將程序指令存儲和數(shù)據(jù)存儲分開,中央處理器先從程序指令存儲器中獲得指令譯碼后得到數(shù)據(jù)地址,再由此從數(shù)據(jù)存儲器中取得數(shù)據(jù),并進行下一步操作。哈佛結(jié)構(gòu)的微處理器通常有很高的執(zhí)行效率。Atmel公司的AVR系列就是采用的哈佛結(jié)構(gòu)。
AVR單片機是由Atmel公司在1997年推出的高速8位MCU,內(nèi)置FLASH的增強型RISC處理器,可廣泛應用于計算機外部子系統(tǒng)、工業(yè)生產(chǎn)和控制、儀器儀表、通信設(shè)備、家用電器等各個領(lǐng)域。大部分AVR片上資源豐富:如E2PROM,PWM,RTC,SPI,USART,TWI,ISP,AD,Analog Comparator,WDT等。AVR單片機內(nèi)嵌高質(zhì)量的FLASH程序存儲器,擦寫方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開發(fā)、生產(chǎn)、更新。內(nèi)嵌長壽命的E2PROM可長期保存關(guān)鍵數(shù)據(jù),避免斷電丟失。片內(nèi)大容量的RAM不僅能滿足一般場合的使用,同時也更有效地支持使用高級語言開發(fā)系統(tǒng)程序,并可像8051單片機那樣擴展外部RAM.
2 FPGA 簡介
ASIC 是指依特定用途而設(shè)計的特殊規(guī)格邏輯電路。ASIC的最顯著特點是面向特定用戶需求,與通用集成電路相比有更小的體積、更低的功耗、較高的可靠性、較強的保密性和低成本等優(yōu)點,但因為開發(fā)較為復雜,所以研發(fā)周期較長。
隨著電子工業(yè)技術(shù)的發(fā)展,ASIC的設(shè)計方法變得越簡單,效率越高,可編程ASIC就是一個很有特色的設(shè)計分支,它主要利用可編程的集成電路如PLD(Program-mable Read Only Memory)等可編程邏輯電路來設(shè)計。
主要特點是直接提供軟件設(shè)計編程,完成ASIC電路功能,而不再通過集成電路工藝加工后得到成品。這種方法大大降低了開發(fā)周期,且縮小了成本。
現(xiàn)場可編程門陣列(Field Programmable Gate Ar-ray,FPGA)就是眾多PLD產(chǎn)品中應用最為廣泛的一種,它采用了邏輯單元陣列(Logic Cell Array,LCA),內(nèi)部包含了可配置的邏輯模塊(Configurable Logic Block,CLB)、輸入/輸出模塊(Input Output Block,IOB)和內(nèi)部連線(Interconnect)。FPGA采用的是小型查找表來實現(xiàn)組合邏輯的,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他的邏輯電路或者I/O,由此構(gòu)成即可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,通過內(nèi)部連線互相連接。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O之間的聯(lián)系方式,并且最終決定了FPGA所實現(xiàn)的功能。由于FPGA采用查找表結(jié)構(gòu),而查找表本質(zhì)是一個小RAM,所以FPGA內(nèi)部信息掉電消失,上電需要重新進行配置。FPGA支持多次重復編程。相對于其他的可編程器件,F(xiàn)PGA是ASIC電路中設(shè)計風險最小、開發(fā)費用最低、周期最短的器件之一。采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。同時FPGA 的內(nèi)部邏輯和I/O 資源非常豐富,可以說用FPGA芯片進行小批量生產(chǎn),對于提高系統(tǒng)集成度、可靠性是很有幫助的。
在眾多PLD廠家中,XILINX公司的產(chǎn)品種類豐富,其開發(fā)工具ISE為業(yè)界公認的最好的開發(fā)工具之一,且其芯片的性價比很高。所以,這里主要使用XILINX公司的產(chǎn)品。XILINX 公司主要FPGA 產(chǎn)品為SPARTAN系列和VIRTEX系列。前者面向低成本應用,滿足一般的邏輯設(shè)計要求,后者面向高性能應用,滿足高端要求。文中選擇Virtex-Ⅱ Pro 系列芯片作為開發(fā)平臺。
這款芯片含有可編程輸入/輸出塊、可配置邏輯塊、嵌入式RAM塊、數(shù)字時鐘管理模塊、專用硬核以及豐富的布線資源。FPGA的設(shè)計過程是利用EDA工具將設(shè)計輸入轉(zhuǎn)化為FPGA芯片可運行的過程,開發(fā)的一般流程見圖2.
評論