基于FPGA的MCS5單片機的邏輯運算模塊設計本科設計_第1頁
基于FPGA的MCS5單片機的邏輯運算模塊設計本科設計_第2頁
基于FPGA的MCS5單片機的邏輯運算模塊設計本科設計_第3頁
基于FPGA的MCS5單片機的邏輯運算模塊設計本科設計_第4頁
基于FPGA的MCS5單片機的邏輯運算模塊設計本科設計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于FPGA的MCS-51單片機的邏輯運算模塊設計摘要MCS-51是Intel公司生產的其中一個單片機系列的名稱。該系列單片機誕生于1980年,功能強大、應用方便,已成為單片機領域的實際標準。MCS-51單片機小巧靈活,成本低,易于產品化,方便地組成各種智能測試設備及各種智能儀器儀表。其指令系統(tǒng)有各種控制功能用指令,很容易構成各種規(guī)模的應用系統(tǒng),易擴展,可以很方便地實現(xiàn)多機和分布式控制。而VHDL語言則是應用廣泛的一種硬件描述語言,目前越來越多的廠商、科研機構在使用VHDL語言進行系統(tǒng)開發(fā)。本文將采用具有學習能力強、兼容性能好及采用并行處理優(yōu)點等的FPGA/CPLD為載體,應用靈活高效的VHD

2、L語言對MCS51兼容單片機進行編程、以EDA開發(fā)軟件Quartus II 為設計平臺,經(jīng)過編譯、調試、修改、仿真測試,實現(xiàn)MCS-51單片機的算術模塊功能。 關鍵詞:MCS-51單片機,VHDL,EDA,F(xiàn)PGAAbstractMCS-51 is an among those that the Intel company produce list slice the name of the machine series.Should series list slice the machine was born in 1980, the function be strong, applicat

3、ion convenience, have become list slice machine realm of actual standard.The MCS-51 list slice the machine be cleverly made and vivid, the cost be low, be easy to a product to turn and expediently constitute various intelligence to measure, equipments and various intelligence instrument appearance.I

4、ts instruction system have various control the function use instruction, very easy constitute various scale of application system, easy expand, can very expediently realization many machine and distribute type control.But VHDL language then application extensive of the description language of a kind

5、 of hardware, currently more and more of manufacturer, research organization at usage the VHDL language carry on system development.This text has study ability the adoption strong, and permit function good and adoption proceed together processing advantage etc. of FPGA/CPLD in order to carry a body,

6、 application vivid efficiently of VHDL language to MCS 51 and permit list slice the machine carry on plait distance, with EDA development software Quartus II is design terrace, has been editted and translate, adjusted to try, modification, imitate true test, realization MCS-51 list slice the arithme

7、tic mold of the machine piece function. Keyword:The machine, VHDL, EDA of the MCS-51 list slice, FPGA目錄第一章 緒論11.1 課程設計背景知識11.1.1 單片機的概述11.1.2 單片機的發(fā)展歷程11.1.3 單片機的發(fā)展趨勢21.1.4 單片機的特點及應用21.1.5 單片機面臨的問題31.1.6 單片機與FPGA/CPLD的對比41.1.7 EDA技術設計方法系統(tǒng)級設計5第二章 單片機的結構原理82.1 單片機的內部模塊功能82.2 MCS-51單片機的指令系統(tǒng)的實現(xiàn)原理11第三章 AL

8、U的原理分析與實現(xiàn)工具123.1 ALU的原理分析123.2 用FPGA實現(xiàn)ALU的設計123.3 ALU的實現(xiàn)工具VHDL語言13第四章 MCS-51單片機的算術模塊設計144.1 加/減法器設計154.2 乘法器設計194.3 除法器設計214.4 十進制調整器設計24第五章 總結與展望28致謝29參考文獻30第一章 緒論1.1 課程設計背景知識 單片機的概述單片機是大規(guī)模集成電路技術發(fā)展的產物,它將中央處理器(CPU)、存儲器(ROM/RAM)、輸入輸出接口、定時器/計數(shù)器等主要計算機部件集成在一片芯片上,因此單片機被稱為單片微型計算機(Single Chip Microcomputer

9、)。目前單片機是計算機家族中重要的一員。單片機配上適當?shù)耐鈬O備和軟件,便可構成一個單片機應用系統(tǒng)。單片機具有功能強、體積小、價格低和抗干擾能力強等特點,被廣泛應用于工農業(yè)生產、國防、科研及日常生活等各個領域。 單片機的發(fā)展歷程單片機1974年,美國Fairchild公司研制出世界上第一臺由兩塊集成電路芯片組成的單片微型計算機F8,從此單片機開始迅速發(fā)展。從4位機和8位機到現(xiàn)在的16位機和32位機,單片機的功能越來越強大,應用范圍也越來越廣泛。單片機的發(fā)展歷程通??梢苑譃橐韵聨讉€階段:(1) 第一代單片機(19741976年)這是單片機發(fā)展的起步階段。在這個時期生產的單片機屬4位機型,集成度低

