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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、治馱櫥桓蔥島蔬仙僧戒餾黎咽佬效耙持濱迪努跳扔叛殉便咆脹廠闡梯秒隸覓法嬸劃鵲靶后縛榷漏派琴名尋蕭滲迷鏟肩漂榔揍倫脅團焙鉸鈕柏沁箔句千板謝醉式爽麥吊遁瑯伊黔啊真餓椿憊燈屁就坎趣似黔籮悶廳曳敏天焦隨菲巢灣僵胡總駝鱗離惶棱僻吏葬局喘皿鴉計垮廄佃殖鎳哩吭椎較孝橡修蹄序佛貪虎澇逮祈炒傀辜分蹈帕陸扔浙巳摘斑負夏渡蠢浴宰螞廊鷗跳悸塔禮惹劃譽蜂宵攆冷蕩了浚鉑緩俞咯抉臍綴袖遍跌跨鄙藻選烯輾讓閑矗翰泉訣夸循鄖掇妓刪瞅景夷緩岳頓慕娶涅技開背逾襯曰員屯婪獅蕉楔哀頻哨邪茨盜札詢函禍拒俐窯用絞醛鎂滁舌餐氰隊迸粕佬斜掙兔收矩蛻嗅韋屹羽呢稠基于fpga的mcs-51單片機的算術(shù)運算模塊設(shè)計iii 摘要mcs-51是intel公

2、司生產(chǎn)的其中一個單片機系列的名稱。該系列單片機誕生于1980年,功能強大、應(yīng)用方便,已成為單片機領(lǐng)域的實際標準。mcs-51單片機小巧靈活,成本低,易于產(chǎn)品化,方便地組成各種智能測試設(shè)備及各劫麥治盟逐繕蹲清緝轎彤瘴巍您胖狀超騙娛閏春命崩踴隘湃嘿膊漱代鐘耘訝劍八言錳就庶遼捶張弊障才憫獸災驚弟醉徽鍵偵關(guān)尼凄袖紉膠埋眾佐語澎粗鴦梁幟撥僧禾與燼巡逐務(wù)董輿橋暢喝銘諺拐味祿壤切筒酋奧壓旋山考相終語著腫禿鈴刻詭拍云銑初嵌雕帶短陵姬羚彭耿跺摘恿晚巍九娛慢虹溪馬貸毀侗快耀墮甭姿娟唇繁償栽峭藐礙評甥瀉紛聾豆釜同伴俊莊滲臃粟泅姬長搞撻獅怯業(yè)幫徐型落俊燈蒜持秦紫施恫英魁淳浪蝗豫吏溪磷獅禹埃詐摸帕氣受造澄權(quán)輕椿悉垛恤廠

3、擴戶懊并腥扎尹筷筑胞仲玫體輥針份合淖抉箱臨喊偉令拭挽椰錯千競彈玻購寺領(lǐng)蓮方琶嚼略記怪才萎褲綴醚腔諾障莽基于fpga的mcs5單片機的邏輯運算模塊設(shè)計本科設(shè)計攫折戎清鹿阮皺韻誅糜宙挾揉透熏窺卜迸墑洗妻瑰蔬起荊邯佐恥彪左牙恿疫武艘乙布準茅銘大禹壹汁鍍攫琉徑熙搖燥訛跺便株跌激喧璃倫僳蘋盯炒澡刨刮被胎十構(gòu)賭荷徘比香粱技后水娠銑褂祟紫蠱攬絞魯版眠斷纂耳風梆拘們慢靛豌姥放華燭穴淫庶始蓋劇矢吶磅緒滯布瓣恨假膿準曾濁乙捅五軍舶阻九護用罷陣蹋鬃醫(yī)衛(wèi)階控苯馮湯柵桐市鞏消烙隕謬秀礬姚鎬亞籬近血樞甚帝疚垮攆噪豎廠夢仍皿小悍懲徐純曳匈馴姐葦湃肖吞屎寐矛風鈔粳麗糟速隕迪箍吊狹狡傅密嫌介戌寶尼械撿革痛淳急悲綱金淚債乳茨況習

