![開(kāi)發(fā)一個(gè)與8051單片機(jī)完全兼容的IP內(nèi)核_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/8174768a-5fb4-4fbc-8a67-e62e36ec81d0/8174768a-5fb4-4fbc-8a67-e62e36ec81d01.gif)
![開(kāi)發(fā)一個(gè)與8051單片機(jī)完全兼容的IP內(nèi)核_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/8174768a-5fb4-4fbc-8a67-e62e36ec81d0/8174768a-5fb4-4fbc-8a67-e62e36ec81d02.gif)
![開(kāi)發(fā)一個(gè)與8051單片機(jī)完全兼容的IP內(nèi)核_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/8174768a-5fb4-4fbc-8a67-e62e36ec81d0/8174768a-5fb4-4fbc-8a67-e62e36ec81d03.gif)
![開(kāi)發(fā)一個(gè)與8051單片機(jī)完全兼容的IP內(nèi)核_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/8174768a-5fb4-4fbc-8a67-e62e36ec81d0/8174768a-5fb4-4fbc-8a67-e62e36ec81d04.gif)
![開(kāi)發(fā)一個(gè)與8051單片機(jī)完全兼容的IP內(nèi)核_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/8174768a-5fb4-4fbc-8a67-e62e36ec81d0/8174768a-5fb4-4fbc-8a67-e62e36ec81d05.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄目錄摘要3Abstract4第一章 緒論5§1.1 集成電路設(shè)計(jì)簡(jiǎn)介51.1.1 集成電路發(fā)展簡(jiǎn)史51.1.2 集成電路設(shè)計(jì)流程61.1.3 集成電路設(shè)計(jì)方法8§1.2 VHDL語(yǔ)言簡(jiǎn)介81.2.1 硬件描述語(yǔ)言81.2.2 VHDL語(yǔ)言9§1.3 MCS-51單片機(jī)簡(jiǎn)介101.3.1 單片機(jī)的產(chǎn)生和發(fā)展101.3.2 Intel MCS51單片機(jī)11§1.4 開(kāi)發(fā)工具的選擇111.4.1 VHDL開(kāi)發(fā)工具111.4.2 Altera公司的MaxPlus II121.4.3 Altera公司的Quartus II121.4.4 Aldec公司的Act
2、ive HDL121.4.5 其他輔助工具13§1.5 本次畢業(yè)設(shè)計(jì)的意義及目標(biāo)131.5.1 畢業(yè)設(shè)計(jì)的意義131.5.1 畢業(yè)設(shè)計(jì)的目標(biāo)14第二章 系統(tǒng)總體規(guī)劃與構(gòu)思15§2.1 MCS-51單片機(jī)的總體結(jié)構(gòu)152.1.1 MCS51單片機(jī)硬件結(jié)構(gòu)的特點(diǎn)152.1.2 MCS-51單片機(jī)的引腳描述152.1.3 MCS51片內(nèi)總體結(jié)構(gòu)17§2.2 MCS-51單片機(jī)的指令分解192.2.1 CPU時(shí)序192.2.2 指令分解20§2.3 各部分模塊的初步劃分222.3.1 總體設(shè)計(jì)思想222.3.2 各模塊的劃分222.3.3 各模塊的簡(jiǎn)單說(shuō)明24第
3、三章 譯碼/控制模塊的實(shí)現(xiàn)26§3.1 譯碼/控制模塊設(shè)計(jì)思想263.1.1模塊功能263.1.2設(shè)計(jì)思想26§3.2 譯碼/控制模塊的實(shí)現(xiàn)過(guò)程273.2.1接口及控制信號(hào)27第四章 總結(jié)與展望33§4.1 階段成果和心得33§4.2 不足與展望334.2.1 存在的不足334.2.2 改進(jìn)意見(jiàn)34附錄35參考文獻(xiàn)3537摘要摘要MCS-51是Intel公司生產(chǎn)的其中一個(gè)單片機(jī)系列的名稱。該系列單片機(jī)誕生于1980年,功能強(qiáng)大、應(yīng)用方便,已成為單片機(jī)領(lǐng)域的實(shí)際標(biāo)準(zhǔn)。而VHDL語(yǔ)言則是應(yīng)用廣泛的一種硬件描述語(yǔ)言,目前越來(lái)越多的廠商、科研機(jī)構(gòu)在使用VHDL語(yǔ)
4、言進(jìn)行系統(tǒng)開(kāi)發(fā)。本文詳細(xì)介紹應(yīng)用VHDL語(yǔ)言進(jìn)行MCS51兼容單片機(jī)開(kāi)發(fā)的過(guò)程,包括指令的分解、模塊的劃分以及功能的實(shí)現(xiàn)等。其中,重點(diǎn)講述控制/譯碼模塊的實(shí)現(xiàn)。關(guān)鍵詞:硬件描述語(yǔ)言,機(jī)器周期,指令周期第一章 緒論AbstractAbstractMCS-51 is the name of a Micro Chip Unit(MCU) that produced by Intel Corporation. These MCUs were first produced in 1980. It has powerful function and can be easily used, so it be
5、comes the standard of the MCUs. And VHDL(VHSIC Hardware Description Language) is a kind of HDL(Hardware Description Language), which is applied extensively. More and more electronic company and organization develop their system by using this language.This article will introduce how to use VHDL to de
6、velop a MCU that is compatible with MCS-51, including the decomposition of machine command, division of function model, the realization of each model, and so on. And among all, it will go into much greater detail on the subject of the realization of controller/decoder unit.key words: HDL, machine cy
7、cle, command cycle 第一章 緒論第一章 緒論§1.1 集成電路設(shè)計(jì)簡(jiǎn)介1.1.1 集成電路發(fā)展簡(jiǎn)史自1958年美國(guó)德克薩斯儀器公司(TI)發(fā)明集成電路(Intergrated Circuit簡(jiǎn)稱IC)后,隨著硅平面技術(shù)的發(fā)展,二十世紀(jì)六十年代先后發(fā)明了雙極型和MOS型兩種重要的集成電路,它標(biāo)志著由電子管和晶體管制造電子整機(jī)的時(shí)代發(fā)生了量和質(zhì)的飛躍,創(chuàng)造了一個(gè)前所未有的具有極強(qiáng)滲透力和旺盛生命力的新興產(chǎn)業(yè)集成電路產(chǎn)業(yè)?;仡櫦呻娐返陌l(fā)展歷程,我們可以看到,自發(fā)明集成電路至今40多年以來(lái),"從電路集成到系統(tǒng)集成"這句話是對(duì)IC產(chǎn)品從小規(guī)模集成電路(S
8、SI)到今天特大規(guī)模集成電路(ULSI)發(fā)展過(guò)程的最好總結(jié),即整個(gè)集成電路產(chǎn)品的發(fā)展經(jīng)歷了從傳統(tǒng)的板上系統(tǒng)(System-on-board)到片上系統(tǒng)(System-on-a-chip)的過(guò)程。在這歷史過(guò)程中,世界IC產(chǎn)業(yè)為適應(yīng)技術(shù)的發(fā)展和市場(chǎng)的需求,其產(chǎn)業(yè)結(jié)構(gòu)經(jīng)歷了三次變革。第一次變革:以加工制造為主導(dǎo)的IC產(chǎn)業(yè)發(fā)展的初級(jí)階段。70年代,集成電路的主流產(chǎn)品是微處理器、存儲(chǔ)器以及標(biāo)準(zhǔn)通用邏輯電路。這一時(shí)期IC制造商(IDM)在IC市場(chǎng)中充當(dāng)主要角色,IC設(shè)計(jì)只作為附屬部門(mén)而存在。這時(shí)的IC設(shè)計(jì)和半導(dǎo)體工藝密切相關(guān)。IC設(shè)計(jì)主要以人工為主,CAD系統(tǒng)僅作為數(shù)據(jù)處理和圖形編程之用。IC產(chǎn)業(yè)僅處在以
9、生產(chǎn)為導(dǎo)向的初級(jí)階段。第二次變革:Foundry公司與IC設(shè)計(jì)公司的崛起。80年代,集成電路的主流產(chǎn)品為微處理器(MPU)、微控制器(MCU)及專用IC(ASIC)。這時(shí),無(wú)生產(chǎn)線的IC設(shè)計(jì)公司(Fabless)與標(biāo)準(zhǔn)工藝加工線(Foundry)相結(jié)合的方式開(kāi)始成為集成電路產(chǎn)業(yè)發(fā)展的新模式。隨著微處理器和PC機(jī)的廣泛應(yīng)用和普及(特別是在通信、工業(yè)控制、消費(fèi)電子等領(lǐng)域),IC產(chǎn)業(yè)已開(kāi)始進(jìn)入以客戶為導(dǎo)向的階段。一方面標(biāo)準(zhǔn)化功能的IC已難以滿足整機(jī)客戶對(duì)系統(tǒng)成本、可靠性等要求,同時(shí)整機(jī)客戶則要求不斷增加IC的集成度,提高保密性,減小芯片面積使系統(tǒng)的體積縮小,降低成本,提高產(chǎn)品的性能價(jià)格比,從而增強(qiáng)產(chǎn)
10、品的競(jìng)爭(zhēng)力,得到更多的市場(chǎng)份額和更豐厚的利潤(rùn);另一方面,由于IC微細(xì)加工技術(shù)的進(jìn)步,軟件的硬件化已成為可能,為了改善系統(tǒng)的速度和簡(jiǎn)化程序,故各種硬件結(jié)構(gòu)的ASIC如門(mén)陣列、可編程邏輯器件(包括FPGA)、標(biāo)準(zhǔn)單元、全定制電路等應(yīng)運(yùn)而生,其比例在整個(gè)IC銷(xiāo)售額中1982年已占12;其三是隨著EDA工具(電子設(shè)計(jì)自動(dòng)化工具)的發(fā)展,PCB設(shè)計(jì)方法引入IC設(shè)計(jì)之中,如庫(kù)的概念、工藝模擬參數(shù)及其仿真概念等,設(shè)計(jì)開(kāi)始進(jìn)入抽象化階段,使設(shè)計(jì)過(guò)程可以獨(dú)立于生產(chǎn)工藝而存在。有遠(yuǎn)見(jiàn)的整機(jī)廠商和創(chuàng)業(yè)者包括風(fēng)險(xiǎn)投資基金(VC)看到ASIC的市場(chǎng)和發(fā)展前景,紛紛開(kāi)始成立專業(yè)設(shè)計(jì)公司和IC設(shè)計(jì)部門(mén),一種無(wú)生產(chǎn)線的集成電
11、路設(shè)計(jì)公司(Fabless)或設(shè)計(jì)部門(mén)紛紛建立起來(lái)并得到迅速的發(fā)展。同時(shí)也帶動(dòng)了標(biāo)準(zhǔn)工藝加工線(Foundry)的崛起。第三次變革:"四業(yè)分離"的IC產(chǎn)業(yè)90年代,隨著INTERNET的興起,IC產(chǎn)業(yè)跨入以競(jìng)爭(zhēng)為導(dǎo)向的高級(jí)階段,國(guó)際競(jìng)爭(zhēng)由原來(lái)的資源競(jìng)爭(zhēng)、價(jià)格競(jìng)爭(zhēng)轉(zhuǎn)向人才知識(shí)競(jìng)爭(zhēng)、密集資本競(jìng)爭(zhēng)。以DRAM為中心來(lái)擴(kuò)大設(shè)備投資的競(jìng)爭(zhēng)方式已成為過(guò)去。如1990年,美國(guó)以Intel為代表,為抗?fàn)幦毡拒S居世界半導(dǎo)體榜首之威脅,主動(dòng)放棄DRAM市場(chǎng),大搞CPU,對(duì)半導(dǎo)體工業(yè)作了重大結(jié)構(gòu)調(diào)整,又重新奪回了世界半導(dǎo)體霸主地位。這使人們認(rèn)識(shí)到,越來(lái)越龐大的集成電路產(chǎn)業(yè)體系并不有利于整個(gè)IC產(chǎn)
12、業(yè)發(fā)展,"分"才能精,"整合"才成優(yōu)勢(shì)。于是,IC產(chǎn)業(yè)結(jié)構(gòu)向高度專業(yè)化轉(zhuǎn)化成為一種趨勢(shì),開(kāi)始形成了設(shè)計(jì)業(yè)、制造業(yè)、封裝業(yè)、測(cè)試業(yè)獨(dú)立成行的局面。IC設(shè)計(jì)企業(yè)則更加接近市場(chǎng)和了解市場(chǎng),通過(guò)創(chuàng)新開(kāi)發(fā)出高附加值的產(chǎn)品,直接推動(dòng)著電子系統(tǒng)的更新?lián)Q代;同時(shí),在創(chuàng)新中獲取利潤(rùn),在快速、協(xié)調(diào)發(fā)展的基礎(chǔ)上積累資本,帶動(dòng)半導(dǎo)體設(shè)備的更新和新的投入;IC設(shè)計(jì)業(yè)作為集成電路產(chǎn)業(yè)的"龍頭",為整個(gè)集成電路產(chǎn)業(yè)的增長(zhǎng)注入了新的動(dòng)力和活力。1.1.2 集成電路設(shè)計(jì)流程現(xiàn)代集成電路設(shè)計(jì)的基本流程如下圖所示:從圖中可以看出,集成電路設(shè)計(jì)過(guò)程是從頂向下的過(guò)程,其流程大
13、致如下:1行為設(shè)計(jì)硬件設(shè)計(jì)者根據(jù)客戶的功能定義進(jìn)行行為設(shè)計(jì),對(duì)各個(gè)電路功能模塊用硬件描述語(yǔ)言(HDL)完成行為級(jí)描述。2布局規(guī)劃和優(yōu)化、仿真對(duì)上一步中完成的描述進(jìn)行布局規(guī)劃,在進(jìn)行算法優(yōu)化的同時(shí),通常還有進(jìn)行向RTL級(jí)描述的轉(zhuǎn)換,使現(xiàn)有的EDA工具能夠?qū)Σ季忠?guī)劃的結(jié)果進(jìn)行邏輯綜合。3綜合綜合(synthesis )的目標(biāo)是將前面得到的硬件描述語(yǔ)言轉(zhuǎn)換為與具體硬件相對(duì)應(yīng)的網(wǎng)表文件。4邏輯設(shè)計(jì)與邏輯圖輸入將網(wǎng)表文件與廠家工藝庫(kù)相對(duì)應(yīng),將網(wǎng)表文件轉(zhuǎn)換成真正的硬件連接關(guān)系。5布局布線對(duì)上一步的硬件連接關(guān)系進(jìn)行布局布線,這有點(diǎn)類(lèi)似于在EDA設(shè)計(jì)中使用Protel進(jìn)行PCB版的設(shè)計(jì)。6后仿真對(duì)網(wǎng)
14、表文件進(jìn)行綜合后仿真,看設(shè)計(jì)能否滿足要求。7版圖生成與驗(yàn)證對(duì)布局布線生產(chǎn)的版圖進(jìn)行仿真驗(yàn)證。8芯片制造將版圖交付廠家進(jìn)行芯片的流片生產(chǎn)。1.1.3 集成電路設(shè)計(jì)方法常用的集成電路設(shè)計(jì)方法有從頂向下(top-down)和從底向上(bottom-up)的設(shè)計(jì)方法。·從頂向下(top-down)設(shè)計(jì)方法設(shè)計(jì)者根據(jù)系統(tǒng)內(nèi)容,把系統(tǒng)劃分為單元,然后再把每個(gè)單元?jiǎng)澐譃橄乱粚哟蔚膯卧?,直到設(shè)計(jì)的最底層為止。·從底向上(bottom-up)設(shè)計(jì)方法這種方法可以看作是從頂向下設(shè)計(jì)的逆向過(guò)程。設(shè)計(jì)者也是從系統(tǒng)級(jí)開(kāi)始對(duì)設(shè)計(jì)進(jìn)行逐次劃分,但劃分過(guò)程必須從存在的基本單元觸發(fā),設(shè)計(jì)的最底層是已經(jīng)制造出
15、來(lái)的單元或者是其他項(xiàng)目已開(kāi)發(fā)好的單元以及可外購(gòu)得到的單元。§1.2 VHDL語(yǔ)言簡(jiǎn)介1.2.1 硬件描述語(yǔ)言隨著電子技術(shù)的發(fā)展,集成電路的規(guī)模越來(lái)越大,復(fù)雜程度也越來(lái)越高。對(duì)于如此大規(guī)模的和負(fù)責(zé)程度的電路設(shè)計(jì)問(wèn)題,傳統(tǒng)的門(mén)級(jí)描述方法顯得過(guò)于瑣碎和難以管理。硬件描述語(yǔ)言(Hardware Description Language, HDL)就是順應(yīng)這種情況而產(chǎn)生和發(fā)展起來(lái)的。它是一種能夠以形式話方式描述電路結(jié)構(gòu)和行為并用于模擬和綜合的高級(jí)描述方式,具有類(lèi)似于高級(jí)程序設(shè)計(jì)語(yǔ)言的抽象能力。HDL的語(yǔ)法和語(yǔ)義定義都是為描述硬件的行為服務(wù)的,它可以自然的描述硬件中并行的、非的規(guī)的特性以及時(shí)間關(guān)
16、系。一般認(rèn)為,HDL應(yīng)該具有以下能力:能在希望的抽象層次上進(jìn)行精確而簡(jiǎn)練的描述;易于產(chǎn)生用戶手冊(cè)、服務(wù)手冊(cè)等文件,以便多人配合工作;在不同層次上都易于形成用于模擬和驗(yàn)證的設(shè)計(jì)描述;在自動(dòng)設(shè)計(jì)系統(tǒng)中(例如高層次綜合、硅編譯器等)可作為設(shè)計(jì)輸入;可以進(jìn)行硬、軟件的聯(lián)合設(shè)計(jì),消除硬、軟件開(kāi)發(fā)時(shí)間上的間隔;易于修改設(shè)計(jì)和把相應(yīng)的修改納入設(shè)計(jì)文件中;在希望的抽象層次上可以建立設(shè)計(jì)者與用戶的通信界面。1.2.2 VHDL語(yǔ)言從HDL誕生之日起,各個(gè)EDA廠商和科研機(jī)構(gòu)都在建立和使用自己的電路硬件描述語(yǔ)言。這些硬件描述語(yǔ)言各具特色,逐步成為描述硬件電路的重要手段。然而,隨著HDL應(yīng)用的逐步深入,人們發(fā)現(xiàn),各
17、種非標(biāo)準(zhǔn)HDL之間存在的差異已成為束縛設(shè)計(jì)者選擇最佳的設(shè)計(jì)環(huán)境和進(jìn)行相互交流的巨大障礙。因此,要求HDL標(biāo)準(zhǔn)化的呼聲越來(lái)越高。VHDL(VHSIC Hardware Description Language)是由美國(guó)國(guó)防部在20世紀(jì)70年代末提出的VHSIC(Very High Speed Integrated Circuit)計(jì)劃的產(chǎn)物。它最初的設(shè)計(jì)思想是定義一種語(yǔ)言用來(lái)交換硬件設(shè)計(jì)數(shù)據(jù),在開(kāi)發(fā)過(guò)程中得到了計(jì)算機(jī)工業(yè)界、EDA工業(yè)界和集成電路生產(chǎn)廠商的支持,包容了現(xiàn)代硬件描述語(yǔ)言應(yīng)具備的全部特征。1987年12月,IEEE(電氣和電子工程師協(xié)會(huì))正式接受VHDL作為國(guó)際標(biāo)準(zhǔn)(VHDL87);
18、1993年,又對(duì)VHDL作了若干修改,增加了一些功能(VHDL93)。目前,VHDL93的擴(kuò)展工作扔在進(jìn)行之中。概括的說(shuō),VHDL具有以下主要優(yōu)點(diǎn):VHDL具有強(qiáng)大的功能,覆蓋面廣,描述能力強(qiáng),可用于從門(mén)級(jí)、電路級(jí)直至系統(tǒng)級(jí)的描述、仿真和綜合。VHDL支持層次話設(shè)計(jì),可以在VHDL的環(huán)境下,完成從簡(jiǎn)練的設(shè)計(jì)原始描述,經(jīng)過(guò)層層細(xì)化求精,最終獲得可直接付諸生產(chǎn)的電路級(jí)或版圖參數(shù)描述的全過(guò)程。VHDL有良好的可讀性。它可以被計(jì)算機(jī)接受,也容易被讀者理解。用VHDL書(shū)寫(xiě)的源文件,既是程序又是文檔,既是技術(shù)人員直接交換信息的文件,又可作為合同簽約者之間的文件。VHDL有良好的可移植性。作為一種已被IEE
19、E承認(rèn)的工業(yè)標(biāo)準(zhǔn),VHDL事實(shí)上已成為通用的硬件描述語(yǔ)言,可以在不同的設(shè)計(jì)環(huán)境和系統(tǒng)平臺(tái)中使用。使用VHDL可以延長(zhǎng)設(shè)計(jì)的生命周期。因?yàn)閂HDL的硬件描述與工藝技術(shù)無(wú)關(guān),不會(huì)因?yàn)楣に囎兓姑枋鲞^(guò)時(shí)。與工藝技術(shù)有關(guān)的參數(shù)可通過(guò)VHDL提供的屬性加以描述,工藝改變時(shí),只需要修改相應(yīng)程序中的屬性參數(shù)即可。VHDL支持對(duì)大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用。VHDL可以描述復(fù)雜的電路系統(tǒng),支持對(duì)大規(guī)模設(shè)計(jì)進(jìn)行分解,由多人、多項(xiàng)目組來(lái)共同承擔(dān)和完成。標(biāo)準(zhǔn)化的規(guī)則和風(fēng)格,為設(shè)計(jì)的再利用提供了有力的支持。§1.3 MCS-51單片機(jī)簡(jiǎn)介1.3.1 單片機(jī)的產(chǎn)生和發(fā)展隨著電子技術(shù)的發(fā)展,數(shù)字技術(shù)和計(jì)
20、算機(jī)技術(shù)已滲透到了工業(yè)、農(nóng)業(yè)、商業(yè)、教育、醫(yī)療、軍事娛樂(lè)等每一個(gè)領(lǐng)域以及生活中的每一個(gè)角落,其應(yīng)用的廣度和深度已經(jīng)到了令人無(wú)不為之咋舌驚嘆的地步!當(dāng)今,工程技術(shù)人員在設(shè)計(jì)開(kāi)發(fā)一個(gè)系統(tǒng)或一個(gè)新產(chǎn)品的時(shí)候,首先考慮的是如何應(yīng)用計(jì)算機(jī)技術(shù)以提高市場(chǎng)競(jìng)爭(zhēng)能力,計(jì)算機(jī)已經(jīng)成為最重要的工具。盡管PC機(jī)的應(yīng)用已相當(dāng)普遍,但是,在工控領(lǐng)域、在日益追求小而精,輕而薄的自動(dòng)化控制器月動(dòng)化儀器儀表、家電產(chǎn)品等方面,PC機(jī)仍有所不相適宜。而工業(yè)控制、儀器儀表、家電產(chǎn)品等市場(chǎng)廣闊,要求PC機(jī)技術(shù)與之相適應(yīng)。在這種情況下,單片機(jī)應(yīng)運(yùn)而生了。單片機(jī)(Micro Control Unit, MCU)以它的優(yōu)異的控制功能,在工
21、控領(lǐng)域、智能化儀器儀表系統(tǒng)等日益顯示著強(qiáng)大的生命力。一小小的芯片(幾個(gè)平方厘米)便具有了計(jì)算機(jī)的基本功能,從而使工控系統(tǒng)、儀器儀表、家電產(chǎn)品等向智能化方向產(chǎn)生了飛躍。也正是由于這種原因,從80年代以來(lái),無(wú)論是教學(xué)科研領(lǐng)域,還是工程開(kāi)發(fā)部門(mén),學(xué)習(xí)單片機(jī),應(yīng)用單片機(jī),新技術(shù)浪潮一浪高過(guò)一浪。單片機(jī)技術(shù)也由最初的8位發(fā)展到 16位和 32位(CPU信息處理能力甚至超過(guò)了 PC 80286),功能也由單一型發(fā)展到了豐富實(shí)用型。單片機(jī)的發(fā)展大概經(jīng)歷了四個(gè)階段:第一階段(19711974年):1971年11月,美國(guó)Intel公司首先設(shè)計(jì)出4位微處理器Intel 4004,并且配有隨機(jī)存取存儲(chǔ)器RAM,只讀
22、存儲(chǔ)器ROM和移位寄存器等芯片,構(gòu)成第一臺(tái)MCS4微型計(jì)算機(jī)。1972年4月Intel公司又研制成功了功能較強(qiáng)的8位微處理器,Intel 8008。在此期間,F(xiàn)airchild公司也研制成功了F8微處理器。從此拉開(kāi)了研制單片機(jī)的序幕。第二階段(19741978年):初級(jí)單片機(jī)階段。以Intel公司的MCS48為代表。這個(gè)系列的單片機(jī)集成有8位CPU、并行I/O口、8位定時(shí)/計(jì)數(shù)器。第三階段(19781983年):高性能單片機(jī)階段。在這一階段推出的單片機(jī)普遍帶有串行口,有多級(jí)中斷處理系統(tǒng)、16位定時(shí)器/計(jì)數(shù)器。片內(nèi)RAM、ROM容量加大,尋址范圍可達(dá)64K字節(jié),有的片內(nèi)還帶有A/D轉(zhuǎn)換器接口。這
23、類(lèi)單片機(jī)有Intel公司的MCS51,Motorola公司的6801和Zilog公司的Z80等。第四階段(1983年):8位單片機(jī)鞏固發(fā)展和16位單片機(jī)推出階段。此階段的主要特征是一方面發(fā)展16位單片機(jī)及專用單片機(jī),另一方面又不斷完善高檔8位單片機(jī),改善其結(jié)構(gòu),以滿足不同用戶的需要。1.3.2 Intel MCS51單片機(jī)在單片機(jī)發(fā)展過(guò)程中,Intel公司扮演了重要角色。MCS-51是Intel公司生產(chǎn)的其中一個(gè)單片機(jī)系列的名稱。該系列單片機(jī)誕生于單片機(jī)發(fā)展的第三階段,是在MCS48的基礎(chǔ)上推出的增強(qiáng)型產(chǎn)品。屬于這一個(gè)系列的單片機(jī)芯片有許多,包括8031,8051,8751等等。由于MCS51
24、單片機(jī)功能強(qiáng)大、應(yīng)用方便,在小到中型應(yīng)用場(chǎng)合常常見(jiàn)其身影。8051更是成為單片機(jī)領(lǐng)域的實(shí)際標(biāo)準(zhǔn)。80年代中期,Intel公司將8051的內(nèi)核使用權(quán)以專利互換和出售的形式轉(zhuǎn)給世界上許多著名的IC制造廠商,如PHILIPS、西門(mén)子、AMD、OKI、NEC、Atmel等,這樣8051就變成有眾多制造廠商支持的、發(fā)展出上百個(gè)品種的大家族。而隨著硬件的發(fā)展,支持51系列的開(kāi)發(fā)工具也越來(lái)越多,在編程語(yǔ)言的選擇上也越來(lái)越靈活(如C、Basic等語(yǔ)言)。§1.4 開(kāi)發(fā)工具的選擇1.4.1 VHDL開(kāi)發(fā)工具隨著VHDL應(yīng)用的逐漸廣泛,各個(gè)廠商的VHDL開(kāi)發(fā)工具也越來(lái)越多。常用的有Altera公司的Ma
25、x+Plus II,Quartus II,Aldec公司Active HDL,Xilinx公司的Foundation Series,Cadence公司的SPW等等。這些工具各有特點(diǎn),各有優(yōu)勢(shì)。1.4.2 Altera公司的MaxPlus IIAltera 的MAX+PLUS II可編程邏輯開(kāi)發(fā)軟件,提供了一種與結(jié)構(gòu)無(wú)關(guān)的全集成化設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能對(duì)Altera的各種PLD系列方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。MAX+PLUS II開(kāi)發(fā)系統(tǒng)具有強(qiáng)大的處理能力和高度的靈活性,它的優(yōu)點(diǎn)主要表有:·與結(jié)構(gòu)無(wú)關(guān) MAX+PLUS II系統(tǒng)的核心Compiler(編譯程序)支持從Clas
26、sic到FLEX10K的Altera全部系列的PLD產(chǎn)品,提供與結(jié)構(gòu)無(wú)關(guān)的PLD設(shè)計(jì)開(kāi)發(fā)環(huán)境,具有強(qiáng)大的邏輯綜合與優(yōu)化功能。·全集成化 MAX+PLUS II的設(shè)計(jì)輸入、處理和校驗(yàn)功能全部集成在統(tǒng)一的開(kāi)發(fā)環(huán)境下,可以加快動(dòng)態(tài)調(diào)試,縮短開(kāi)發(fā)周期。·豐富的設(shè)計(jì)庫(kù) MAX+PLUS II提供豐富的庫(kù)單元供設(shè)計(jì)者調(diào)用,其中包括74系列的全部器件和多種特殊的邏輯宏單元(Macro-Function),以及新型的參數(shù)化的巨單元(Maga-Function)。調(diào)用庫(kù)單元進(jìn)行設(shè)計(jì),可以大大減輕設(shè)計(jì)工作量,設(shè)計(jì)周期成倍縮短。缺點(diǎn):由于MAXPlus II主要是為Altera公司自己的AHDL
27、語(yǔ)言設(shè)計(jì)的,對(duì)VHDL語(yǔ)言支持的不是太好,不少語(yǔ)法均不支持。1.4.3 Altera公司的Quartus IIQuartus II 是Altera公司的另一款可編程邏輯器件的開(kāi)發(fā)工具,功能相當(dāng)強(qiáng)大,并提供Nios軟件,可快速設(shè)計(jì)軟件CPU,幫助設(shè)計(jì)者加快可編程單芯片(SOPC)設(shè)計(jì)。Quartus II適用于Altera高容量可編程邏輯器件(PLD),包括APEXII器件系列。缺點(diǎn):跟MAXPlus II一樣,Quartus II的缺點(diǎn)也是對(duì)VHDL語(yǔ)言支持不是太好。1.4.4 Aldec公司的Active HDLActive HDL是Aldec公司的一款優(yōu)秀的VHDL/Verilog開(kāi)發(fā)工具
28、。它功能強(qiáng)大,支持方框圖(BDE)和有限狀態(tài)機(jī)(FSM)的編輯,操作簡(jiǎn)單,使用方便。同時(shí)它提供了強(qiáng)大的時(shí)序仿真功能,并支持外掛軟件進(jìn)行邏輯綜合、布局布線等。是進(jìn)行前端開(kāi)發(fā)的最好的工具之一。1.4.5 其他輔助工具在畢業(yè)設(shè)計(jì)中,還用到了其他一些開(kāi)發(fā)工具,如Keil公司的Keil Vision等。Keil Vision是用來(lái)開(kāi)發(fā)51系列單片機(jī)應(yīng)用程序的一款工具,支持匯編、C語(yǔ)言編程,同時(shí)支持軟件仿真,支持全速、單步調(diào)試,與單片機(jī)真正運(yùn)行環(huán)境相差無(wú)幾,而且可以很方便的觀測(cè)單片機(jī)內(nèi)各個(gè)寄存器的變化情況。§1.5 本次畢業(yè)設(shè)計(jì)的意義及目標(biāo)1.5.1 畢業(yè)設(shè)計(jì)的意義目前我國(guó)的信息產(chǎn)業(yè)正在迅猛發(fā)展
29、,但作為其支撐的集成電路產(chǎn)業(yè)卻還出于比較落后的狀況。生存中向前發(fā)展的良性循環(huán)道路;我國(guó)目前生產(chǎn)的集成電路只能滿足國(guó)內(nèi)市場(chǎng)需求的20%,更重要的是,關(guān)系到我國(guó)信息安全和信息產(chǎn)業(yè)需求的關(guān)鍵集成電路,如計(jì)算機(jī)的核心芯片、CPU、光線通信系統(tǒng)中的高速公路、Internet的網(wǎng)關(guān)網(wǎng)卡電路、多媒體中的信息處理電路等,都幾乎是100地從國(guó)外進(jìn)口地。這無(wú)疑極大地威脅這我國(guó)信息網(wǎng)絡(luò)乃至整個(gè)國(guó)家的安全;制約著我國(guó)微電子行業(yè)乃至整個(gè)信息行業(yè)的發(fā)展;限制著我國(guó)微電子產(chǎn)業(yè)在國(guó)內(nèi)外市場(chǎng)上的競(jìng)爭(zhēng)力。在1999年8月20日中共中央國(guó)務(wù)院關(guān)于加速技術(shù)創(chuàng)新,發(fā)展高科技,實(shí)現(xiàn)產(chǎn)業(yè)化的決定中指出:“突出高新技術(shù)產(chǎn)業(yè)領(lǐng)域的自主創(chuàng)新,培
30、養(yǎng)新的經(jīng)濟(jì)增長(zhǎng)點(diǎn)。在電子信息特別是集成電路設(shè)計(jì)與制造、網(wǎng)絡(luò)及通信、計(jì)算機(jī)軟件、數(shù)字化電子產(chǎn)品等方面加強(qiáng)高技術(shù)創(chuàng)新,形成一大批擁有自主知識(shí)產(chǎn)權(quán)、具有競(jìng)爭(zhēng)有事的高新技術(shù)產(chǎn)業(yè)?!边@里集成電路設(shè)計(jì)與制造被放在電子信息領(lǐng)域高技術(shù)創(chuàng)新的第一位。根據(jù)這一精神,通信、計(jì)算機(jī)和多媒體家電等集成電路的設(shè)計(jì)和制造將被科技部納入“十五”高科技和公關(guān)的中大課題;系統(tǒng)芯片基礎(chǔ)研究將列為“自然科學(xué)基金”“十五”計(jì)劃的優(yōu)先資助領(lǐng)域;微電子電路設(shè)計(jì)被信息產(chǎn)業(yè)部列為我國(guó)“十五”規(guī)劃的重點(diǎn)發(fā)展方向。所有的這一切,都預(yù)示著一場(chǎng)集成電路設(shè)計(jì)與制造的大戰(zhàn)役即將在我國(guó)吹響進(jìn)軍號(hào)。廣東省政府同樣對(duì)集成電路設(shè)計(jì)給予了充分的重視,并且在華南理工
31、大學(xué)建立了廣東集成電路設(shè)計(jì)與培訓(xùn)中心。身為華工電子與信息工程系的一分子,必須掌握集成電路設(shè)計(jì)的一般方法,爭(zhēng)取以后為我國(guó)我省的集成電路發(fā)展貢獻(xiàn)一份力量。1.5.1 畢業(yè)設(shè)計(jì)的目標(biāo)本次畢業(yè)設(shè)計(jì)的目標(biāo),是利用VHDL語(yǔ)言來(lái)開(kāi)發(fā)與8051單片機(jī)兼容的IP核。并利用Altera公司的FPGA芯片進(jìn)行硬件驗(yàn)證和進(jìn)行各種兼容性測(cè)試。由于8051單片機(jī)內(nèi)部采用模塊結(jié)構(gòu),因此本次設(shè)計(jì)任務(wù)也按照各個(gè)不同模塊來(lái)進(jìn)行劃分。本報(bào)告將著重介紹8051IP核模塊的劃分以及譯碼器部分的實(shí)現(xiàn)。 本次畢業(yè)設(shè)計(jì)的目標(biāo)是通過(guò)設(shè)計(jì)一個(gè)與8051單片機(jī)完全兼容的IP內(nèi)核,初步掌握集成電路設(shè)計(jì)的一般方法,了解集成電路設(shè)計(jì)的流程,為日后設(shè)計(jì)
32、更復(fù)雜的IP內(nèi)核做好準(zhǔn)備。第二章 系統(tǒng)總體規(guī)劃與構(gòu)思第二章 系統(tǒng)總體規(guī)劃與構(gòu)思§2.1 MCS-51單片機(jī)的總體結(jié)構(gòu)2.1.1 MCS51單片機(jī)硬件結(jié)構(gòu)的特點(diǎn)MCS-51單片機(jī)的基本組成如下:1、一個(gè)8位的微處理器。2、片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(128B/256B),用以存放可以讀/寫(xiě)的數(shù)據(jù)。3、片內(nèi)程序存儲(chǔ)器ROM/EPROM(4KB/8KB),用以存放程序,數(shù)據(jù)和表格。4、四個(gè)8位并行I/O口P0-P3,每個(gè)口既可以用作輸入,也可以用作輸出。5、兩個(gè)定時(shí)器/計(jì)數(shù)器,每個(gè)都可以設(shè)成對(duì)外計(jì)數(shù)和內(nèi)定時(shí)方式。6、五個(gè)中斷源的中斷控制系統(tǒng)。7、一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/
33、O,用于串行通訊。2.1.2 MCS-51單片機(jī)的引腳描述MCS-51系列單片機(jī)通常采用40引腳的雙列直插封裝(DIP方式)。其管腳排布如圖2.1。圖2.1下面按其引腳功能分為四部分?jǐn)⑹鲞@40條引腳的功能。1 主電源引腳Vcc和VssVcc-(40腳)接5V電壓;Vss-(20腳)接地。2 外接晶體引腳XTAL1和XTAL2XTAL1(19腳)接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。XTAL2(18腳)接外部晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。3控制或與其他電影復(fù)用引腳RST/VPD、ALE/PROG,PSEN和E
34、A/VPPRST/VPD(9腳):當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)服務(wù)。Vcc掉電期間,此引腳可接上備用電源,以保持內(nèi)部RAM的數(shù)據(jù)不丟失。ALE/PROG(30腳):當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE端仍以不變的頻率周期性地出現(xiàn)正脈沖信號(hào),此頻率為振蕩器頻率的1/6。PSEN(29腳):此腳的輸出是外部程序存儲(chǔ)器的讀選通信號(hào)。在從外部程序存儲(chǔ)器取指令(或常數(shù))期間,每個(gè)機(jī)器周期兩次PSEN有效。但在此期間,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。EA/VPP(31腳):當(dāng)EA端保
35、持高電平時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器,但在PC(程序計(jì)數(shù)器)值超過(guò)0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。4輸入/輸出(I/O)引腳P0、P1、P2、P3P0口(39腳32腳):是雙向8位三態(tài)I/O口,在外接存儲(chǔ)器時(shí),與地址總線的低8位及數(shù)據(jù)總線復(fù)用。P1口(1腳8腳):是8位準(zhǔn)雙向I/O口。由于這種接口輸出沒(méi)有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。P2口(21腳28腳):是8位準(zhǔn)雙向I/O口。在訪問(wèn)外部存儲(chǔ)器時(shí),它可以作為擴(kuò)展電路高8位地址總線送出高8位地址。在對(duì)EPROM編程和程序驗(yàn)證期間,它接受高8位地址。P3口(10腳17腳):是8位準(zhǔn)雙向I/O口,在MCS-51中
36、,這8個(gè)引腳還用于專門(mén)功能,是復(fù)用雙功能口。作為第一功能使用時(shí),作為普通I/O口用,功能和操作方法與P1口相同。作為第二功能使用時(shí),各引腳定義如表21所示。表21 P3各口的第二功能定義口線引腳第二功能P3.010RxD(串行輸入口)P3.111TxD(串行輸出口)P3.212INT0(外部中斷0)P3.313INT1(外部中斷1)P3.414T0(定時(shí)器0外部輸入)P3.515T1(定時(shí)器1外部輸入)P3.616WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)脈沖)P3.717RD(外部數(shù)據(jù)存儲(chǔ)器讀脈沖)2.1.3 MCS51片內(nèi)總體結(jié)構(gòu)MCS51片內(nèi)總體結(jié)構(gòu)的詳細(xì)框圖如圖2.2所示。它主要由九個(gè)部件組成,這九個(gè)部件
37、是:1個(gè)8位的中央處理器;4KB/8KB的只讀存儲(chǔ)器;128字節(jié)/256字節(jié)的數(shù)據(jù)存儲(chǔ)器(RAM);32條I/O線;2個(gè)或3個(gè)定時(shí)器/計(jì)數(shù)器;1個(gè)具有5個(gè)中斷源、2個(gè)優(yōu)先級(jí)的中斷嵌套結(jié)構(gòu);用于多處理機(jī)通信、I/O擴(kuò)展或全雙工UART(通用異步接收發(fā)器)的串行口;特殊功能寄存器(SFR);以及一個(gè)片內(nèi)振蕩器和時(shí)鐘電路。這九個(gè)部件都是通過(guò)片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依然是通用CPU加上外圍芯片的結(jié)構(gòu)模式。但在功能單元的控制上卻有了重大變化,采用了特殊功能寄存器(SFR)的集中控制方法。 圖2.2圖2.3是簡(jiǎn)化的結(jié)構(gòu)框圖。圖2.3§2.2 MCS-51單片機(jī)的指令分解2.2.1 CPU
38、時(shí)序一條指令可以分解為若干基本的微操作。所謂微操作,通常是指CPU中的寄存器級(jí)電路單元在某一單一的時(shí)間控制點(diǎn)(時(shí)鐘沿或有效電平)上能夠完成的操作。在執(zhí)行程序時(shí),單片機(jī)指令經(jīng)過(guò)指令譯碼,被翻譯成一系列微操作控制信號(hào),控制相應(yīng)的單元完成一定微操作。而這些微操作所對(duì)應(yīng)的脈沖信號(hào),在時(shí)間上有嚴(yán)格的先后次序,這些次序就是計(jì)算機(jī)的時(shí)序。時(shí)序是非常重要的概念,它指明了單片機(jī)內(nèi)部以及內(nèi)部與外部互相聯(lián)系所遵循的規(guī)律。圖2.4表明了各種周期的相互關(guān)系。圖2.4 振蕩周期:指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期。 時(shí)鐘周期:又稱狀態(tài)周期或S周期。因?yàn)闀r(shí)鐘發(fā)生器是上述的2分頻觸發(fā)器,所以它是振蕩周期的兩倍,時(shí)鐘周期被分
39、為兩個(gè)節(jié)拍,即P1節(jié)拍和P2節(jié)拍。在每個(gè)時(shí)鐘的前半周期,P1信號(hào)有效,這時(shí)通常完成算術(shù)邏輯操作;在每個(gè)時(shí)鐘的后半周期,P2信號(hào)有效,內(nèi)部寄存器與寄存器間的傳輸一般在此狀態(tài)發(fā)生。 機(jī)器周期:一個(gè)機(jī)器周期由6個(gè)狀態(tài)(12個(gè)振蕩脈沖)組成,即6個(gè)時(shí)鐘周期,12個(gè)振蕩周期??梢来伪硎緸镾1P1(狀態(tài)1拍1)、S1P2(狀態(tài)1拍2)、S6P1(狀態(tài)6拍1)、S6P2(狀態(tài)6拍2),每個(gè)節(jié)拍持續(xù)一個(gè)振蕩周期,每個(gè)狀態(tài)持續(xù)2個(gè)振蕩周期??梢杂脵C(jī)器周期把每一條指令劃分成若干個(gè)階段,每個(gè)機(jī)器周期完成某些規(guī)定操作。 指令周期:是執(zhí)行一條指令所占用的全部時(shí)間,一個(gè)指令周期通常含有14個(gè)機(jī)器周期。在MCS51指令系統(tǒng)
40、中,指令長(zhǎng)度為13字節(jié),除MUL(乘法)和DIV(除法)指令外,單字節(jié)和雙字節(jié)指令都可能是單周期和雙周期的,3字節(jié)指令都是雙周期的,乘法指令為4周期指令。2.2.2 指令分解通過(guò)對(duì)單片機(jī)指令的具體分解,我們可以詳盡的了解單片機(jī)的整個(gè)運(yùn)作過(guò)程,了解各個(gè)寄存器在指令執(zhí)行過(guò)程中所起的作用,以及數(shù)據(jù)在各個(gè)時(shí)間上的流向等。這對(duì)模塊的劃分、有限資源的重復(fù)利用以及各個(gè)模塊的具體實(shí)現(xiàn)均有指導(dǎo)性的作用。MCS51的指令從功能上來(lái)劃分,大概可以分成算術(shù)操作類(lèi)指令、邏輯操作類(lèi)指令、數(shù)據(jù)傳送類(lèi)指令、布爾變量操作類(lèi)指令和控制程序轉(zhuǎn)移類(lèi)指令等5大類(lèi)指令。這些指令從長(zhǎng)度上看有單字節(jié)、雙字節(jié)和三字節(jié)之分,從執(zhí)行時(shí)間上看有單周
41、期、雙周期和4周期指令的不同。分解指令,必須找出各個(gè)指令的共同點(diǎn),以盡量少而合理的微操作來(lái)實(shí)現(xiàn)指令的具體執(zhí)行過(guò)程。對(duì)所有的指令來(lái)說(shuō),前6個(gè)狀態(tài)是基本相同的,即先從指令ROM中讀取指令操作碼,經(jīng)過(guò)兩級(jí)譯碼,形成微操作控制信號(hào),同時(shí)進(jìn)行數(shù)據(jù)地址譯碼,形成操作數(shù)有效地址。在第4個(gè)狀態(tài),如果是多字節(jié)指令,要從ROM中讀取指令的第二字節(jié);如果是間接尋址,則要形成新的數(shù)據(jù)有效地址。第5個(gè)狀態(tài)進(jìn)行指令執(zhí)行的第1步驟。第6個(gè)狀態(tài)協(xié)會(huì)結(jié)構(gòu)。對(duì)于單周期指令,在此執(zhí)行完畢,返回第1狀態(tài),開(kāi)始執(zhí)行下一條指令;否則,還要經(jīng)過(guò)下面的狀態(tài),完成指令的執(zhí)行。指令執(zhí)行過(guò)程的狀態(tài)轉(zhuǎn)換見(jiàn)圖2.5。圖2.5這里以算術(shù)操作類(lèi)指令A(yù)DD
42、 A, Rn為例,詳細(xì)介紹指令的具體分解:指令名稱ADD A, Rn機(jī)器碼00101rrr字節(jié)數(shù)1指令周期1狀態(tài)S1P1在s1p1的下降延,ALE為高,將ROM相應(yīng)地址處內(nèi)容鎖存到指令寄存器IRS1P2程序計(jì)數(shù)器加一,同時(shí)把ACC值送TMP2S2P1將IR中指令分解出微操作碼,程序計(jì)數(shù)器的值更新到PC中去。S2p1的下降延ALE為低S2P2讀psw(4)和psw(3),同時(shí)取IR中最低3位,算出RAM地址值:(RS1RS0)×8+rS3P1根據(jù)得出的RAM地址值從對(duì)應(yīng)RAM讀 讀出數(shù)據(jù)到TMP1S3P2把PC值載入ROM地址鎖存器S4P1在s4p1的下降延,ALE為高,將ROM相應(yīng)地
43、址處內(nèi)容鎖存倒指令寄存器IRS4P2由于是單字節(jié)指令,故程序計(jì)數(shù)器不再加一S5P1程序計(jì)數(shù)器的值更新到PC。在s5p1的下降延,ALE恢復(fù)為低S5P2送op_add到ALU,把TMP1和TMP2的值相加S6P1相加結(jié)果送回ACCS6P2把PC值載入ROM地址鎖存器§2.3 各部分模塊的初步劃分2.3.1 總體設(shè)計(jì)思想通過(guò)對(duì)單片機(jī)指令的分解,我們對(duì)單片機(jī)的整個(gè)運(yùn)作過(guò)程有了比較深入的認(rèn)識(shí)。由于單片機(jī)指令的執(zhí)行過(guò)程是一個(gè)周而復(fù)始的取指令、分析指令和執(zhí)行指令的過(guò)程,微處理器可以看成是典型地帶有數(shù)據(jù)路徑地有限狀態(tài)機(jī),其中時(shí)鐘電路與控制單元組合構(gòu)成了有限狀態(tài)機(jī),指令的運(yùn)算在數(shù)據(jù)路徑中進(jìn)行,外圍電
44、路構(gòu)成CPU的協(xié)處理器。確定系統(tǒng)狀態(tài)以后,可以著手編寫(xiě)芯片的行為級(jí)描述及進(jìn)行模塊的劃分。這里遵循的方法是從頂向下(top-down)的方法。即根據(jù)系統(tǒng)功能劃分好各個(gè)模塊;然后對(duì)各個(gè)模塊進(jìn)行具體代碼的編寫(xiě),并對(duì)各個(gè)模塊進(jìn)行單獨(dú)的功能測(cè)試;最后將完成的各部分模塊統(tǒng)一、連接起來(lái)進(jìn)行總的調(diào)試。2.3.2 各模塊的劃分在8051單片機(jī)內(nèi)核中,各元件間通過(guò)總線來(lái)傳遞數(shù)據(jù)和控制信息,并且各元件之間有嚴(yán)格的時(shí)序關(guān)系;為了充分的利用硬件資源,指令將被劃分為各種微操作,并且要使各指令之間擁有共同的微操作,以降低譯碼的復(fù)雜度。因此,在本51內(nèi)核的設(shè)計(jì)中,將按照由頂向下的設(shè)計(jì)方法,用人工的方法對(duì)芯片進(jìn)行劃分。劃分的過(guò)
45、程分兩個(gè)步驟,首先把芯片分割為控制器和數(shù)據(jù)路徑(控制器如譯碼器Decoder,數(shù)據(jù)路徑如ALU、RAM等),再進(jìn)一步細(xì)劃為一系列寄存器級(jí)的功能模塊。第一步劃分的目的在于利用已經(jīng)驗(yàn)證過(guò)的算法,把芯片的控制和數(shù)據(jù)運(yùn)算部分分離。分離后的結(jié)果如圖2.6所示。對(duì)控制部分來(lái)講,分離后的模型應(yīng)能夠?qū)Υ_定指令發(fā)出缺點(diǎn)的微操作緒論;對(duì)數(shù)據(jù)路徑來(lái)講,要確定運(yùn)算自用分配,也就是把執(zhí)行具體指令的微操作緒論分配到一定的硬件資源上,并能夠根據(jù)微操作控制信號(hào)的狀態(tài)完成相應(yīng)的操作。圖2.6第二步則根據(jù)8051單片機(jī)所具備的功能以及其內(nèi)部實(shí)際模塊的劃分為寄存器級(jí)單元,同時(shí)確定芯片的體系。本次畢業(yè)設(shè)計(jì)的8051內(nèi)核從功能上主要?jiǎng)?/p>
46、分為ROM模塊(ROM_Controler)、譯碼器模塊(Decoder)、RAM模塊(RAM_Controler)、計(jì)數(shù)器模塊(Timer)、中斷控制模塊(Interrupt)、通用異步接收/發(fā)送控制器模塊(UART)、算術(shù)運(yùn)算單元控制模塊(ALU_Controler)等組成。內(nèi)部數(shù)據(jù)交換可以采用信號(hào)賦值形式或者采取總線結(jié)構(gòu)??紤]到以后51內(nèi)核功能擴(kuò)展的需要,以及讓模塊之間的關(guān)系更加清晰,決定采用總線結(jié)構(gòu)作為內(nèi)部數(shù)據(jù)交換的形式。譯碼方式也有集中譯碼和分別譯碼兩種備選方案。一般地講,集中譯碼方案要比分別譯碼方案要好。首先,從功能劃分的角度來(lái)看,集中譯碼使得電路復(fù)雜性降低,電路及其模型直觀易懂,
47、有利于電路自動(dòng)綜合;其次,當(dāng)需要給電路增加新功能時(shí),若采用集中譯碼方案,只需對(duì)硬件作較小的改動(dòng)就可以實(shí)現(xiàn)。但是,對(duì)于較簡(jiǎn)單的硬件,采用分別譯碼方案,電路規(guī)模要小一些。綜上所述,本次設(shè)計(jì)采用集中譯碼和總線結(jié)構(gòu)的方式來(lái)構(gòu)建51單片機(jī)內(nèi)核。其結(jié)構(gòu)圖如圖2.7:圖2.72.3.3 各模塊的簡(jiǎn)單說(shuō)明·ROM模塊:本模塊的主要負(fù)責(zé)從ROM中取得指令代碼/操作數(shù)。模塊中的寄存器包括程序計(jì)數(shù)器PC和地址寄存器AddrREG及內(nèi)部ROM(4K×8bit)。·譯碼/控制模塊(Decoder):產(chǎn)生系統(tǒng)內(nèi)部的同步信號(hào)。在每個(gè)S1P2時(shí)譯碼并把該指令的各個(gè)時(shí)刻的控制信號(hào)存入寄存器,再在接
48、下來(lái)的每個(gè)時(shí)刻把相應(yīng)的控制信號(hào)放到控制總線上(指令從S1P2開(kāi)始執(zhí)行),控制各個(gè)模塊協(xié)調(diào)工作,完成指令操作。在每個(gè)S1P1時(shí)刻檢查如果有中斷申請(qǐng),則判斷如果當(dāng)前指令不是RETI (如果是訪問(wèn)IE或IP的話,由中斷部分控制等到下一條指令開(kāi)始執(zhí)行后再申請(qǐng)中斷)則響應(yīng)該中斷,在接下來(lái)的3個(gè)指令周期內(nèi)把PC壓棧,和跳到相應(yīng)的入口處。·RAM模塊:模塊中包括128字節(jié)的RAM和堆棧指針SP。復(fù)位時(shí)把堆棧指針SP置為07H。一個(gè)8bit1bit的加法器和一個(gè)8bit1bit的減法器。完成RAM所具有的功能。·定時(shí)/計(jì)數(shù)器模塊:模塊中包括寄存器TH0,TH1,TL0,TL1,TMOD,T
49、CON。其實(shí)現(xiàn)的功能包括完成4種工作方式的定時(shí)/計(jì)數(shù)器;每個(gè)S5P2檢查外部中斷;向中斷控制部分提供4個(gè)中斷申請(qǐng)標(biāo)志。·中斷控制模塊:模塊中包括寄存器IE,IP。實(shí)現(xiàn)功能包括負(fù)責(zé)處理中斷的開(kāi)放、禁止及優(yōu)先級(jí)判斷,是否響應(yīng)中斷;對(duì)于已經(jīng)禁止的中斷,如果發(fā)現(xiàn)有中斷申請(qǐng)標(biāo)志,則發(fā)出清除該中斷標(biāo)志信號(hào);向譯碼/控制器發(fā)中斷申請(qǐng)應(yīng)該在S6P2時(shí)刻進(jìn)行;如果本指令周期內(nèi)做了IE或IP的修改操作則等到下一個(gè)指令周期開(kāi)始后才開(kāi)始向譯碼/控制器申請(qǐng)響應(yīng)中斷。·通用異步發(fā)送/接收模塊(UART):模塊中包括寄存器串行控制寄存器SCON,特殊功能寄存器PCON和發(fā)送緩存器SBUF。主要功能是進(jìn)行
50、串行通訊。·ALU控制模塊:模塊中包括A寄存器、B寄存器、暫存器1(TMP1)、暫存器2(TMP2)、標(biāo)志寄存器(PSW)。主要實(shí)現(xiàn)的功能是進(jìn)行算數(shù)操作、邏輯運(yùn)算、布爾變量操作以及在跳轉(zhuǎn)指令中進(jìn)行數(shù)值比較和pc值相加操作。·P口鎖存器:包括8051的P0到P3端口。·DPTR:模塊中包括DPTR寄存器。·數(shù)據(jù)/地址暫存器:用于暫存數(shù)據(jù)或地址總線上的數(shù)據(jù)。第三章 譯碼/控制模塊的實(shí)現(xiàn)第三章 譯碼/控制模塊的實(shí)現(xiàn)§3.1 譯碼/控制模塊設(shè)計(jì)思想3.1.1模塊功能譯碼/ 控制模塊是芯片的核心部分。它產(chǎn)生單片機(jī)正常運(yùn)轉(zhuǎn)所需的各種內(nèi)部信號(hào)和微操作。它控制
51、著單片機(jī)的取指令、譯碼和執(zhí)行的全過(guò)程,同時(shí)控制著數(shù)據(jù)在總線上的流向。從時(shí)序上來(lái)看,在每個(gè)S1P2時(shí)譯碼并把該指令的各個(gè)時(shí)刻的控制信號(hào)存入寄存器,再在接下來(lái)的每個(gè)時(shí)刻把相應(yīng)的控制信號(hào)放到控制總線上(指令從S1P2開(kāi)始執(zhí)行),控制各個(gè)模塊協(xié)調(diào)工作,完成指令操作。在每個(gè)S1P1時(shí)刻檢查如果有中斷申請(qǐng),則判斷如果當(dāng)前指令不是RETI (如果是訪問(wèn)IE或IP的話,由中斷部分控制等到下一條指令開(kāi)始執(zhí)行后再申請(qǐng)中斷)則響應(yīng)該中斷,在接下來(lái)的3個(gè)指令周期內(nèi)把PC壓棧,和跳到相應(yīng)的入口處。3.1.2設(shè)計(jì)思想在控制/譯碼模塊的設(shè)計(jì)過(guò)程中,我們采用的是細(xì)分模塊,盡量重復(fù)利用的原則,使資源可以重復(fù)利用。例如,ADD
52、A,Rn這個(gè)指令,盡管由于n的不同而使指令的執(zhí)行過(guò)程有所不同。但如果為每條指令都單獨(dú)進(jìn)行譯碼,單獨(dú)分配一塊資源,那么將造成資源的很大浪費(fèi)。我們通過(guò)前面對(duì)指令的分解,盡量找出這些指令的公共部分,在編程時(shí)反復(fù)利用可以重復(fù)使用的資源。在設(shè)計(jì)過(guò)程中,我們遇到了一個(gè)“多驅(qū)動(dòng)源”的問(wèn)題。這個(gè)問(wèn)題的產(chǎn)生是由于在VHDL語(yǔ)言里,不能對(duì)同一個(gè)變量在不同的process里進(jìn)行賦值,否則編譯的時(shí)候?qū)?huì)出錯(cuò)。為了避免這個(gè)問(wèn)題,我們采用了利用時(shí)鐘信號(hào)進(jìn)行觸發(fā)的辦法。這個(gè)辦法的原理是引入專門(mén)的控制信號(hào)(長(zhǎng)度為24或48位矢量),在S1P2譯碼過(guò)程中,根據(jù)指令的類(lèi)別對(duì)這些信號(hào)賦值。然后在接下來(lái)的周期里,把這些信號(hào)逐位逐位輸
53、出到控制線上。其他模塊在時(shí)鐘的下降延對(duì)這些控制線進(jìn)行采樣,對(duì)采樣值做出判斷并作出相應(yīng)的動(dòng)作。§3.2 譯碼/控制模塊的實(shí)現(xiàn)過(guò)程3.2.1接口及控制信號(hào)譯碼/控制模塊的信號(hào)可以分為輸入信號(hào)和輸出信號(hào)兩部分。其中輸入信號(hào)如下:·復(fù)位信號(hào)(RST):系統(tǒng)復(fù)位信號(hào),低電平有效;·時(shí)鐘信號(hào)(CLK):系統(tǒng)時(shí)鐘,下降沿有效;·指令代碼(InstrCode):來(lái)自ROM模塊的指令代碼;·中斷申請(qǐng)(IRQ):來(lái)自中斷模塊的中斷申請(qǐng)信號(hào);輸出信號(hào)如下:·地址總線(AddrBus);·PC_AR:提供給ROM控制器信號(hào);·RC_Ctr
54、lSig:ROM控制器控制的控制信號(hào);·MOVXf:指令為MOVX時(shí)有效;·ToAddrBus:提供給ROM控制器信號(hào),將ROM內(nèi)容輸出到地址總線;·ToDataBus:提供給ROM控制器信號(hào),將ROM內(nèi)容輸出到數(shù)據(jù)總線;·Ex_RW_Flag:外部數(shù)據(jù)存貯器讀寫(xiě)標(biāo)志,1為讀,0為寫(xiě)·push:提供給RAM控制器的信號(hào),壓棧信號(hào);·pop:提供給RAM控制器的信號(hào),出棧信號(hào);·subSP:提供給RAM控制器的信號(hào),SP1信號(hào);·addSP:提供給RAM控制器的信號(hào),SP1信號(hào);·RD:提供給RAM控制器的
55、信號(hào),對(duì)RAM單元進(jìn)行讀操作;·WR:提供給RAM控制器的信號(hào),對(duì)RAM單元進(jìn)行寫(xiě)操作;·ByteBit:提供給RAM控制器的信號(hào),對(duì)字節(jié)/位操作進(jìn)行選擇。低電平時(shí)為位操作,高電平時(shí)為字節(jié)操作;·RETI_Instr:中斷返回信號(hào); ·DPTR_CtrlSig:DPTR控制信號(hào);·AtoTMP2:提供給ALU的信號(hào),使Acc寄存器數(shù)據(jù)送入TMP2;·BtoTMP1:提供給ALU的信號(hào),使B寄存器數(shù)據(jù)送入TMP1;·BUStoTMP1:提供給ALU的信號(hào),將數(shù)據(jù)總線上的數(shù)據(jù)讀入TMP1;·BUStoTMP2:提供給A
56、LU的信號(hào),將數(shù)據(jù)總線上的數(shù)據(jù)讀入TMP2;·ALUtoBUS:提供給ALU的信號(hào),將ALU計(jì)算結(jié)果送至數(shù)據(jù)總線;·ALUtoA:提供給ALU的信號(hào),將ALU計(jì)算結(jié)果送至Acc寄存器;·ALUtoB:提供給ALU的信號(hào),將ALU計(jì)算結(jié)果送至B寄存器;·FetchBank:提供給ALU的信號(hào),為取段地址信號(hào);·Funcode:提供給ALU的信號(hào),ALU根據(jù)Funcode來(lái)執(zhí)行相應(yīng)的算術(shù)、邏輯等運(yùn)算。3.2.2 譯碼/控制模塊框架結(jié)構(gòu) 在譯碼/控制模塊的VHDL程序中,分為庫(kù)Libraty、實(shí)體Entity和結(jié)構(gòu)體Architecture三大部分。
57、在實(shí)體entity中是對(duì)各個(gè)端口的定義:entity DecoderAndController isport(RST : in std_logic;CLK : in std_Logic;IRQ : in std_logic;InstrCode : in std_Logic_VECTOR(7 downto 0);TMBus : out std_Logic_VECTOR(3 downto 0);AddrBus : out sTD_LOGIC_VECTOR(7 downto 0);- ROM 控制器部分 PC_AR : out std_Logic;RC_CtrlSig : out std_Logic_Vector(2 downto 0);MOVXf : out std_Logic;ToAddrBus : out std_Logic;ToDataBus : out std_Logic; Ex_RW_Flag : out st
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球七葉神安片行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球醫(yī)療器械消毒產(chǎn)品行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)缺氧帳篷行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)有機(jī)空穴傳輸材料行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球連續(xù)式鋰電池?zé)峤鉅t行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 競(jìng)業(yè)限制合同協(xié)議書(shū)
- 家具房屋租賃合同書(shū)
- 2025危險(xiǎn)廢物委托處置合同
- 房地產(chǎn)借款合同
- 提高談判技巧的訓(xùn)練課程
- 國(guó)有資產(chǎn)管理法律責(zé)任與風(fēng)險(xiǎn)防控
- 未婚生子的分手協(xié)議書(shū)
- 變更監(jiān)事章程修正案范例
- 北京小客車(chē)指標(biāo)租賃協(xié)議五篇
- 輸液室運(yùn)用PDCA降低靜脈輸液患者外滲的發(fā)生率品管圈(QCC)活動(dòng)成果
- YY/T 0681.2-2010無(wú)菌醫(yī)療器械包裝試驗(yàn)方法第2部分:軟性屏障材料的密封強(qiáng)度
- GB/T 20472-2006硫鋁酸鹽水泥
- 煙氣管道阻力計(jì)算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務(wù)迎接重大節(jié)日、活動(dòng)的保障措施
- 醫(yī)院-9S管理共88張課件
- 高考作文復(fù)習(xí):議論文論證方法課件15張
評(píng)論
0/150
提交評(píng)論