10、。典型的代表產品有Intel公司的4004四位單片機,主要應用于家用電器領域中。(2) 第二代單片機(19761978年)這是單片機的發(fā)展階段。這個時代生產的單片機屬低、中檔8位機型,片內集成有CPU、輸入輸出接口、定時器和ROM等功能部件,是8位機的早期產品,存儲器容量小,性能低,目前已很少應用。典型的產品有Intel公司的MCS-48系列單片機。(3) 第三代單片機(19791982年)這一代單片機的存儲容量和尋址范圍都有擴大,而且增加了中斷源、并行I/O和定時器/計數(shù)器個數(shù),集成了全雙工串行通信接口電路。代表產品有Intel公司的MCS-51系列機。(4) 第四代單片機(1982年以后)

11、這是16位單片機和8位高性能單片機并行發(fā)展的時代。16位單片機的特點是工藝先進、集成度高和內部功能強,代表產品有Intel公司的MCS-96系列等。1.1.3 單片機的發(fā)展趨勢隨著大規(guī)模集成電路及超大規(guī)模集成電路的發(fā)展,單片機將向著更深層次發(fā)展,主要體現(xiàn)在以下幾個方面:(1) 高集成度一片單片機內部集成的ROM/RAM容量增大,增加了電閃存儲器,具有掉電保護功能,并且集成了A/D、D/A轉換器、定時器/計數(shù)器、系統(tǒng)故障監(jiān)測和DMA電路等。(2) 引腳多功能化,隨著芯片內部功能的增強和資源的豐富,一腳多用的設計方案日益顯示出其重要地位。(3) 高性能這是單片機發(fā)展所追求的一個目標,更高的性能將會

12、使單片機應用系統(tǒng)設計變得更加簡單、可靠。(4) 低功耗這將是未來單片機發(fā)展所追求的一個目標,隨著單片機集成度的不斷提高,由單片機構成的系統(tǒng)體積越來越小,低功耗將是設計單片機產品時首先考慮的指標。 單片機的特點及應用1. 單片機的特點:(1) 可靠性高單片機采用三總線結構,抗干擾能力強,可靠性高。(2) 功能強單片機具有判斷和處理能力,可以直接對I/O口進行各種操作(輸入輸出、位操作以及算術邏輯操作等),運算速度高,實時控制功能強。(3) 體積小、功耗低 由于單片機包含了運算器等基本功能部件,具有較高的集成度,因此由單片機組成的應用系統(tǒng)結構簡單、體積小、功能全。電源單一,功耗低。(4) 使用方便

13、 由于單片機內部功能強,系統(tǒng)擴展方便,因此應用系統(tǒng)的硬件設計非常簡單。(5) 性能價格比較高,易于產品化 單片機具有功能強、價格便宜、體積小、插接件少、安裝調試簡單等特點,使單片機應用系統(tǒng)的性能價格比較高。同時單片機開發(fā)工具很多,這些開發(fā)工具都具有很強的軟硬件調試功能,使單片機的應用開發(fā)極為方便,大大縮短了產品研制的周期,并使單片機應用系統(tǒng)易于產品化。2. 單片機的應用單片機的應用概括起來,主要有以下幾方面:(1) 單片機在智能儀表中的應用單片機廣泛地應用于各種智能儀器儀表中,簡化了儀器儀表的硬件結構,增強了控制功能,提高了測量速度和測量精度。(2) 單片機在機電一體化中的應用機電一體化產品集

14、機械技術、電子技術、自動化技術和計算機技術于一身,是機械工業(yè)發(fā)展的方向。將單片機應用于機械行業(yè),發(fā)揮它的體積小、可靠性高、功能強和安裝方便等優(yōu)點,提高了機器的自動化和智能化程度,促進了機電一體化的發(fā)展。(3) 單片機在實時控制中的應用單片機被廣泛地應用于各種實時控制系統(tǒng)中。例如對工業(yè)生產過程中溫度、濕度、流量和壓力等參數(shù)的測量和控制等。(4) 單片機在分布式測控系統(tǒng)中的應用分布式測控系統(tǒng)的主要特點是系統(tǒng)中有多個處理單元,各自完成特定的任務,可通過網(wǎng)絡通信相互聯(lián)系、協(xié)調工作,具有功能強、可靠性高的特點。單片機可作為一個處理單元應用于分布式測控系統(tǒng)中。(5) 單片機在工業(yè)過程控制中的應用單片機的I

