硬連線控制器設(shè)計(jì).doc_第1頁(yè)
硬連線控制器設(shè)計(jì).doc_第2頁(yè)
硬連線控制器設(shè)計(jì).doc_第3頁(yè)
硬連線控制器設(shè)計(jì).doc_第4頁(yè)
硬連線控制器設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

模型機(jī)硬連線控制器設(shè)計(jì)一、 實(shí)驗(yàn)?zāi)康模?) 融會(huì)貫通計(jì)算機(jī)組成原理與體系結(jié)構(gòu)課程各章教學(xué)內(nèi)容,通過(guò)知識(shí)的綜合運(yùn)用,加深對(duì)CPU個(gè)模塊工作原理及相互聯(lián)系的認(rèn)識(shí);(2) 掌握硬連線控制器的設(shè)計(jì)方法;(3) 培養(yǎng)科學(xué)研究能力,取得設(shè)計(jì)和調(diào)試的實(shí)踐經(jīng)驗(yàn)。二、 實(shí)驗(yàn)設(shè)備(1) TEC-8實(shí)驗(yàn)系統(tǒng) 1臺(tái)(2) Pentium 3 以上的PC 1臺(tái)(3) 雙蹤示波器 1臺(tái)(4) 直流萬(wàn)用表 1塊(5) 邏輯測(cè)試筆(在TEC-8實(shí)驗(yàn)臺(tái)上) 1支三、 設(shè)計(jì)與調(diào)試任務(wù)(1)設(shè)計(jì)一個(gè)硬連線控制器,和TEC-8模型計(jì)算機(jī)的數(shù)據(jù)通路結(jié)合在一起,構(gòu)成一個(gè)完整的CPU,對(duì)該CPU要求:l 能顧完成控制臺(tái)操作,包括啟動(dòng)程序運(yùn)行、讀存儲(chǔ)器、寫存儲(chǔ)器、讀寄存器、寫寄存器。l 能夠執(zhí)行表3.1中的指令,完成規(guī)定的指令功能。表3.1中,XX代表任意值,Rs代表源寄存器號(hào),Rs代表目的寄存器號(hào)。在條件轉(zhuǎn)移指令中,代表當(dāng)前PC的值,offset是一個(gè)四位的有符號(hào)數(shù),第三位是符號(hào)位,0代表正數(shù),1代表負(fù)數(shù)。注意:不是當(dāng)前指令的PC值,而是當(dāng)前指令的PC值加1。表Error! No text of specified style in document.1新設(shè)計(jì)CPU的指令系統(tǒng)名 稱助 記 符功 能指 令 格 式IR7 IR6 IR5 IR4IR3 IR2IR1 IR0加法ADD Rd, RsRd Rd + Rs0001RdRs減法SUB Rd, RsRd Rd - Rs0010RdRs邏輯與AND Rd, RsRd Rd and Rs0011RdRs加1INC Rd Rd Rd + 10100RdXX取數(shù)LD Rd, RsRd Rs0101RdRs存數(shù)ST Rs, RdRs Rd0110RdRsC條件轉(zhuǎn)移JC offset若C=1,則PC + offset0111offsetZ條件轉(zhuǎn)移JZ offset若Z=1,則PC + offset1000offset無(wú)條件轉(zhuǎn)移JMP RdPC Rd1001RdXX輸出OUT RsDBUS Rs1010XXRs停機(jī)STP暫停運(yùn)行1110XXXXl 在Quartus|下對(duì)硬連線控制器進(jìn)行編程的編譯。l 將編譯后的硬連線控制器下載到TEC-8實(shí)驗(yàn)臺(tái)的可編程器件EPM7128S中去,使得EPM7128S成為一個(gè)硬連線控制器。l 根據(jù)指令系統(tǒng),編寫檢測(cè)硬連線控制器正確性的測(cè)試程序,并用測(cè)試程序?qū)τ策B線控制器在單微指令方式下進(jìn)行調(diào)試,直到成功。(2)在調(diào)試成功的基礎(chǔ)上,整理出設(shè)計(jì)文件。1.硬連線控制器邏輯模塊圖;2.硬連線控制器指令周期流程圖;3.硬連線控制器的硬件描述語(yǔ)言源程序;4.測(cè)試程序;5.設(shè)計(jì)說(shuō)明書;6.調(diào)試總結(jié)。四、硬連線控制器邏輯模塊圖 本實(shí)驗(yàn)要求設(shè)計(jì)硬連線控制器,而仍然利用實(shí)驗(yàn)臺(tái)的數(shù)據(jù)通路和其他模塊。因此我們只需對(duì)硬連線控制器部分進(jìn)行編程就行了。TEC-8模型計(jì)算機(jī)電路框圖如下圖1。圖1 TEC-8模型計(jì)算機(jī)電路框圖從電路框圖中可知,硬連線控制器與微程序控制器不同,其產(chǎn)生的控制信號(hào)除了受譯碼器輸出信號(hào)SWCSWA、IR7IR4,節(jié)拍電位信號(hào)T1T3,狀態(tài)條件信號(hào)Z、C,以及CLR#的控制外,還受時(shí)序發(fā)生器產(chǎn)生的節(jié)拍脈沖信號(hào)W3W1的控制。硬連線控制器的邏輯模塊圖為:圖2 硬連線控制器的邏輯模塊圖五、硬連線控制器指令周期流程圖與微程序控制器不同,硬連線控制器以節(jié)拍電位W3W1為時(shí)間單位。其指令周期流程圖為:圖3硬連線控制器參考流程圖一個(gè)執(zhí)行框代表一個(gè)節(jié)拍電位時(shí)間,TEC-8實(shí)驗(yàn)系統(tǒng)中采用了可變節(jié)拍數(shù)來(lái)執(zhí)行一條機(jī)器指令。從上圖中可知,大部分指令只需要兩個(gè)節(jié)拍電位W1和W2,少數(shù)指令還需要W3。因此當(dāng)需要W3時(shí)在W2時(shí)產(chǎn)生一個(gè)信號(hào)LONG。時(shí)序信號(hào)發(fā)生器收到信號(hào)LONG后產(chǎn)生W3。有的操作如寫寄存器需要四個(gè)節(jié)拍電位,將該操作化成兩條機(jī)器指令的節(jié)拍,通過(guò)信號(hào)ST0聯(lián)系在一起。還可以只產(chǎn)生W1,通過(guò)SHORT信號(hào)實(shí)現(xiàn)。根據(jù)硬連線流程圖還可以得到組合邏輯譯碼表,如下表2:表2 組合邏輯譯碼表IRADDSUBANDINCLDSTJMPOUTSTPJCJZLIRW1W1W1W1W1W1W1W1W1W1W1MW2W2W2/W3W2W2S3W2W2W2W2/W3W2W2S2W2W2W2S1W2W2W2/W3W2W2S0W2W2W2W2CINW2LDCW2W2W2LDZW2W2W2W2DRWW2W2W2W2W3ABUSW2W2W2W2W2W2/W3W2W2LARW2W2PCADDC,W2Z,W2LPCMBUSW3MEMWW3LONGW2W2STOPW2PCINCW1W1W1W1W1W1W1W1W1W1W1根據(jù)譯碼表,對(duì)以后的編程和錯(cuò)誤查找有很大的幫助。六、程序編寫過(guò)程 利用Verilog語(yǔ)言,在Modelsim環(huán)境下進(jìn)行編程和仿真。剛開始做實(shí)驗(yàn)時(shí)心里是茫然的,不知道從哪里開始,無(wú)從下手,不知道采用什么方法,加上對(duì)Verilog語(yǔ)言的掌握還不夠熟練,因此第一次實(shí)驗(yàn)課幾乎沒有什么進(jìn)展。后來(lái)通過(guò)王教員和唐教員的耐心講解和指導(dǎo),明白了可以用兩種不同的實(shí)現(xiàn)方法進(jìn)行編程,但因?yàn)閭€(gè)人覺得利用狀態(tài)機(jī)的方法進(jìn)行編程理解起來(lái)思路較為簡(jiǎn)單,而且邏輯較為清楚,于是決定利用狀態(tài)機(jī)的方法進(jìn)行編程。本程序是在唐教員的程序基礎(chǔ)上進(jìn)行修改的(唐教員的還沒有完成),但在編程過(guò)程中還是遇到了很多的問題,比如時(shí)序問題等。在同學(xué)和教員的幫助下,完成了一部分工作,但程序依然存在著一些問題,結(jié)果實(shí)驗(yàn)還是沒有完全做完。把整個(gè)控制器分為四個(gè)狀態(tài):state0表示初始狀態(tài),對(duì)所有的信號(hào)進(jìn)行初始化,表示clear以后的狀態(tài),只有STOP有效;state1表示W(wǎng)1有效時(shí)的狀態(tài),具體又可以按照SWCSWA的不同進(jìn)行不同的賦值與操作;state2表示W(wǎng)2有效時(shí)的狀態(tài),再根據(jù)SW的不同進(jìn)行賦值;state3表示W(wǎng)3有效時(shí)的狀態(tài)。正常情況下一個(gè)狀態(tài)完成以后進(jìn)入下一狀態(tài),但有很多情況下是不行的,比如寫存儲(chǔ)器、讀存儲(chǔ)器、寫寄存器等操作。于是需要根據(jù)對(duì)ST0信號(hào)、SHORT信號(hào)、LONG信號(hào)等進(jìn)行判別來(lái)進(jìn)行不同狀態(tài)之間的轉(zhuǎn)化。具體為:從state0開始,若sw符合要求(5),進(jìn)入state1,否則回到state0;state1:若執(zhí)行程序且ST0=0或讀存儲(chǔ)器或?qū)懘鎯?chǔ)器,則下一狀態(tài)仍為state1,否則下一狀態(tài)為state2;state2:若為執(zhí)行指令的LD或ST,則下一狀態(tài)為state3,若為寫寄存器操作且ST0=0或執(zhí)行指令但不為L(zhǎng)D或ST,則下一狀態(tài)為W1,若都不符合,下一狀態(tài)為初始狀態(tài)state0;state3:直接回到state1;源程序壓縮包:CPU為源程序,其余程序?yàn)闇y(cè)試程序,程序名字表示所測(cè)試的指令或工作臺(tái)模式。七、Modelsim仿真過(guò)程程序編譯成功后,開始編寫仿真程序,進(jìn)行仿真。因?yàn)閷?duì)仿真程序的掌握不是很完善,剛開始我們組就出了很多問題,不是時(shí)序的問題就是賦值的問題。感謝同學(xué)和教員的耐心指導(dǎo)和幫助。因?yàn)槠鶈栴},在此僅貼出操作臺(tái)操作和部分有代表性的指令的仿真過(guò)程,(ADD,AND,LD,JC,JMP,STP)其余仿真代碼在程序包里,因?yàn)椴]有燒到芯片里,也沒有真正的實(shí)現(xiàn),所以實(shí)際源程序可能還存在著一些問題。(一) 操作臺(tái)模式仿真過(guò)程1.寫存儲(chǔ)器過(guò)程仿真(SW為001)寫存儲(chǔ)器只需要W1,仿真圖如圖4所示:圖4 寫存儲(chǔ)器過(guò)程仿真圖2.讀存儲(chǔ)器過(guò)程仿真(SW為010)讀存儲(chǔ)器的過(guò)程在時(shí)序上與寫存儲(chǔ)器類似,都只需W1。仿真圖如圖5所示:圖5讀存儲(chǔ)器過(guò)程仿真圖3.讀寄存器過(guò)程仿真(SW為011)讀寄存器過(guò)程需要W1和W2。圖6 讀寄存器過(guò)程仿真圖4.寫寄存器過(guò)程仿真(SW為100)寫寄存器過(guò)程各需要兩個(gè)W1,W2。并用ST0作為時(shí)序判定條件圖7 寫寄存器過(guò)程仿真圖(二) 指令執(zhí)行過(guò)程仿真1. ADD指令執(zhí)行過(guò)程仿真(SW為000,IR74為0001)SUB與ADD類似。圖8 ADD指令執(zhí)行仿真圖2. AND指令仿真過(guò)程(SW為000,IR74為0011)INC與AND類似。圖9 AND指令執(zhí)行仿真圖3. LD指令仿真過(guò)程(SW為000,IR74為0101)ST與LD類似。圖10 LD指令執(zhí)行仿真圖4. JC指令仿真過(guò)程(SW為000,IR74為1000,此時(shí)C=1)JZ與JC類似。圖11 JC指令執(zhí)行仿真圖5.JMP指令仿真過(guò)程(SW為000,IR74為1001)圖12 JMP指令執(zhí)行仿真圖6.STP指令仿真過(guò)程(SW為000,IR74為1110)圖13 STP指令執(zhí)行仿真圖八、測(cè)試程序 測(cè)試程序是在源程序編寫完成并仿真成功并燒到芯片里以后用于在模型計(jì)算機(jī)上完整的測(cè)試源程序的。測(cè)試程序的編寫過(guò)程中,我們組盡可能的利用上所有的指令,使得每條指令都能測(cè)試一遍,以便更好的測(cè)試性能和正確性,但因?yàn)椴]有燒到芯片里,所以測(cè)試程序并沒有起到作用。地址指令十六進(jìn)制機(jī)器代碼二進(jìn)制機(jī)器代碼00HLD 53H0101001101HINC 4CH0100110002HSUB 21H0010000103HJZ 0CH8CH1000110004HST 68H0110100005HLD 53H0101001106HINC 4CH0100110007HADD 11H0001000108HJC 0CH7CH0111110009HJMP 9CH100111000AHINC 48H010010000BHSTP0E0H111000000CH08H08H000010000DH15H15H000101010EHFFH0FFH111111110FH01H01H0000000110HAND 31H0011000111HOUT 0A2H1010001012HSTP0E0H11100000九、設(shè)計(jì)說(shuō)明書1.源程序的設(shè)計(jì)利用狀態(tài)機(jī)的思想,把整個(gè)控制器分為四個(gè)狀態(tài):state0、state1、state2、state3。不同state表示的狀態(tài)為:state0表示初始狀態(tài),對(duì)所有的信號(hào)進(jìn)行初始化,表示clear以后的狀態(tài),只有STOP有效;state1表示W(wǎng)1有效時(shí)的狀態(tài),具體又可以按照SWCSWA的不同進(jìn)行不同模式下的賦值與操作;state2表示W(wǎng)2有效時(shí)的狀態(tài),再根據(jù)SW的不同進(jìn)行賦值;state3表示W(wǎng)3有效時(shí)的狀態(tài),主要是指執(zhí)行指令LD和ST時(shí)才有可能會(huì)進(jìn)入的狀態(tài)(其他情況下不需要W3)。定義兩個(gè)變量,state和next_state。state表示當(dāng)前狀態(tài),next_state表示下一狀態(tài)。state完成本狀態(tài)內(nèi)的所有操作以后進(jìn)入next_state,正常情況下next_state就是state加1,但有很多情況下是不行的,比如寫存儲(chǔ)器、讀存儲(chǔ)器、寫寄存器等操作不能直接的加一。于是需要根據(jù)對(duì)ST0信號(hào)、SHORT信號(hào)、LONG信號(hào)等進(jìn)行判別來(lái)確定下一狀態(tài)。具體為:從state0開始,判斷SW,若SW符合要求(值5),進(jìn)入state1(next_state=state1),否則回到state0(next_state=state0);state1:判斷SW、ST0,若執(zhí)行程序(SW=000)且ST0=0或讀存儲(chǔ)器(SW=010)或?qū)懘鎯?chǔ)器(SW=001),則next_state=state1,否則next_state=state2;state2:判斷SW、IR、ST0,若為執(zhí)行指令(SW=000)的LD(IR74=0101)或ST(IR74=0110),則next_state=state3,若為寫寄存器操作(SW=100)且ST0=0或執(zhí)行指令但不為L(zhǎng)D或ST,則next_state=W1,若都不符合,next_state=state0;state3:next_state=state1;因此,參考流程圖可知,對(duì)于不同的操作模式和指令的狀態(tài)轉(zhuǎn)換為:寫存儲(chǔ)器:state0state1state1讀存儲(chǔ)器:state0state1state1讀寄存器:state0state1state2寫寄存器:state0state1state2state1state2指令:LD/ST:state0state1state1state2state3其他:state0state1state1state22.測(cè)試程序的設(shè)計(jì)源程序完成以后,要進(jìn)行仿真,因此需要設(shè)計(jì)測(cè)試程序。設(shè)計(jì)測(cè)試程序是為了給出各輸入信號(hào)的值,并產(chǎn)生與工作臺(tái)模式或指令要求相符的機(jī)器周期(如執(zhí)行LD指令時(shí),依據(jù)指令產(chǎn)生的機(jī)器周期為W1,W1,W2,W3,W1),觀察仿真波形是否會(huì)產(chǎn)生有效的輸出信號(hào)。因此,在設(shè)計(jì)測(cè)試程序時(shí),重點(diǎn)和難點(diǎn)便是產(chǎn)生符合源程序執(zhí)行情況的機(jī)器周期。因?yàn)闇y(cè)試的目的主要是看源程序在正確的機(jī)器周期下,對(duì)于不同的模式和指令是否會(huì)產(chǎn)生正確的信號(hào), 因此可以把每個(gè)工作臺(tái)模式和各個(gè)指令都寫一個(gè)仿真程序進(jìn)行單獨(dú)仿真。十、實(shí)驗(yàn)總結(jié) 表面上看,本次實(shí)驗(yàn)僅僅是要我們?cè)O(shè)計(jì)一個(gè)CPU的硬連線控制器部分,而實(shí)際上卻需要我們綜合運(yùn)用以往所學(xué)的很多關(guān)于計(jì)算機(jī)組成結(jié)構(gòu)方面的知識(shí)。這次的實(shí)驗(yàn)讓我真正明白了什么叫大實(shí)驗(yàn),相比前幾次的實(shí)驗(yàn)。因?yàn)閷?shí)驗(yàn)的前期準(zhǔn)備不充分,使得進(jìn)展較為緩慢,不知道從何下手,浪費(fèi)了很多時(shí)間。通過(guò)教員的講解和指導(dǎo),并經(jīng)過(guò)組內(nèi)的討論決定運(yùn)用狀態(tài)機(jī)的方法進(jìn)行編程。因?yàn)閷?duì)Verilog語(yǔ)言的掌握還不夠熟練,所以編程過(guò)程中也出現(xiàn)了很多或大或小的問題,比如說(shuō)賦值的時(shí)候是用=還是=(=和=表達(dá)的意義是不同的,只有在assign語(yǔ)句中用=,而在其他的賦值語(yǔ)句中一般用=),狀態(tài)之間的轉(zhuǎn)化條件的確定,判斷轉(zhuǎn)移條件時(shí)是用信號(hào)判斷(LONG、SHORT等)還是利用操作模式和IR值判斷(我們后來(lái)利用SW、IR和ST0判斷)等等。遇到問題,積極的向同學(xué)和教員請(qǐng)教,在大家的幫助下,我們也確實(shí)解決了很多問題。很感謝教員和其他同學(xué)的幫助和耐心講解,幫助我們找到了一些程序上的錯(cuò)誤,讓我們少走了一些彎路。但在編寫仿真程序時(shí),又遇到了很多障礙,很多概念有點(diǎn)搞不清,比如說(shuō)剛開始對(duì)于知道了T3和W13的關(guān)系,卻不明白怎么實(shí)現(xiàn)QD和T3,W13之間的協(xié)同配合,多虧了教員的仿真程序,看了很多遍以后才慢慢理解了如何實(shí)現(xiàn)它??偟膩?lái)說(shuō),沒有在規(guī)定的實(shí)驗(yàn)課程安排里完成本次實(shí)驗(yàn),還是覺得很遺憾,也有一點(diǎn)失落感。因?yàn)闆]有燒到芯片里,程序中存在的一些問題也沒法找出來(lái),可能依然存在著很多的漏洞和不足。通過(guò)這次實(shí)驗(yàn)也讓我對(duì)CPU各模塊的工作原理和相互聯(lián)系有

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論