數(shù)字邏輯與系統(tǒng)設(shè)計 課件 第7章 簡易系統(tǒng)設(shè)計實踐_第1頁
數(shù)字邏輯與系統(tǒng)設(shè)計 課件 第7章 簡易系統(tǒng)設(shè)計實踐_第2頁
數(shù)字邏輯與系統(tǒng)設(shè)計 課件 第7章 簡易系統(tǒng)設(shè)計實踐_第3頁
數(shù)字邏輯與系統(tǒng)設(shè)計 課件 第7章 簡易系統(tǒng)設(shè)計實踐_第4頁
數(shù)字邏輯與系統(tǒng)設(shè)計 課件 第7章 簡易系統(tǒng)設(shè)計實踐_第5頁
已閱讀5頁,還剩135頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章簡易系統(tǒng)設(shè)計實踐7.1簡易微處理器設(shè)計7.2簡易微處理器系統(tǒng)設(shè)計

前面所介紹的電路都是只能實現(xiàn)某種單一的特定功能:因此稱為功能部件級電路。由若干這樣的數(shù)字電路和邏輯部件構(gòu)成:按一定順序處理和傳輸數(shù)字信號的設(shè)備:稱為數(shù)字系統(tǒng)。

數(shù)字系統(tǒng)從結(jié)構(gòu)上可以劃分為數(shù)據(jù)處理單元和控制單元兩部分。

1.數(shù)據(jù)處理單元

數(shù)據(jù)處理單元也稱為數(shù)據(jù)通路。它接收控制單元發(fā)來的控制信號:對輸入的數(shù)據(jù)進(jìn)行算術(shù)運算、邏輯運算、移位操作等處理:然后輸出數(shù)據(jù):并將處理過程中產(chǎn)生的狀態(tài)信息反饋到控制單元。

2.控制單元

控制單元根據(jù)外部輸入信號及數(shù)據(jù)處理單元提供的狀態(tài)信息:決定下一步要完成的操作:并向數(shù)據(jù)處理單元發(fā)出控制信號以控制其完成該操作。

數(shù)字系統(tǒng)設(shè)計開發(fā)過程要重視模塊化設(shè)計理念和“分析電路功能—制訂電路結(jié)構(gòu)及工作波形規(guī)格—設(shè)計邏輯電路—仿真測試邏輯功能”的開發(fā)步驟:其中制訂電路結(jié)構(gòu)及工作波形規(guī)格是重中之重。

7.1簡易微處理器設(shè)計

7.1.1功能分析

1.基本結(jié)構(gòu)微處理器的內(nèi)部典型電路如圖7-1所示:它是由算術(shù)邏輯運算單元(ALU)、寄存器組、控制器、總線接口單元組成的:其中控制單元包括指令讀取子單元、指令譯碼子單元和邏輯控制子單元。

圖7-1微處理器的內(nèi)部典型電路

2.功能需求

由于流程控制操作需要采用比較等運算所產(chǎn)生的標(biāo)志來判別是否轉(zhuǎn)移:因此需要保存某些運算操作所產(chǎn)生的標(biāo)志。通常設(shè)置處理器狀態(tài)寄存器(PSR)來保存處理運算中產(chǎn)生的進(jìn)位溢出等標(biāo)志。

微處理器能夠完成以下功能:

(1)數(shù)據(jù)傳輸。

(2)算術(shù)邏輯運算。

(3)流程跳轉(zhuǎn)。

3.操作描述

根據(jù)程序設(shè)計中常用的數(shù)據(jù)運算和流程控制操作來設(shè)計如表7-1所示的操作。其中Rd為目標(biāo)/源操作數(shù)寄存器:Rn為源操作數(shù)寄存器:#為立即數(shù):[Rn]為地址值為Rn值的存儲單元:PC為保存待讀指令的地址寄存器:PSR為處理器狀態(tài)寄存器(保存運算產(chǎn)生的標(biāo)志位)。

4.開發(fā)思路

處理器的實質(zhì)是執(zhí)行指令的邏輯電路:因此首要任務(wù)是明確操作指令:規(guī)范指令的操作方式、數(shù)據(jù)來源及結(jié)果去向。

處理器中最核心的功能是運算:故首先設(shè)計算術(shù)邏輯運算器。從運算器的數(shù)據(jù)來源和運算結(jié)果的去向來分析運算器與寄存器組之間的關(guān)系:根據(jù)寄存器與外部數(shù)據(jù)存儲器之間的數(shù)據(jù)傳輸來設(shè)計ALU、寄存器組和數(shù)據(jù)總線接口單元之間的連接關(guān)系。