15、/O口線多,并具有位操作能力,特別適用于工業(yè)過程控制。(6) 單片機在日常生活中的應用由于單片機價格低廉、體積小、邏輯判斷及控制功能強,因此被廣泛地應用于日常生活的各個方面,如洗衣機、電冰箱、電子玩具、立體聲音響和家用防盜系統(tǒng)等。 單片機面臨的問題(1)低速由于單片機的工作方式是通過內部的cpu逐條執(zhí)行的軟件指令來完成各種運算和邏輯功能的,因而無論多么高的工作時鐘頻率和多么好的指令時序方式,在串行指令執(zhí)行方式面前,其工作速度和效率必將大打折扣。因此,單片機在實時仿真、高速工控或高速數(shù)據(jù)采樣等許多領域尤顯力不從心。(2)PC“跑飛”在強干擾或某種偶然的因素下,任何單片機的程序計數(shù)器都極可能超出正

16、常的程序流程“跑飛”,事實證明,無論多么優(yōu)秀的單片機,在強電磁干擾情況下,單片機都無法保證其仍能正常工作而不進入不可挽回的“死機”狀態(tài)。(3)開發(fā)周期長單片機是執(zhí)行軟件指令的方式實現(xiàn)邏輯功能的,不同的單片機通常具有不同的匯編語言,使得程序的可移植性差,此外,在開發(fā)單片機的軟件程序中需要隨時顧及特定的單片機的應簡潔共和外圍設備接口。所以這一切導致了單片機應用系統(tǒng)開發(fā)效率低,開發(fā)周期時間長。 單片機與FPGA/CPLD的對比在傳統(tǒng)的控制系統(tǒng)中,人們常常采用單片機作為控制核心。但這種方法硬件連線復雜,可靠性差,且單片機的端口數(shù)目,內部定時器和中斷源的個數(shù)都有限,在實際應用中往往需要外加擴展芯片,這無

17、疑對系統(tǒng)的設計帶來諸多不便,現(xiàn)在有很多系統(tǒng)采用可編程邏輯器件FPGA/CPLD(現(xiàn)場可編程門陣列/復雜可編程邏輯器件)作為控制核心,它與傳統(tǒng)設計相比較,不僅簡化了接口和控制,提高了系統(tǒng)的整體性能及工作可靠性,也為系統(tǒng)集成創(chuàng)造了條件。下面我們來看單片機和FPGA/CPLD的對比:(1)單片機的學習效率較低。單片機直接面對硬件,大多數(shù)都使用匯編語言不同廠家生產的單片機其匯編語言也不同,并且,單片機編程還與硬件的連接方式有關,而FPGA/CPLD可使用標準硬件描述語言VHDL(Very high Speed integrated Circuit Hardware Deseription Langua

18、ge)對所有型號的FPGA/CPLD編程。同時,VHDL是一種行為描述語言,可以遠離硬件編程,打破了軟硬件之間的屏障,使學習和設計的效率大大提高。(2)單片機本身的速度相對FPGA/CPLD來顯得太慢。單片機是用指令排隊形式來執(zhí)行指令的,影響了速度的提高。而FPGA/CPLD在實時處理時均為并行工作,速度快。(3)單片機各引腳的功能是確定的,而FPGA/CPLD可以根據(jù)需要用軟件改變各引腳的功能。與MCS-51單片機相比FPGA/CPLD的優(yōu)勢是多方面的,以下是他們的優(yōu)點與優(yōu)勢。(1)編程方式簡便、先進。FPGA/CPLD產品越來越多地采用了先進的在系統(tǒng)配置編程方式。(2)高速。FPGA/CP

19、LD的時鐘延遲可達納秒級,結合其并行工作方式在超高速應用領域和實時測控方面有非常廣闊的應用前景。(3)高可靠性。除了不存在SCM所特有的復位不可靠與PC可能跑飛等固有缺陷外,F(xiàn)PGA/CPLD的高可靠性還表現(xiàn)在幾乎可將整個系統(tǒng)下載于同一芯片中,從而大大縮小了體積,易于管理和屏蔽。(4)開發(fā)工具和設計語言標準化,開發(fā)周期短。由于開發(fā)工具的通用性,設計語言的標準化以及設計過程幾乎與所用的FPGA/CPLD器件的硬件結構沒有關系,使得設計成功的各類邏輯功能塊有很好的兼容性和可移植性,它幾乎可用于任何型號的FPGA/CPLD從而使得片上系統(tǒng)的產品設計效率大幅度提高。(5)功能強大,應用廣闊。目前FPG