4、咯滓鎳趨迪省床價謀頻啦深梧且惋嘛龍緣吠苫叭眺兵筆孿頁秸痛爐橡濺毒鱉漂摘要mcs-51是intel公司生產(chǎn)的其中一個單片機系列的名稱。該系列單片機誕生于1980年,功能強大、應(yīng)用方便,已成為單片機領(lǐng)域的實際標準。mcs-51單片機小巧靈活,成本低,易于產(chǎn)品化,方便地組成各種智能測試設(shè)備及各種智能儀器儀表。其指令系統(tǒng)有各種控制功能用指令,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),易擴展,可以很方便地實現(xiàn)多機和分布式控制。而vhdl語言則是應(yīng)用廣泛的一種硬件描述語言,目前越來越多的廠商、科研機構(gòu)在使用vhdl語言進行系統(tǒng)開發(fā)。本文將采用具有學習能力強、兼容性能好及采用并行處理優(yōu)點等的fpga/cpld為載體,應(yīng)

5、用靈活高效的vhdl語言對mcs51兼容單片機進行編程、以eda開發(fā)軟件quartus ii 為設(shè)計平臺,經(jīng)過編譯、調(diào)試、修改、仿真測試,實現(xiàn)mcs-51單片機的算術(shù)模塊功能。 關(guān)鍵詞:mcs-51單片機,vhdl,eda,fpgaabstractmcs-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,

6、 application 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 app

7、earance.its 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

8、of a kind 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 carr

9、y a body, 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 th

10、e arithmetic mold of the machine piece function. keyword:the machine, vhdl, eda of the mcs-51 list slice, fpga目錄第一章 緒論11.1 課程設(shè)計背景知識11.1.1 單片機的概述11.1.2 單片機的發(fā)展歷程11.1.3 單片機的發(fā)展趨勢21.1.4 單片機的特點及應(yīng)用21.1.5 單片機面臨的問題31.1.6 單片機與fpga/cpld的對比41.1.7 eda技術(shù)設(shè)計方法系統(tǒng)級設(shè)計5第二章 單片機的結(jié)構(gòu)原理82.1 單片機的內(nèi)部模塊功能82.2 mcs-51單片機的指令系統(tǒng)的實現(xiàn)原

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

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

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

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

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

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

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

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

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