處理器的工作過程是按照一定的操作流程進(jìn)行以保證處理過程有序高效:邏輯控制單元完成指令與運算處理之間的銜接:按照規(guī)定時序控制各模塊協(xié)同操作。

7.1.2指令設(shè)計

通常把微處理器采用數(shù)碼來代表一次操作:這個數(shù)碼稱為指令。

設(shè)計中所涉及的操作對應(yīng)的指令如表7-2所示:其中的R0H表示R0寄存器的高4位:R0L表示R0寄存器的低4位。

7.1.3運算器

處理器首先要能夠進(jìn)行數(shù)據(jù)運算。二進(jìn)制數(shù)的算術(shù)運算、移位運算和邏輯運算都可以采用二進(jìn)制電路實現(xiàn)。由于每次處理只執(zhí)行一個運算:所以將所有運算電路組合在一起:通過控制信號來選擇一個運算電路工作并輸出運算結(jié)果。該組合在一起的電路稱為算術(shù)邏輯運算單元(ALU):其典型符號如圖7-2所示。ALU有兩個運算數(shù)據(jù)輸入端:一個運算結(jié)果輸出端:還有一個運算類型控制端。

圖7-2算術(shù)邏輯運算器

ALU支持8種兩個8位數(shù)S1和S2的數(shù)據(jù)運算:即加、減、位與、位或、位非、左移1位、右移1位、賦值:但每次只能進(jìn)行1種運算:通過3位控制信號OP改變運算類型:結(jié)果輸出DT:同時給出計算標(biāo)志FLG(進(jìn)/借位標(biāo)志CF、溢出標(biāo)志OF、符號標(biāo)志SF和結(jié)果為零標(biāo)志ZF)。

ALU電路共有8種運算:每次只能進(jìn)行1種運算:可以視為從8種運算結(jié)果中選擇1個輸出。因此:該電路有8個運算電路和1個8選1輸出電路:輸出哪個運算結(jié)果由控制信號來決定。

其電路結(jié)構(gòu)如圖7-3所示。圖7-3算術(shù)邏輯運算器的內(nèi)部結(jié)構(gòu)

功能仿真波形如圖7-4所示:圖中數(shù)值均為十六進(jìn)制數(shù)。圖7-4算術(shù)邏輯運算器的功能仿真波形

7.1.4寄存器組

寄存器用來存儲運算中所用的暫時數(shù)據(jù)。若多個寄存器構(gòu)成寄存器組:則它們的輸入線并接在一起共享輸入。每個寄存器都有鎖存使能信號:只有某個寄存器的使能信號有效時:該寄存器才將輸入的數(shù)據(jù)鎖存起來。

由于指令中設(shè)計了對寄存器R0的高4位和低4位操作:因此需要有信號來指明是對R0的8位或高4位或低4位進(jìn)行操作。

寄存器組電路如圖7-5所示:包含4個通用寄存器R0~R3、1個狀態(tài)寄存器PSR、1個通用寄存器鎖存譯碼器。

圖7-5寄存器組電路

簡易處理器能夠?qū)崿F(xiàn)“寫R0、寫R1、寫R2、寫R3、不寫”這5種操作:因此功能邏輯表如表7-3所示。

7.1.5通道選擇

參加運算的數(shù)據(jù)來源于寄存器:故需要采用選擇器從多個寄存器的輸出中選出一組作為輸出:因此需要兩個用于寄存器值選擇的數(shù)據(jù)選擇器。某個操作數(shù)有時可能是立即數(shù):因此再采用一個用于立即數(shù)和寄存器數(shù)選擇的數(shù)據(jù)選擇器。通道選擇電路如圖7-6所示:其中S0

是需要存儲的寄存器值:S1

和S2

分別是ALU的輸入。其功能如表7-4和表7-5所示。

圖7-6通道選擇電路x

7.1.6數(shù)據(jù)存儲

運算中需要讀取指令或存讀大量數(shù)據(jù):這些指令和數(shù)據(jù)保存在存儲器中。通常存儲單元的地址是通過ALU計算出來的:存儲單元的地址可以由一個寄存器與另一個寄存器或常數(shù)相加得到。