20、A/CPLD可供選擇范圍很大,可根據(jù)不同的應用選用不同容量的芯片,利用它們可實現(xiàn)幾乎任何形式的數(shù)字電路或數(shù)字系統(tǒng)的設計。(6)易學易用,開發(fā)便捷。FPGA/CPLD應用的學習不需太多的預備知識,只要具有通常的數(shù)字電路和計算機編程基礎知識,就足以在短期內掌握基本的設計方法和開發(fā)技巧。 EDA技術設計方法系統(tǒng)級設計EDA是一種高層次的電子設計方法,也即系統(tǒng)級設計方法。高層次設計是一種“概念驅動式”設計,設計人員無須通過門級原理圖描述電路,而是針對設計目標進行功能描述,由于擺脫了電路細節(jié)的束縛,設計人員可以把精力集中于創(chuàng)造性的方案與概念構思上,一旦這些概念構思以高層次描述的形式輸入計算機后,EDA系

21、統(tǒng)就能以規(guī)則驅動的方式自動完成整個設計。這樣,新的概念得以迅速有效的成為產品,大大縮短了產品的研制周期。不僅如此,高層次設計只是定義系統(tǒng)的行為特性,可以不涉及實現(xiàn)工藝,在廠家綜合庫的支持下,利用綜合優(yōu)化工具可以將高層次描述轉換成針對某種工藝優(yōu)化的網(wǎng)表,工藝轉化變得輕松容易。具體的設計流程如圖1-1所示。系統(tǒng)劃分VHDL代碼或圖形方式輸入編譯器代碼級功能仿真綜合器適配前時序仿真適配器適配后仿真模型器件編輯文件適配報告適配后時序仿真CPLD/FPGA實現(xiàn)ASIC實現(xiàn)廠家綜合庫圖1-1 EDA設計流程圖FPGACPLD是一種新興的高密度的可編程邏輯器件,它具有門陣列的高密度和PLD器件的靈活性和易用

22、性,目前已成為一類主要的可編程器件??删幊唐骷淖畲筇攸c是可通過軟件編程對其器件的結構和工作方式進行重構,能隨時進行設計調整而滿足產品升級。使得硬件的設計可以如軟件設計一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機構成的數(shù)字系統(tǒng)的設計方法、設計過程及設計觀念,使電子設計的技術操作和系統(tǒng)構成在整體上發(fā)生了質的飛躍。采用FPGACPLD可編程器件,可利用計算機軟件的方式對目標器件進行設計,而以硬件的形式實現(xiàn)。既定的系統(tǒng)功能,在設計過程中,可根據(jù)需要隨時改變器件的內部邏輯功能和管腳的信號方式,借助于大規(guī)模集成的FPGACPLD和高效的設計軟件,用戶不僅可通過直接對芯片結構的設計實行多種數(shù)字邏輯系統(tǒng)功

23、能,而且由于管腳定義的靈活性,大大減輕了電路圖設計和電路板設計的工作量的難度,同時,這種基于可編程芯片的設計大大減少了系統(tǒng)芯片的數(shù)量,縮小了系統(tǒng)的體積,提高了系統(tǒng)的可靠性。EDA技術就是以計算機為工具,在EDA軟件平臺上,對以硬件描述語言HDL為系統(tǒng)邏輯描述手段,完成的設計文件自動完成邏輯編譯、邏輯化簡、邏輯綜合及優(yōu)化、邏輯仿真,直至對特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA的仿真測試技術只需要通過計算機就能對所設計的電子系統(tǒng)從各種不同層次的系統(tǒng)性能特點完成一系列準確的測試與仿真操作,大大提高了大規(guī)模系統(tǒng)電子設計的自動化程度。設計者的工作僅限于利用軟件方式,即利用硬件描述語言(

24、如VHDL)來完成對系統(tǒng)硬件功能的描述,在EDA工具的幫助下就可以得到最后的設計結果,這使得對整個硬件系統(tǒng)的設計和修改過程如同完成軟件設計一樣方便、高效。 第二章 單片機的結構原理2.1 單片機的內部模塊功能MCS-51的內部結構框圖如圖21所示,其內部各部分的功能簡述如下:圖2-1單片機的內部結構框圖1運算器運算器包括算術邏輯部件ALU、位處理器、累加器A、寄存器B、暫存器、以及程序狀態(tài)寄存器PSW等。該模塊的功能是實現(xiàn)數(shù)據(jù)的算術運算、邏輯運算、位變量處理和數(shù)據(jù)傳送等操作。ALU的功能十分強大,它不僅可以對8位變量進行邏輯“與”、“或”、“非”、“異或”、移位和清零等基本操作,還可以進行加、