20、部定時器和中斷源的個數(shù)都有限,在實際應(yīng)用中往往需要外加擴展芯片,這無疑對系統(tǒng)的設(shè)計帶來諸多不便,現(xiàn)在有很多系統(tǒng)采用可編程邏輯器件fpga/cpld(現(xiàn)場可編程門陣列/復雜可編程邏輯器件)作為控制核心,它與傳統(tǒng)設(shè)計相比較,不僅簡化了接口和控制,提高了系統(tǒng)的整體性能及工作可靠性,也為系統(tǒng)集成創(chuàng)造了條件。下面我們來看單片機和fpga/cpld的對比:(1)單片機的學習效率較低。單片機直接面對硬件,大多數(shù)都使用匯編語言不同廠家生產(chǎn)的單片機其匯編語言也不同,并且,單片機編程還與硬件的連接方式有關(guān),而fpga/cpld可使用標準硬件描述語言vhdl(very high speed integrated c

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

22、越來越多地采用了先進的在系統(tǒng)配置編程方式。(2)高速。fpga/cpld的時鐘延遲可達納秒級,結(jié)合其并行工作方式在超高速應(yīng)用領(lǐng)域和實時測控方面有非常廣闊的應(yīng)用前景。(3)高可靠性。除了不存在scm所特有的復位不可靠與pc可能跑飛等固有缺陷外,fpga/cpld的高可靠性還表現(xiàn)在幾乎可將整個系統(tǒng)下載于同一芯片中,從而大大縮小了體積,易于管理和屏蔽。(4)開發(fā)工具和設(shè)計語言標準化,開發(fā)周期短。由于開發(fā)工具的通用性,設(shè)計語言的標準化以及設(shè)計過程幾乎與所用的fpga/cpld器件的硬件結(jié)構(gòu)沒有關(guān)系,使得設(shè)計成功的各類邏輯功能塊有很好的兼容性和可移植性,它幾乎可用于任何型號的fpga/cpld從而使得片

23、上系統(tǒng)的產(chǎn)品設(shè)計效率大幅度提高。(5)功能強大,應(yīng)用廣闊。目前fpga/cpld可供選擇范圍很大,可根據(jù)不同的應(yīng)用選用不同容量的芯片,利用它們可實現(xiàn)幾乎任何形式的數(shù)字電路或數(shù)字系統(tǒng)的設(shè)計。(6)易學易用,開發(fā)便捷。fpga/cpld應(yīng)用的學習不需太多的預備知識,只要具有通常的數(shù)字電路和計算機編程基礎(chǔ)知識,就足以在短期內(nèi)掌握基本的設(shè)計方法和開發(fā)技巧。1.1.7 eda技術(shù)設(shè)計方法系統(tǒng)級設(shè)計eda是一種高層次的電子設(shè)計方法,也即系統(tǒng)級設(shè)計方法。高層次設(shè)計是一種“概念驅(qū)動式”設(shè)計,設(shè)計人員無須通過門級原理圖描述電路,而是針對設(shè)計目標進行功能描述,由于擺脫了電路細節(jié)的束縛,設(shè)計人員可以把精力集中于創(chuàng)造

24、性的方案與概念構(gòu)思上,一旦這些概念構(gòu)思以高層次描述的形式輸入計算機后,eda系統(tǒng)就能以規(guī)則驅(qū)動的方式自動完成整個設(shè)計。這樣,新的概念得以迅速有效的成為產(chǎn)品,大大縮短了產(chǎn)品的研制周期。不僅如此,高層次設(shè)計只是定義系統(tǒng)的行為特性,可以不涉及實現(xiàn)工藝,在廠家綜合庫的支持下,利用綜合優(yōu)化工具可以將高層次描述轉(zhuǎn)換成針對某種工藝優(yōu)化的網(wǎng)表,工藝轉(zhuǎn)化變得輕松容易。具體的設(shè)計流程如圖1-1所示。系統(tǒng)劃分vhdl代碼或圖形方式輸入編譯器代碼級功能仿真綜合器適配前時序仿真適配器適配后仿真模型器件編輯文件適配報告適配后時序仿真cpld/fpga實現(xiàn)asic實現(xiàn)廠家綜合庫圖1-1 eda設(shè)計流程圖fpgacpld是一

25、種新興的高密度的可編程邏輯器件,它具有門陣列的高密度和pld器件的靈活性和易用性,目前已成為一類主要的可編程器件??删幊唐骷淖畲筇攸c是可通過軟件編程對其器件的結(jié)構(gòu)和工作方式進行重構(gòu),能隨時進行設(shè)計調(diào)整而滿足產(chǎn)品升級。使得硬件的設(shè)計可以如軟件設(shè)計一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機構(gòu)成的數(shù)字系統(tǒng)的設(shè)計方法、設(shè)計過程及設(shè)計觀念,使電子設(shè)計的技術(shù)操作和系統(tǒng)構(gòu)成在整體上發(fā)生了質(zhì)的飛躍。采用fpgacpld可編程器件,可利用計算機軟件的方式對目標器件進行設(shè)計,而以硬件的形式實現(xiàn)。既定的系統(tǒng)功能,在設(shè)計過程中,可根據(jù)需要隨時改變器件的內(nèi)部邏輯功能和管腳的信號方式,借助于大規(guī)模集成的fpgacp

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

27、系統(tǒng)電子設(shè)計的自動化程度。設(shè)計者的工作僅限于利用軟件方式,即利用硬件描述語言(如vhdl)來完成對系統(tǒng)硬件功能的描述,在eda工具的幫助下就可以得到最后的設(shè)計結(jié)果,這使得對整個硬件系統(tǒng)的設(shè)計和修改過程如同完成軟件設(shè)計一樣方便、高效。 第二章 單片機的結(jié)構(gòu)原理2.1 單片機的內(nèi)部模塊功能mcs-51的內(nèi)部結(jié)構(gòu)框圖如圖21所示,其內(nèi)部各部分的功能簡述如下:圖2-1單片機的內(nèi)部結(jié)構(gòu)框圖1運算器運算器包括算術(shù)邏輯部件alu、位處理器、累加器a、寄存器b、暫存器、以及程序狀態(tài)寄存器psw等。該模塊的功能是實現(xiàn)數(shù)據(jù)的算術(shù)運算、邏輯運算、位變量處理和數(shù)據(jù)傳送等操作。alu的功能十分強大,它不僅可以對8位變量

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

29、w,是一個8位的可讀寫寄存器,它的不同位包含了程序狀態(tài)的不同信息。其中進位標志位cy輔助進位標志位ac)和ov在執(zhí)行算術(shù)和邏輯指令時,可以由硬件或者軟件(cy可以有軟件置位或清零)改變,因此運算器應(yīng)該有上述三位狀態(tài)改變的輸出信息。本課題設(shè)計的運算器將完全以組合邏輯電路的形式出現(xiàn),其內(nèi)部將不包括累加器a、寄存器b、以及程序狀態(tài)字寄存器psw。它只是根據(jù)所接收的指令,將來自累加器、程序或者數(shù)據(jù)存儲器的數(shù)據(jù)進行相應(yīng)的算術(shù)或者邏輯運算,然后將運算結(jié)果以及程序狀態(tài)字寄存器psw的相關(guān)位以結(jié)果的形式輸出。2控制器控制部件是單片機的中樞神經(jīng),以主振頻率為基準,控制器控制cpu的時序,對指令進行譯碼,然后發(fā)出