微處理器中產(chǎn)生讀寫存儲器的信號時序的電路稱為總線接口單元。微處理器執(zhí)行訪問存儲器指令時:邏輯控制單元將計算后的地址、數(shù)據(jù)和控制代碼發(fā)送給總線接口單元:總線接口單元負(fù)責(zé)按照規(guī)定的時間順序輸出地址和控制信號:同時輸出待寫數(shù)據(jù)或輸入待讀數(shù)據(jù)。

存儲器含有地址總線、數(shù)據(jù)總線和讀寫控制線:通常數(shù)據(jù)總線是雙向的??偩€接口單元必須能夠適應(yīng)存儲器的訪問需求:因此總線接口單元產(chǎn)生能夠連接存儲器及其他外部設(shè)備的總線信號。通常將微處理器與存儲器及外部設(shè)備之間的總線稱為系統(tǒng)總線。

總線接口單元最簡單的結(jié)構(gòu)如圖7-7所示:它主要完成外部雙向數(shù)據(jù)線和外部讀寫信號的產(chǎn)生。

圖7-7總線接口單元結(jié)構(gòu)圖

總線操作必須滿足一定時序。讀操作時:先輸出地址:再輸出讀使能:最后鎖存數(shù)據(jù);寫操作時:先輸出地址和數(shù)據(jù):再輸出寫使能。存儲訪問操作總線的時序如圖7-8所示。

圖7-8存儲訪問操作總線的時序圖

7.1.7指令讀取

指令保存在存儲器中:用來讀取指令存儲器的總線信號合稱為指令總線。讀取指令時:將指令所在地址輸出到指令總線的地址總線上:存儲器會自動將該地址上存儲單元的值輸出到指令總線的數(shù)據(jù)總線上。

程序執(zhí)行通常是按順序逐一讀取指令的:因此默認(rèn)每讀取一次指令其讀取地址自動遞增:相當(dāng)于是一個加法計數(shù)器。因此:指令地址是程序計數(shù)器的輸出:保存指令地址的PC寄存器本身是程序計數(shù)器的一部分:程序計數(shù)器的內(nèi)部電路結(jié)構(gòu)及指令讀取電路如圖7-9所示。

圖7-9程序計數(shù)器及指令讀取電路

7.1.8指令譯碼

指令譯碼是用指令代碼生成操作信號:即對輸入的8位指令值的IC進(jìn)行譯碼產(chǎn)生用于控制其他部件的22位信號OPRC:指令譯碼電路如圖7-10所示。圖7-10指令譯碼電路

所有指令的譯碼功能表如表7-6所示:輸出OPRC與控制信號的對應(yīng)關(guān)系及信號值如表7-7所示。指令譯碼只是產(chǎn)生各信號值:是否輸出到具體的信號線則由邏輯控制來決定。

7.1.9邏輯控制

整個系統(tǒng)由邏輯控制單元來調(diào)度:它將指令譯碼所產(chǎn)生的信號按照不同操作規(guī)程進(jìn)行時序控制。邏輯控制連接所有信號:按照一定時序來輸出相應(yīng)的控制信號。

邏輯控制單元的主要功能:控制程序計數(shù)器更新;使能鎖存當(dāng)前指令;對譯指產(chǎn)生的信號進(jìn)行時序分配以完成相應(yīng)操作。

邏輯控制電路與其他部件之間的信號連接如圖7-11所示。

圖7-11邏輯控制電路的信號連接

其操作流程如下:

(1)取指:即從指令存儲器中讀取指令并保存至指令寄存器IR中:同時程序計數(shù)器值自動增1。

(2)譯指:即將指令寄存器所存的指令代碼譯成相應(yīng)的操作電平信號。

(3)執(zhí)行:即完成數(shù)據(jù)選擇和算術(shù)邏輯運算并輸出運算結(jié)果。

(4)讀存:即存儲器讀操作:使能存儲器讀信號:使相應(yīng)存儲單元的數(shù)據(jù)輸出至總線上。

(5)回寫:即保存計算結(jié)果數(shù)據(jù)至寄存器或保存寄存器數(shù)據(jù)至存儲器。

操作流程是一個周而復(fù)始的過程:其工作周期為:取指→譯指→執(zhí)行→讀存→回寫。

操作信號的輸出時序總體分布如圖7-12所示。

圖7-12操作信號的輸出時序圖

操作控制主要有三類操作:

1.PC操作

對PC進(jìn)行賦值操作主要有兩種操作:取指后PC自動增1和運算結(jié)果賦給PC。