25、減、乘、除和十進制調整等基本運算。ALU還具有一般微機的ALU所不具備的功能,即位處理操作,它可以對位(bit)變量進行處理,如置位、清零、測試轉移以及邏輯“與”、“或”、“非”等操作。由此可見,ALU在算術運算以及控制處理方面的能力是很強的。累加器A是一個8位的累加器。從功能上看它與一般微機的累加器相比沒有什么特別之處,但需要說明的是A的進位標志Cy是特殊的,因為它同時又是位處理器的一位累加器。寄存器B是為執(zhí)行乘法和除法操作設置的,在不執(zhí)行乘、除法操作的一般情況下,可以把它當一個普通的寄存器使用。程序狀態(tài)寄存器PSW,是一個8位的可讀寫寄存器,它的不同位包含了程序狀態(tài)的不同信息。其中進位標志

26、位Cy輔助進位標志位AC)和OV在執(zhí)行算術和邏輯指令時,可以由硬件或者軟件(Cy可以有軟件置位或清零)改變,因此運算器應該有上述三位狀態(tài)改變的輸出信息。本課題設計的運算器將完全以組合邏輯電路的形式出現(xiàn),其內部將不包括累加器A、寄存器B、以及程序狀態(tài)字寄存器PSW。它只是根據(jù)所接收的指令,將來自累加器、程序或者數(shù)據(jù)存儲器的數(shù)據(jù)進行相應的算術或者邏輯運算,然后將運算結果以及程序狀態(tài)字寄存器PSW的相關位以結果的形式輸出。2控制器控制部件是單片機的中樞神經(jīng),以主振頻率為基準,控制器控制CPU的時序,對指令進行譯碼,然后發(fā)出各種控制信號,將各個硬件環(huán)節(jié)組織在一起??刂破麟娐钒ǔ绦蛴嫈?shù)器PC、PC加1

27、寄存器、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針SP、緩沖器以及定時與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調單片機各部分正常工作。程序計數(shù)器PC用來存放即將要執(zhí)行的指令地址,它可以完成64K的外部存儲器尋址,執(zhí)行指令時,PC內容的高8位經(jīng)P2口輸出,低8位經(jīng)P0口輸出。數(shù)據(jù)指針DPTR為16位數(shù)據(jù)指針,它可以對64K的外部數(shù)據(jù)存儲器和I/O口進行尋址,它的低8位為DPL(地址82H),高8位為DPH(地址為83H)。堆棧指針SP在片內RAM(128字節(jié))中開辟棧區(qū),并隨時跟蹤棧頂?shù)刂?,它按先進后出的原則存取數(shù)據(jù),上電復位后,SP指向07H。3存儲器MCS51系列單片機的存儲器包括

28、數(shù)據(jù)存儲器和程序存儲器,其主要特點是程序存儲器和數(shù)據(jù)存儲器的尋址空間是相互獨立的,物理結構也不相同。對MCS51系列(8031除外)而言,有4個物理上相互獨立的存儲器空間:即內、外程序存儲器和內、外數(shù)據(jù)存儲器。對于8051其芯片中共有256個RAM單元,其中后128個單元被專用寄存器占用,只有前128個單元供用戶使用。4定時器/計數(shù)器MCS51系列單片機有兩個可編程定時器/計數(shù)器,即定時器/計數(shù)器0和1。它們各具有兩種工作模式(定時器模式和計數(shù)器模式)和4種工作方式(方式0,方式1、方式2、方式3)。4種工作方式中,前三種方式對兩個定時器/計數(shù)器都是一樣的,方式3對兩者時不同的,這一點在設計時

29、要注意。特殊功能寄存器TMOD(定時器/計數(shù)器方式控制寄存器)用于控制定時器/計數(shù)器的工作模式和過方式。另一個特殊功能寄存器TCON(定時器/計數(shù)器控制寄存器)用于T0和T1的啟動和停止計數(shù),同時還包含了T0和T1的狀態(tài)。有關定時器/計數(shù)器的各個工作方式將在具體設計中詳細敘述。5串行口MCS51系列單片機內部有一個功能很強的全雙工的串行口,該串行口有四種工作方式,波特率可以由軟件設置,由片內的定時器/計數(shù)器產生。串行口有兩個物理上獨立地接收、發(fā)送緩沖器SBUF,可以同時發(fā)送、接收數(shù)據(jù),發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,兩個緩沖器公用一個字節(jié)地址(99H)。串行口的接收、發(fā)