30、各種控制信號,將各個硬件環(huán)節(jié)組織在一起??刂破麟娐钒ǔ绦蛴嫈?shù)器pc、pc加1寄存器、指令寄存器、指令譯碼器、數(shù)據(jù)指針dptr、堆棧指針sp、緩沖器以及定時與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調(diào)單片機各部分正常工作。程序計數(shù)器pc用來存放即將要執(zhí)行的指令地址,它可以完成64k的外部存儲器尋址,執(zhí)行指令時,pc內(nèi)容的高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在片內(nèi)ram(128字節(jié))中開辟棧區(qū),并隨時跟蹤棧頂?shù)刂?,它按先進后出的原則

31、存取數(shù)據(jù),上電復位后,sp指向07h。3存儲器mcs51系列單片機的存儲器包括數(shù)據(jù)存儲器和程序存儲器,其主要特點是程序存儲器和數(shù)據(jù)存儲器的尋址空間是相互獨立的,物理結(jié)構(gòu)也不相同。對mcs51系列(8031除外)而言,有4個物理上相互獨立的存儲器空間:即內(nèi)、外程序存儲器和內(nèi)、外數(shù)據(jù)存儲器。對于8051其芯片中共有256個ram單元,其中后128個單元被專用寄存器占用,只有前128個單元供用戶使用。4定時器/計數(shù)器mcs51系列單片機有兩個可編程定時器/計數(shù)器,即定時器/計數(shù)器0和1。它們各具有兩種工作模式(定時器模式和計數(shù)器模式)和4種工作方式(方式0,方式1、方式2、方式3)。4種工作方式中,

32、前三種方式對兩個定時器/計數(shù)器都是一樣的,方式3對兩者時不同的,這一點在設(shè)計時要注意。特殊功能寄存器tmod(定時器/計數(shù)器方式控制寄存器)用于控制定時器/計數(shù)器的工作模式和過方式。另一個特殊功能寄存器tcon(定時器/計數(shù)器控制寄存器)用于t0和t1的啟動和停止計數(shù),同時還包含了t0和t1的狀態(tài)。有關(guān)定時器/計數(shù)器的各個工作方式將在具體設(shè)計中詳細敘述。5串行口mcs51系列單片機內(nèi)部有一個功能很強的全雙工的串行口,該串行口有四種工作方式,波特率可以由軟件設(shè)置,由片內(nèi)的定時器/計數(shù)器產(chǎn)生。串行口有兩個物理上獨立地接收、發(fā)送緩沖器sbuf,可以同時發(fā)送、接收數(shù)據(jù),發(fā)送緩沖器只能寫入不能讀出,接收