取指與PC賦值操作時序如圖7-13所示。取指時IFEN使能寄存器IR鎖存:PCEN使能程序計數(shù)器值增1。若對PC進(jìn)行賦值:則在回寫階段將PCLE置高:PC鎖存內(nèi)部數(shù)據(jù)線D的值:在后續(xù)的取指階段使用新值作為指令地址去獲取指令。

圖7-13PC操作控制時序

2.通用寄存器操作

通用寄存器之間主要是完成各種運算:其操作時序如圖7-14所示。在整個操作過程中:MRD信號一直為無效:確保寄存器回寫的數(shù)據(jù)來源于運算器的輸出DT。

圖7-14通用寄存器操作控制時序

3.存儲器操作

存儲器訪問包括寫操作和讀操作。對于存儲器的訪問操作:在執(zhí)行階段由ALU計算地址并輸出至地址總線。若為讀操作:則在讀存階段輸出讀使能信號至控制總線:使存儲器將相應(yīng)存儲單元的數(shù)據(jù)輸出至數(shù)據(jù)總線:在回寫階段將數(shù)據(jù)總線的值鎖存至寄存器;若為寫操作:則在回寫階段輸出寫使能信號至控制總線:使寄存器數(shù)據(jù)輸出至數(shù)據(jù)總線:存儲器又將數(shù)據(jù)總線的值鎖存至相應(yīng)的存儲單元。存儲器訪問操作的控制時序如圖7-15所示。

圖7-15存儲器訪問操作控制時序

邏輯控制電路的實質(zhì)是一個模5計數(shù)器:每個狀態(tài)分別代表一個階段:如圖7-16所示:即取指、譯指、執(zhí)行、讀存、回寫。控制器周而復(fù)始地按這個順序執(zhí)行:在不同狀態(tài)時輸出每個控制信號的電平來完成一個具體操作。圖7-16邏輯控制電路的時序狀態(tài)轉(zhuǎn)移圖

7.1.10整體電路

將各個單元連接在一起構(gòu)成一個簡易的微處理器:其基本構(gòu)架如圖7-17所示。圖7-17微處理器的整體電路

仿真波形如圖7-18所示。圖7-18仿真結(jié)果

7.2簡易微處理器系統(tǒng)設(shè)計

7.2.1功能分析

1.基本結(jié)構(gòu)微處理器由處理器(MPU)、系統(tǒng)總線、存儲器(ROM和RAM)和外部設(shè)備(簡稱外設(shè))構(gòu)成:如圖7-19所示。

圖7-19微處理器系統(tǒng)框圖

2.功能規(guī)格

ROM地址為0x00~0xFF:共256字節(jié)。所以:ROM一直處于讀操作:片選使能nCE始終接地。

假定RAM為128B:其內(nèi)部地址線為7條:可訪問地址為0000000~001111111。

假定GPIO內(nèi)部只有兩個寄存器用于接收MPU發(fā)來的數(shù)據(jù)和鎖存外部輸入數(shù)據(jù):其內(nèi)部訪問地址分別為0x0和0x1。

RAM和GPIO一起占用0x00~0xFF。RAM地址設(shè)計為0x00~0x7F:GPIO訪問地址設(shè)計為0x80和0x81。因此:當(dāng)?shù)刂房偩€值為0x00~0x7F時:RAM被訪問:需要外部產(chǎn)生一個有效電平來驅(qū)動RAM的片使能端nCE。當(dāng)?shù)刂房偩€值為0x80和0x81時:GPIO被訪問:需要外部產(chǎn)生一個有效電平來驅(qū)動GPIO的片選端nCS。

7.2.2存儲器設(shè)計

RAM容量為128B:有7根地址線AB:8根數(shù)據(jù)線DB:1根片使能線nCE:1根讀有效線nRD:1根寫有效線nWR。其工作波形如圖7-20所示。

圖7-20RAM的工作波形

7.2.3外設(shè)設(shè)計

GPIO采用兩個寄存器與MPU進(jìn)行數(shù)據(jù)交換。寄存器ODR為輸出數(shù)據(jù)寄存器:寄存器IDR為輸入數(shù)據(jù)寄存器:這兩個片內(nèi)寄存器只能通過片上地址線A0來選擇。GPIO有一組8條外部輸入線GPI和一組8條輸出線GPO。GPI線上的值被鎖存在IDR中:GPO線上輸出ODR的值。

當(dāng)對

溫馨提示

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

評論

0/150

提交評論