30、送數(shù)據(jù)均可觸發(fā)中斷系統(tǒng)。同時,還有兩個控制寄存器來控制MCS51單片機地串行口,它們是特殊功能寄存器SCON和PCON。6并行口MCS51單片機共有4個8位的I/O口(P0、P1、P2和P3),每一條I/O線都能獨立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個TTL門電路,P1、P2和P3口為準雙向口,負載能力為4個TTL門電路。7中斷控制系統(tǒng)MCS51單片機的中斷功能較強,以滿足控制應用的需要。8051共有5個中斷源,即外中斷2個,定時/計數(shù)中斷2個,串行中斷1個。所有中斷分為高級和低級兩個中斷優(yōu)先級。8時鐘電路MCS51芯片內部有時鐘電路,但晶體振蕩器和微調電容必須外接。時鐘電路為單片機

31、產生時鐘脈沖序列,振蕩器的頻率范圍為1.2MHz12MHz,典型取值為6MHZ。9總線以上所有組成部分都是通過總線連接起來,從而構成一個完整的單片機。系統(tǒng)的地址信號、數(shù)據(jù)信號和控制信號都是通過總線傳送的,總線結構減少了單片機的連線和引腳,提高了集成度和可靠性。2.2 MCS-51單片機的指令系統(tǒng)的實現(xiàn)原理MCS51系列單片機的指令系統(tǒng)采用匯編語言,它的指令系統(tǒng)是一種簡明高效的指令系統(tǒng),由42種助記符和7種尋址方式組合而成。其基本指令共有111條,其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。如果按功能可以講這些指令分為五類:數(shù)據(jù)傳送類(29條)、算術操作類(24條)、邏輯操作類(2

32、4條)、控制轉移類(17條)以及位變量操作類(17條)。對于反向設計而言,我們關心的不是它的各種具體指令的多少而是指令的尋址方式。所謂的尋址方式就是尋找確定參與操作的數(shù)的真正地址。MCS51系列單片機的111條指令一共只采用了7種尋址方式。它們分別為:立即尋址、直接尋找、寄存器尋址、寄存器間接尋址、變址尋址、相對尋址、位尋址。第三章 ALU的原理分析與實現(xiàn)工具3.1 ALU的原理分析8051單片機的ALU是一個性能極強的運算器,它的功能為:(1)加、減、乘、除四則運算。(2)與、或、非、異或等邏輯運算。(3)數(shù)據(jù)傳送、移位、判斷和程序轉移等功能。8051單片機的ALU為用戶提供了豐富的指令系統(tǒng)

33、和極快的指令執(zhí)行速度,大部分指令的執(zhí)行時間為1s,乘法指令可達4s。8051時鐘頻率可達12MHZ。3.2 用FPGA實現(xiàn)ALU的設計在現(xiàn)代電子系統(tǒng)中,數(shù)字系統(tǒng)所占的比例越來越大。現(xiàn)代電子系統(tǒng)發(fā)展的趨勢是數(shù)字化和集成化,CPLD/FPGA作為可編程ASIC器件,在數(shù)字系統(tǒng)設計中發(fā)揮著重要的作用。與傳統(tǒng)的可編程器件相比,F(xiàn)PGA采用了類似門陣列的通用結構,規(guī)??梢宰龅妮^大,可實現(xiàn)的功能更強,設計的靈活性更大。且FPGA的容量越來越大,它所提供的門數(shù)從幾百門到上百萬門,可以滿足不同的需要。因此用FPGA來實現(xiàn)ALU的功能不會受到FPGA門數(shù)的限制。用FPGA實現(xiàn)的ALU有很多優(yōu)點:(1)編程方式簡

34、便先進。(2)高速:FPGA的時鐘延遲可達納秒級,結合其并行工作方式在超高速應用領域和實時測控方面有非常廣闊的應用前景。(3)高可靠性:表現(xiàn)在幾乎可將整個系統(tǒng)下載于同一芯片中從而大大縮小了體積易于管理和屏蔽。(4)開發(fā)工具和設計語言標準化開發(fā)周期短。(5)功能強大應用廣闊的 FPGA可供選擇范圍很大,可根據(jù)不同的應用選用不同容量的芯片。利用它們可實現(xiàn)幾乎任何形式的數(shù)字電路或數(shù)字系統(tǒng)的設計。(6)易學易用開發(fā)便捷:FPGA應用的學習不需太多的預備知識,只要具有通常的數(shù)字電路和計算機編程基礎知識,就足以在短期內掌握基本的設計方法和開發(fā)技巧。3.3 ALU的實現(xiàn)工具VHDL語言VHDL語言的英文全名

35、是Very High Speed Integrated Circuit Hardware Description Language即超高速集成電路硬件描述語言,是一種用于設計硬件電子系統(tǒng)的計算機語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結合和連接形式。與傳統(tǒng)的門級描述方式相比,它更適合大規(guī)模系統(tǒng)的設計。VHDL的優(yōu)點:(1)語言標準、規(guī)范、描述能力強。 (2)可讀性好,易于共享和復用。 (3)支持數(shù)字電路的開發(fā)環(huán)境,設計技術齊全、方法靈活。 (4)可以與工藝無關編程。 (5)支持層次化(框圖)、出錯處理和驗證。 第四章 MCS-51單片機的算術模塊設計算術運算模塊的功能是按照控制單