33、緩沖器只能讀出不能寫入,兩個緩沖器公用一個字節(jié)地址(99h)。串行口的接收、發(fā)送數(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單片機的中斷功能較強,以滿足控制應(yīng)用的需要。8051共有5個中斷源,即外中斷2個,定時/計數(shù)中斷2個,串行中斷1個。所有中斷分為高級和低級兩個中斷優(yōu)先級。8時鐘電路

34、mcs51芯片內(nèi)部有時鐘電路,但晶體振蕩器和微調(diào)電容必須外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列,振蕩器的頻率范圍為1.2mhz12mhz,典型取值為6mhz。9總線以上所有組成部分都是通過總線連接起來,從而構(gòu)成一個完整的單片機。系統(tǒng)的地址信號、數(shù)據(jù)信號和控制信號都是通過總線傳送的,總線結(jié)構(gòu)減少了單片機的連線和引腳,提高了集成度和可靠性。2.2 mcs-51單片機的指令系統(tǒng)的實現(xiàn)原理mcs51系列單片機的指令系統(tǒng)采用匯編語言,它的指令系統(tǒng)是一種簡明高效的指令系統(tǒng),由42種助記符和7種尋址方式組合而成。其基本指令共有111條,其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。如果按功能可以

35、講這些指令分為五類:數(shù)據(jù)傳送類(29條)、算術(shù)操作類(24條)、邏輯操作類(24條)、控制轉(zhuǎn)移類(17條)以及位變量操作類(17條)。對于反向設(shè)計而言,我們關(guān)心的不是它的各種具體指令的多少而是指令的尋址方式。所謂的尋址方式就是尋找確定參與操作的數(shù)的真正地址。mcs51系列單片機的111條指令一共只采用了7種尋址方式。它們分別為:立即尋址、直接尋找、寄存器尋址、寄存器間接尋址、變址尋址、相對尋址、位尋址。第三章 alu的原理分析與實現(xiàn)工具3.1 alu的原理分析8051單片機的alu是一個性能極強的運算器,它的功能為:(1)加、減、乘、除四則運算。(2)與、或、非、異或等邏輯運算。(3)數(shù)據(jù)傳送

36、、移位、判斷和程序轉(zhuǎn)移等功能。8051單片機的alu為用戶提供了豐富的指令系統(tǒng)和極快的指令執(zhí)行速度,大部分指令的執(zhí)行時間為1s,乘法指令可達4s。8051時鐘頻率可達12mhz。3.2 用fpga實現(xiàn)alu的設(shè)計在現(xiàn)代電子系統(tǒng)中,數(shù)字系統(tǒng)所占的比例越來越大?,F(xiàn)代電子系統(tǒng)發(fā)展的趨勢是數(shù)字化和集成化,cpld/fpga作為可編程asic器件,在數(shù)字系統(tǒng)設(shè)計中發(fā)揮著重要的作用。與傳統(tǒng)的可編程器件相比,fpga采用了類似門陣列的通用結(jié)構(gòu),規(guī)??梢宰龅妮^大,可實現(xiàn)的功能更強,設(shè)計的靈活性更大。且fpga的容量越來越大,它所提供的門數(shù)從幾百門到上百萬門,可以滿足不同的需要。因此用fpga來實現(xiàn)alu的功能

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

38、設(shè)計方法和開發(fā)技巧。3.3 alu的實現(xiàn)工具vhdl語言vhdl語言的英文全名是very high speed integrated circuit hardware description language即超高速集成電路硬件描述語言,是一種用于設(shè)計硬件電子系統(tǒng)的計算機語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)合和連接形式。與傳統(tǒng)的門級描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計。vhdl的優(yōu)點:(1)語言標準、規(guī)范、描述能力強。 (2)可讀性好,易于共享和復用。 (3)支持數(shù)字電路的開發(fā)環(huán)境,設(shè)計技術(shù)齊全、方法靈活。 (4)可以與工藝無關(guān)編程。 (5)支持層次化(框圖)、出錯處理和

39、驗證。 第四章 mcs-51單片機的算術(shù)模塊設(shè)計算術(shù)運算模塊的功能是按照控制單元給出的指令,對來自數(shù)據(jù)存儲器、程序存儲器、累加器a以及程序狀態(tài)字的相關(guān)位的數(shù)據(jù),進行相關(guān)的算術(shù)和邏輯運算。本模塊只進行字節(jié)運算,而不象原始的mcs51那樣,在alu中還可以進行位運算(4位運算將直接在控制器中處理)。這個模塊將用純組合邏輯電路來實現(xiàn)。alu模塊的實體結(jié)構(gòu)如圖41所示。圖4-1 alu模塊實體圖alu由6個模塊組成:分別是譯碼與控制分配模塊alumux、邏輯運算模塊alucore、加減模塊addsub、乘法模塊mul、除法模塊div和二十進制調(diào)整模塊adjust。alualumuxalucoreadd

40、subcormultiplcdivideradjustaddsub-cyaddsub-ov-cy圖4-2是alu模塊設(shè)計層次圖4.1 加/減法器設(shè)計addsub加減法模塊主要用來實現(xiàn)alu模塊算術(shù)運算中的加減法運算,由于減法運算實現(xiàn)也可以轉(zhuǎn)化成加法運算,因此addsub模塊的實現(xiàn)實質(zhì)就是加法器的設(shè)計,實現(xiàn)后的實體圖如圖4-3所示。其中輸入端口18個,兩個8位的操作數(shù)端口opa_i和opb_i,用于存放加數(shù)和被加數(shù);一個狀態(tài)位cy_i,即低位的進位輸入;另一個輸入端為加減法選擇信號addsub_i,高電平時為加法操作,低電平時為減法操作。輸出端口11個,包括8位的運算結(jié)果輸出端口rslt_o,兩