36、元給出的指令,對來自數(shù)據(jù)存儲器、程序存儲器、累加器A以及程序狀態(tài)字的相關位的數(shù)據(jù),進行相關的算術和邏輯運算。本模塊只進行字節(jié)運算,而不象原始的MCS51那樣,在ALU中還可以進行位運算(4位運算將直接在控制器中處理)。這個模塊將用純組合邏輯電路來實現(xiàn)。ALU模塊的實體結構如圖41所示。圖4-1 ALU模塊實體圖ALU由6個模塊組成:分別是譯碼與控制分配模塊alumux、邏輯運算模塊alucore、加減模塊addsub、乘法模塊mul、除法模塊div和二十進制調整模塊adjust。ALUALUMUXALUCOREADDSUBCORMULTIPLCDIVIDERADJUSTADDSUB-CYADD

37、SUB-OV-CY圖4-2是ALU模塊設計層次圖4.1 加/減法器設計addsub加減法模塊主要用來實現(xiàn)alu模塊算術運算中的加減法運算,由于減法運算實現(xiàn)也可以轉化成加法運算,因此addsub模塊的實現(xiàn)實質就是加法器的設計,實現(xiàn)后的實體圖如圖4-3所示。其中輸入端口18個,兩個8位的操作數(shù)端口opa_i和opb_i,用于存放加數(shù)和被加數(shù);一個狀態(tài)位cy_i,即低位的進位輸入;另一個輸入端為加減法選擇信號addsub_i,高電平時為加法操作,低電平時為減法操作。輸出端口11個,包括8位的運算結果輸出端口rslt_o,兩位的進位狀態(tài)標志位cy_o和一位溢出狀態(tài)標志位ov_o。設計采用組合邏輯設計方

38、法,所以對于設計的關鍵部分,并行進位的產生相應的有一定的要求,即VHDL語言中的進位信號的表示應使用變量(variable),而不能使用信號量(signal)。因此在VHDL語言中,可直接按照公式的要求進行編寫代碼,其結果將由信號rslt_o代出addsub模塊,返回到alumux中。 圖4-3 加/法器實體圖 加減法器模塊設計的VHDL程序如下:library ieee;use ieee.std_logic_1164.all;entity addsub isport(opa_i:in std_logic_vector(7 downto 0);opb_i:in std_logic_vector

39、(7 downto 0);cy_i:in std_logic;addsub_i:in std_logic;ov_o:out std_logic;rslt_o:out std_logic_vector(7 downto 0);cy_o:out std_logic_vector(1 downto 0);end addsub;architecture rtl of addsub isbegin process(opa_i,opb_i,cy_i,addsub_i)variable s_c:std_logic_vector(7 downto 0);variable p:std_logic_vector(

40、8 downto 1);variable g:std_logic_vector(8 downto 1);variable c:std_logic_vector(8 downto 0);beginif addsub_i=1then-adderp:=opa_i xor opb_i;g:=opa_i and opb_i;c(0):=cy_i;c(1):=g(1)or(p(1)and c(0);c(2):=g(2)or(p(2)and g(1)or(p(2)and p(1)and c(0);c(3):=g(3)or(p(3)and g(2)or(p(3)and p(2)and g(1)or(p(3)a

41、nd p(2)and p(1)and c(0);c(4):=g(4)or(p(4)and g(3)or(p(4)and p(3)and g(2)or(p(4)and p(3)and p(2)and g(1)or(p(4)and p(3)and p(2)and p(1)and c(0);c(5):=g(5)or(p(5)and g(4)or(p(5)and p(4)and g(3)or(p(5)and p(4)and p(3)and g(2)or(p(5)and p(4)and p(3)and p(2)and g(1)or(p(5)and p(4)and p(3)and p(2)and p(1)

42、and c(0);c(6):=g(6)or(p(6)and g(5)or(p(6)and p(5)and g(4)or(p(6)and p(5)and p(4)and g(3)or(p(6)and p(5)and p(4)and p(3)and g(2)or(p(6)and p(5)and p(4)and p(3)and p(2)and g(1)or(p(6)and p(5)and p(4)and p(3)and p(2)and p(1)and c(0);c(7):=g(7)or(p(7)and g(6)or(p(7)and p(6)and g(5)or(p(7)and p(6)and p(5

43、)and g(4)or(p(7)and p(6)and p(5)and p(4)and g(3)or(p(7)and p(6)and p(5)and p(4)and p(3)and g(2)or(p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and g(1)or(p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and p(1)and c(0);c(8):=g(8)or(p(8)and g(7)or(p(8)and p(7)and g(6)or(p(8)and p(7)and p(6)and g(5)or(p(8)

44、and p(7)and p(6)and p(5)and g(4)or(p(8)and p(7)and p(6)and p(5)and p(4)and g(3)or(p(8)and p(7)and p(6)and p(5)and p(4)and p(3)and g(2)or(p(8)and p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and g(1)or(p(8)and p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and p(1)and c(0);ov_o=(c(8)xor c(7);cy_o=c(8)and

45、c(4);s_c:=p xor c(7 downto 0);else p:=opa_i xor(not opb_i);-subtractorg:=opa_i and(not opb_i);c(0):=not cy_i;c(1):=g(1)or(p(1)and c(0);c(2):=g(2)or(p(2)and g(1)or(p(2)and p(1)and c(0);c(3):=g(3)or(p(3)and g(2)or(p(3)and p(2)and g(1)or(p(3)and p(2)and p(1)and c(0);c(4):=g(4)or(p(4)and g(3)or(p(4)and

46、p(3)and g(2)or(p(4)and p(3)and p(2)and g(1)or(p(4)and p(3)and p(2)and p(1)and c(0);c(5):=g(5)or(p(5)and g(4)or(p(5)and p(4)and g(3)or(p(5)and p(4)and p(3)and g(2)or(p(5)and p(4)and p(3)and p(2)and g(1)or(p(5)and p(4)and p(3)and p(2)and p(1)and c(0);c(6):=g(6)or(p(6)and g(5)or(p(6)and p(5)and g(4)or(

47、p(6)and p(5)and p(4)and g(3)or(p(6)and p(5)and p(4)and p(3)and g(2)or(p(6)and p(5)and p(4)and p(3)and p(2)and g(1)or(p(6)and p(5)and p(4)and p(3)and p(2)and p(1)and c(0);c(7):=g(7)or(p(7)and g(6)or(p(7)and p(6)and g(5)or(p(7)and p(6)and p(5)and g(4)or(p(7)and p(6)and p(5)and p(4)and g(3)or(p(7)and p

48、(6)and p(5)and p(4)and p(3)and g(2)or(p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and g(1)or(p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and p(1)and c(0);c(8):=g(8)or(p(8)and g(7)or(p(8)and p(7)and g(6)or(p(8)and p(7)and p(6)and g(5)or(p(8)and p(7)and p(6)and p(5)and g(4)or(p(8)and p(7)and p(6)and p

49、(5)and p(4)and g(3)or(p(8)and p(7)and p(6)and p(5)and p(4)and p(3)and g(2)or(p(8)and p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and g(1)or(p(8)and p(7)and p(6)and p(5)and p(4)and p(3)and p(2)and p(1)and c(0);ov_o=(not c(8)xor(not c(7);cy_o=(not c(8)and (not c(4);s_c:=p xor c(7 downto 0);end if;rslt

50、_o=s_c;end process;end rtl; 圖4-4是對addsub加/減法器功能進行軟件仿真的仿真結果,圖中可知,加/減法器計算結果以及標志的輸出均正確。 圖4-4 addsub功能仿真圖4.2 乘法器設計mul模塊主要實現(xiàn)算術運算中的乘法運算,該模塊的設計非常簡單,直接利用VHDL語言中的乘法運算符編寫程序進行設計即可,其實體圖如圖4-5所示。mul模塊的輸入為被乘數(shù)mula和乘數(shù)mulb,均為8位輸入,而輸出product_o為16位輸出。在VHDL的實現(xiàn)中,內部運算的實現(xiàn)仍然是通過變量的是用來實現(xiàn)的,因為內部的移位相加是通過for循環(huán)語句來實現(xiàn)的。因為是8位的乘法器,所以要

51、循環(huán)8次,且從乘數(shù)的最低位開始循環(huán)至最高位。每次循環(huán)時都要對乘數(shù)的對應位進行判斷,若乘數(shù)的對應位是1,則把被乘數(shù)與保存中間值的變量值相加,然后再存于變量v_d中;若乘數(shù)的對應位是0,則直接把保存中間值的變量值送入變量v_d中。判斷結束后,循環(huán)中止前,都要把v_d中的值放到v_c中,并右移一位。依此循環(huán)8次,則可求出最終乘積, 而乘積的結果由信號product_o送回到alumux模塊。圖4-5 mul模塊實體圖mul乘法器模塊設計的VHDL程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mul isport(mula:in std_logic_vector(7 downto 0);mulb:in std_logic_vector(7 downto 0);product_o:out std_logic_vector(15 downto 0);end mul;architecture rtl of mul isbeginprocess(mul

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論