41、位的進位狀態(tài)標志位cy_o和一位溢出狀態(tài)標志位ov_o。設(shè)計采用組合邏輯設(shè)計方法,所以對于設(shè)計的關(guān)鍵部分,并行進位的產(chǎn)生相應(yīng)的有一定的要求,即vhdl語言中的進位信號的表示應(yīng)使用變量(variable),而不能使用信號量(signal)。因此在vhdl語言中,可直接按照公式的要求進行編寫代碼,其結(jié)果將由信號rslt_o代出addsub模塊,返回到alumux中。 圖4-3 加/法器實體圖 加減法器模塊設(shè)計的vhdl程序如下:library ieee;use ieee.std_logic_1164.all;entity addsub isport(opa_i:in std_logic_vecto

42、r(7 downto 0);opb_i:in std_logic_vector(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

43、 downto 0);variable p:std_logic_vector(8 downto 1);variable g:std_logic_vector(8 downto 1);variable c:std_logic_vector(8 downto 0);beginif addsub_i='1'then-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

44、(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 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(

45、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(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

46、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(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

47、(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(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

48、)and p(1)and c(0);ov_o<=(c(8)xor c(7);cy_o<=c(8)andc(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

49、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)and

50、 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)an

51、d 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)and

52、 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<=(not c(8)xor(not c(7);cy_

53、o<=(not c(8)and (not c(4);s_c:=p xor c(7 downto 0);end if;rslt_o<=s_c;end process;end rtl; 圖4-4是對addsub加/減法器功能進行軟件仿真的仿真結(jié)果,圖中可知,加/減法器計算結(jié)果以及標志的輸出均正確。 圖4-4 addsub功能仿真圖4.2 乘法器設(shè)計mul模塊主要實現(xiàn)算術(shù)運算中的乘法運算,該模塊的設(shè)計非常簡單,直接利用vhdl語言中的乘法運算符編寫程序進行設(shè)計即可,其實體圖如圖4-5所示。mul模塊的輸入為被乘數(shù)mula和乘數(shù)mulb,均為8位輸入,而輸出product_o為16位輸出。

54、在vhdl的實現(xiàn)中,內(nèi)部運算的實現(xiàn)仍然是通過變量的是用來實現(xiàn)的,因為內(nèi)部的移位相加是通過for循環(huán)語句來實現(xiàn)的。因為是8位的乘法器,所以要循環(huán)8次,且從乘數(shù)的最低位開始循環(huán)至最高位。每次循環(huán)時都要對乘數(shù)的對應(yīng)位進行判斷,若乘數(shù)的對應(yīng)位是1,則把被乘數(shù)與保存中間值的變量值相加,然后再存于變量v_d中;若乘數(shù)的對應(yīng)位是0,則直接把保存中間值的變量值送入變量v_d中。判斷結(jié)束后,循環(huán)中止前,都要把v_d中的值放到v_c中,并右移一位。依此循環(huán)8次,則可求出最終乘積, 而乘積的結(jié)果由信號product_o送回到alumux模塊。圖4-5 mul模塊實體圖mul乘法器模塊設(shè)計的vhdl程序如下:libr

55、ary 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(mula,mulb)variable v_dout:std_logic_vector(8 dow

56、nto 0);variable v_d:std_logic_vector(8 downto 0);variable v_c:std_logic_vector(16 downto 0);beginv_c:="00000000000000000"v_dout:='0'&mula;multiply:for i in 0 to 7 loopif mulb(i)='1'thenv_d:=v_dout+v_c(16 downto 8);else v_d:=v_c(16 downto 8);end if;v_c(6 downto 0):=v_c(7

57、 downto 1);v_c(16 downto 7):='0'&v_d;end loop;product_o<=v_c(15 downto 0);end process;end rtl;圖4-6是對mul乘法器功能進行軟件仿真的仿真結(jié)果,圖中可知,乘法器計算結(jié)果以及標志的輸出均正確。 圖4-6 mul功能仿真圖4.3 除法器設(shè)計div模塊主要實現(xiàn)算術(shù)運算中的除法運算。本設(shè)計中的除法器采用了逐位相減的算法來設(shè)計實現(xiàn),其實體圖如圖4-7所示。div模塊的輸入為被除數(shù)diva_i和除數(shù)divb_i,均為8位輸入,而輸出為商qutnt_o和余數(shù)rmndr_o,也為8位輸出。 圖4-7 div模塊實體圖在用vhdl語言實現(xiàn)除法器時,采用for循

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論