綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)王春桃內(nèi)容提要回顧馮·諾依曼CPU結(jié)構(gòu)及工作原理16位實(shí)驗(yàn)CPU的設(shè)計(jì)與實(shí)現(xiàn)將16位實(shí)驗(yàn)CPU的改造成8位的實(shí)驗(yàn)CPU評(píng)分標(biāo)準(zhǔn)2024/1/203馮·諾依曼型計(jì)算機(jī)存儲(chǔ)器輸出輸入運(yùn)算器控制器數(shù)據(jù)信號(hào)控制信號(hào)地址信號(hào)4CPU的功能1.CPU的功能指令控制(程序的順序控制)操作控制(一條指令有若干操作信號(hào)實(shí)現(xiàn))時(shí)間控制(指令各個(gè)操作實(shí)施時(shí)間的定時(shí))數(shù)據(jù)加工(算術(shù)運(yùn)算和邏輯運(yùn)算)5例:CPU的基本組成ALU數(shù)據(jù)緩沖寄存器狀態(tài)字寄存器地址數(shù)據(jù)57061007661077……304031地址OP碼地址碼101MOVR0,R1102LADR1,6103ADDR1,R2104STOR2,(R3)105JMP101106ANDR1,R3107地址寄存器程序計(jì)數(shù)器時(shí)序發(fā)生器操作控制器指令譯碼器OP碼地址碼R0R1R2R3數(shù)存cache指存cacheAR數(shù)據(jù)地址總線指令地址總線控制信號(hào)OCPCIR指令寄存器C1C2C1C2C3Cn內(nèi)容提要回顧馮·諾依曼CPU結(jié)構(gòu)及工作原理16位實(shí)驗(yàn)CPU的設(shè)計(jì)與實(shí)現(xiàn)將16位實(shí)驗(yàn)CPU的改造成8位的實(shí)驗(yàn)CPU評(píng)分標(biāo)準(zhǔn)下面以16位的實(shí)驗(yàn)CPU為例進(jìn)行回顧,說明設(shè)計(jì)實(shí)現(xiàn)過程的思路和方法設(shè)計(jì)指令系統(tǒng)確定CPU的結(jié)構(gòu)圖確定控制信號(hào)分析各個(gè)主要模塊的功能及設(shè)計(jì)方法編程實(shí)現(xiàn)組裝測(cè)試16位實(shí)驗(yàn)CPU設(shè)計(jì)思路設(shè)計(jì)指令前了解現(xiàn)實(shí)需求,并將其中必不可少、使用頻率較大的需求設(shè)計(jì)為指令確定指令格式,如OP和地址碼分別如何設(shè)計(jì)OP碼常用固定長(zhǎng)度,根據(jù)指令條數(shù)來確定確定地址碼有幾個(gè),分別應(yīng)該是多長(zhǎng)指令分類及其對(duì)應(yīng)的格式:?jiǎn)巫珠L(zhǎng)、雙字長(zhǎng)指令功能分組及OP碼分配,形成指令總表不同組指令的執(zhí)行時(shí)長(zhǎng)不等,為提高效率,進(jìn)行時(shí)序分析與設(shè)計(jì),以狀態(tài)機(jī)形式反映1.設(shè)計(jì)指令系統(tǒng)(1)單字單操作數(shù)指令包括:DEC,INC,SHL,SHR,JR,JRC,JRNC,JRZ,JRNZ,JRS,JRNS1.1設(shè)計(jì)指令系統(tǒng)1587430OPCODEDEST_REG0000OPCODEOFFSET(2)單字雙操作數(shù)指令包括:ADD,SUB,AND,CMP,XOR,TEST,OR,MVRR,ADC,SBB,LDRR,STRR(3)單字無操作數(shù)指令包括:CLC,STC1.1設(shè)計(jì)指令系統(tǒng)1587430OPCODEDEST_REGSOUR_REG1587430OPCODE00000000(4)雙字單操作數(shù)指令包括:JMPA(5)雙字雙操作數(shù)指令包括:MVRD1.1設(shè)計(jì)指令系統(tǒng)1587430OPCODE00000000ADR1587430OPCODEDEST_REG0000DATA由于沒有中斷操作,本機(jī)指令的執(zhí)行步驟可概括如下:讀取指令:地址寄存器<-指令地址,修改PC內(nèi)容使其指向下一條將要執(zhí)行的指令讀內(nèi)存,指令寄存器<-讀出的內(nèi)容分析指令執(zhí)行指令:通用寄存器之間的運(yùn)算或傳送,可1步完成讀寫內(nèi)存,通常要兩步完成1.2設(shè)計(jì)指令節(jié)拍根據(jù)指令的執(zhí)行步驟不同,可以把全部指令分為A、B兩組A組指令完成的是通用寄存器之間的數(shù)據(jù)運(yùn)算或傳送,或其他一些特殊操作,在取指之后可一步完成B組指令完成的是一次內(nèi)存讀寫操作,在取指之后可兩步完成A和B組指令節(jié)拍控制1.2設(shè)計(jì)指令節(jié)拍以狀態(tài)機(jī)方式實(shí)現(xiàn)1.3指令匯總表本綜合實(shí)驗(yàn),擬設(shè)計(jì)的是無cache無流水的CPU因此,采用常規(guī)的CPU結(jié)構(gòu),即主要包含運(yùn)算器控制器設(shè)計(jì)思路在設(shè)計(jì)時(shí),可以先考慮比較粗的結(jié)構(gòu)然后再逐漸細(xì)化例子說明2.確定CPU結(jié)構(gòu)控制器運(yùn)算器內(nèi)存與ALU運(yùn)算有關(guān)的:ALU輸入來源控制ALU_IN_SELALU運(yùn)算類型控制AluFunc對(duì)初始進(jìn)位信號(hào)的控制SCI對(duì)標(biāo)志位C、Z、V、S的設(shè)置控制SST與寄存器有關(guān)的:SR、DRReg_EN3.確定控制信號(hào)對(duì)AR和IR接收控制REC(00無操作,01時(shí)AR接收PC,10時(shí)AR接收ALU輸出,11時(shí)IR接收)對(duì)內(nèi)存讀寫的控制/wr(0時(shí)為寫內(nèi)存,1時(shí)為讀內(nèi)存)對(duì)PC的更新控制PC_EN3.確定控制信號(hào)綜合上述的控制信號(hào),可以得到該CPU的控制信號(hào)集合。在設(shè)計(jì)控制器時(shí),只要根據(jù)相關(guān)的指令給出這些控制信號(hào)的值即可即控制信號(hào)共有10個(gè):ALU_IN_SEL、AluFuncSCI、SSTSR、DR、Reg_ENREC/wrPC_EN3.確定控制信號(hào)表中的I7對(duì)應(yīng)pc_en,I6對(duì)應(yīng)reg_en,I5I4I3對(duì)應(yīng)alu_in_sel,I2I1I0對(duì)應(yīng)alu_func_sel,SR和DR由指令給出3.確定控制信號(hào)節(jié)拍指令編碼SciSSTI7I6I5I4I3I2I1I0/WRREC注釋000011110100000101AR<-PC,PC<-PC+1001001100000000110IR<-MEM011ADD00000000000001000000100DR<-DR+SRSUB00000001000001000001100DR<-DR-SRAND00000010000001000010100DR<-DRandSR舉例說明如何控制,以ADDR0,R1為例第1拍:提供指令地址對(duì)應(yīng)節(jié)拍000動(dòng)作:PC->AR,PC+1->PC控制信號(hào):令REC=01,實(shí)現(xiàn)PC->AR控制ALU實(shí)現(xiàn)PC+1,PC為其中ALU輸入,另一個(gè)輸入為0,初始進(jìn)位Cin為1。為此,令SCI=1,以實(shí)現(xiàn)Cin=1;令A(yù)LU_IN_SEL=100以選擇A=0和B=PC;令A(yù)LU_FUNC_SEL=000,以實(shí)現(xiàn)A+B+Cin令PC_EN=1,以把增1后的結(jié)果置入PC中3.確定控制信號(hào)其它控制信號(hào)按缺省值設(shè)置即可如控制標(biāo)志位的SST,令保持原來標(biāo)志即可,此時(shí)SST=11控制寄存器寫的REG_EN,不用寫,保持REG_EN=0控制內(nèi)存寫的/wr,不用寫,令/wr=1綜合上述控制信號(hào)值,可得:3.確定控制信號(hào)節(jié)拍指令編碼SciSSTI7I6I5I4I3I2I1I0/WRREC注釋000011110100000101AR<-PC,PC<-PC+1第2拍:從內(nèi)存取出指令對(duì)應(yīng)節(jié)拍:001動(dòng)作:IR<-Mem控制信號(hào):為了控制內(nèi)存讀,/wr應(yīng)該設(shè)置為/wr=1為了將從Mem讀出的指令打入IR,控制IR的REC應(yīng)設(shè)成REC=10其它保持缺省值因此,此時(shí)的控制信號(hào)集合為:3.確定控制信號(hào)節(jié)拍指令編碼SciSSTI7I6I5I4I3I2I1I0/WRREC注釋001001100000000110IR<-Mem第3拍:執(zhí)行加法運(yùn)算節(jié)拍:011動(dòng)作:R0<-R0+R1控制信號(hào):ALU運(yùn)算的數(shù)據(jù)源自于寄存器,因此ALU_IN_SEL=000執(zhí)行加法運(yùn)算,因此ALU_FUNC_SEL=000初始進(jìn)位Cin必須為0,因此SCI=00完成運(yùn)算后,結(jié)果會(huì)影響標(biāo)志位,因此SST=00運(yùn)算結(jié)果要保存到寄存器中,因此REG_EN=1其它控制信號(hào)按缺省值設(shè)置,即/wr=1和REC=00因此,控制信號(hào)集合為:3.確定控制信號(hào)節(jié)拍指令編碼SciSSTI7I6I5I4I3I2I1I0/WRREC注釋011000001000000100DR<-SR+DR運(yùn)算器部分包括了如下的模塊:寄存器組、ALU輸入復(fù)用模塊、ALU運(yùn)算器、標(biāo)志寄存器控制部分包含了如下的模塊:PC、IR、時(shí)序發(fā)生器(即TIMER)、控制單元內(nèi)存部分AR在分析這些模塊時(shí),先分析它的功能,然后分析輸入輸出信號(hào),最后分析其實(shí)現(xiàn)邏輯在完成這些分析后,結(jié)合數(shù)據(jù)通路,分析各條指令的執(zhí)行流程,以加深對(duì)CPU原理的理解4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法運(yùn)算器ALU功能:對(duì)兩個(gè)16位的輸入及低位進(jìn)位輸入cin,根據(jù)運(yùn)算功能進(jìn)行運(yùn)算,產(chǎn)生相應(yīng)的結(jié)果,并更改標(biāo)志位輸入輸出信號(hào):輸入信號(hào)為:A、B、cin、alu_func輸出信號(hào)為:Y、C、Z、V、S邏輯框圖4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法功能實(shí)現(xiàn)思路根據(jù)alu_func進(jìn)行相應(yīng)的運(yùn)算,如alu_func為000時(shí)進(jìn)行加法運(yùn)算,001時(shí)進(jìn)行減法運(yùn)算,如此類推根據(jù)運(yùn)算結(jié)果,對(duì)標(biāo)志符號(hào)C、Z、V、S進(jìn)行相應(yīng)的更新參考基礎(chǔ)實(shí)驗(yàn)2的方案2文檔4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法ALU_func進(jìn)位輸出c結(jié)果為零z溢出v符號(hào)位s000若x”FFFF”-B-cin>A成立,c=1;否則c=0若alu_out=x”0000”成立,z=1;否則為0若A、B的最高位為1(或0),但alu_out最高位為0(1),則v=1;否則v=0若alu_out的最高位為1,則s=1;否則s=0001若A<B成立,c=1;否則c=0010無進(jìn)位無溢出,v=0011100101c為最高位110c為最低位寄存器組功能:實(shí)現(xiàn)寄存器的讀和寫,寫時(shí)在時(shí)鐘上升沿根據(jù)DR和REG_EN寫入一個(gè)數(shù)據(jù),讀時(shí)根據(jù)SR和DR同時(shí)讀出兩個(gè)數(shù)據(jù)。此外,為方便測(cè)試,尚需根據(jù)寄存器選擇編號(hào)讀出對(duì)應(yīng)寄存器的數(shù)值輸入輸出信號(hào):輸入信號(hào):reset,clk,dest_reg,src_reg,en,alu_out,reg_sel輸出信號(hào):sr,dr,reg_out邏輯框圖4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法功能實(shí)現(xiàn)思路設(shè)計(jì)兩個(gè)功能模塊:一為reg,一為reg_mux調(diào)用16個(gè)reg和1個(gè)reg_mux連接起來,即形成寄存器組參考基礎(chǔ)實(shí)驗(yàn)4的方案2文檔4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法ALU輸入復(fù)用模塊功能:根據(jù)控制信號(hào)ALU_IN_SEL,確定ALU的兩個(gè)輸入的來源。功能如下表所示:4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法ALU_IN_SELALU_AALU_B000SRDR001SR00100DR011OFFSETPC1000PC1010DATAI5I4I3(即ALU_IN_SEL)表格輸入輸出信號(hào)輸入信號(hào):來自于寄存器的輸出信號(hào)sr和dr,來自于指令的OFFSET,來自于PC的值PC,來自于內(nèi)存的數(shù)據(jù)DATA,以及控制信號(hào)ALU_IN_SEL輸出信號(hào):ALU_SR和ALU_DR邏輯框圖功能實(shí)現(xiàn)思路根據(jù)ALU復(fù)用功能控制

表即可進(jìn)行實(shí)現(xiàn)4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法標(biāo)志位寄存器功能:根據(jù)控制信號(hào)SST,設(shè)置相應(yīng)的標(biāo)志位C、Z、S、V。其控制方式如下:輸入輸出信號(hào):輸入信號(hào):C,Z,S,V,SST,clk,reset輸出信號(hào):FLAG_C,FLAG_Z,FLAG_S,FLAG_V

邏輯框圖功能實(shí)現(xiàn)思路:根據(jù)上表進(jìn)行控制即可4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法SSTCZVS00接受ALU的運(yùn)算結(jié)果010ZVS101ZVS11CZVS控制器功能:在時(shí)序發(fā)生器的驅(qū)動(dòng)下,根據(jù)各指令的節(jié)拍控制各指令的取指及執(zhí)行輸入輸出信號(hào)輸入信號(hào):來自于時(shí)序發(fā)生器的節(jié)拍timer,來自于IR的指令instruction,來自于標(biāo)志寄存器的flag_c、flag_z、flag_v、flag_s輸出信號(hào):前面所分析的控制信號(hào)集合用于寄存器的dest_reg、source_reg、en_reg用于alu相關(guān)的alu_in_sel、alu_func_sel、sci、sst用于控制PC寫的en_pc4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法用于內(nèi)存讀寫的/wr用于控制PC和IR接收信號(hào)源的rec邏輯框圖功能實(shí)現(xiàn)思路:根據(jù)指令節(jié)拍表在不同節(jié)拍進(jìn)行逐一發(fā)出控制信號(hào)即可節(jié)拍表參考《開放式教學(xué)CPU

設(shè)計(jì)與測(cè)試系統(tǒng)》P28-294.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法節(jié)拍發(fā)生器功能:根據(jù)外部提供的時(shí)鐘脈沖以及指令功能,產(chǎn)生不同的節(jié)拍脈沖序列輸入輸出信號(hào):輸入信號(hào):reset、clk、ins輸出信號(hào):timer邏輯框圖4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法功能實(shí)現(xiàn)思路利用狀態(tài)機(jī)及指令功能來實(shí)現(xiàn)狀態(tài)轉(zhuǎn)移參考下圖4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法地址寄存器AR和指令寄存器IR功能:在控制信號(hào)REC的控制,緩存相應(yīng)的數(shù)據(jù)或指令。控制方式如下:輸入輸出信號(hào)直接參考邏輯框圖邏輯框圖功能實(shí)現(xiàn)思路:按上表控制4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法REC操作00無操作01AR接收PC11AR接收ALU輸出10IR接收程序計(jì)數(shù)器功能:保存當(dāng)前或下一跳指令的值,若是順序執(zhí)行則其值自增1,若是跳轉(zhuǎn)則接受來自于ALU的跳轉(zhuǎn)目標(biāo)值輸入輸出信號(hào):輸入信號(hào):reset,clk,en,alu_out輸出信號(hào):pc邏輯框圖功能實(shí)現(xiàn)思路:順序執(zhí)行時(shí)PC<-PC+1跳轉(zhuǎn)執(zhí)行時(shí)PC<-alu_out4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法器件T1功能:在控制信號(hào)Sci的控制之下,根據(jù)c標(biāo)志位設(shè)置初始進(jìn)位值Cin??刂品绞饺缦拢狠斎胼敵鲂盘?hào):輸入信號(hào):flag_c、sci輸出信號(hào):alu_cin邏輯框圖功能實(shí)現(xiàn)思路:按上表進(jìn)行控制即可4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法SCICin00001110FLAG_C器件T2功能:將8位的有符號(hào)offset擴(kuò)充到16位輸入輸出信號(hào)直接參考如下的邏輯框圖邏輯框圖功能實(shí)現(xiàn)思路:利用補(bǔ)碼規(guī)則正數(shù)前面補(bǔ)8個(gè)0負(fù)數(shù)前面補(bǔ)8個(gè)14.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法器件T3功能:在/wr=1時(shí),才將來自于ALU的待寫數(shù)據(jù)送到數(shù)據(jù)總線,否則為高阻態(tài)輸入輸出信號(hào)直接參考下面的邏輯框圖邏輯框圖功能實(shí)現(xiàn)思路:/wr=1,輸出高阻態(tài)/wr=0,輸出alu_out4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法測(cè)試部件REG_OUT功能:根據(jù)功能選擇信號(hào)及寄存器選擇編號(hào),輸出相應(yīng)的寄存器內(nèi)容或控制信號(hào)輸入輸出信號(hào):輸入信號(hào):功能選擇信號(hào)sel、寄存器選擇編號(hào)reg_sel、ir、pc、寄存器輸出reg_in、offset、alu_a、alu_b、alu_out、reg_testa輸出信號(hào):reg_data邏輯框圖:4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法邏輯框圖功能實(shí)現(xiàn)思路:根據(jù)功能選擇信號(hào)sel確定功能再根據(jù)reg_sel,確定輸出數(shù)據(jù)具體見下表4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法sel[1..0]reg_sel[3..0]reg_data[15..0]00xxxx由xxxx確定的寄存器的輸出010000offset0001alu_a0010alu_b0011alu_out0100reg_testa(控制信息)其它全0111110pc1111ir其它全0其它無操作4.分析各個(gè)主要模塊的功能及設(shè)計(jì)方法根據(jù)上述第4點(diǎn)的分析,用VHDL語(yǔ)言編程實(shí)現(xiàn)具體參考給出的VHDL參考代碼5.編程實(shí)現(xiàn)將各個(gè)部件通過BDF方法或端口映射(portmap)方式連接起來,形成一個(gè)整體的實(shí)驗(yàn)CPU分配管腳,并下載到實(shí)驗(yàn)平臺(tái)上進(jìn)行測(cè)試所設(shè)計(jì)的CPU整體框圖為6.組裝測(cè)試CPU的內(nèi)部結(jié)構(gòu)CPU的測(cè)試方法根據(jù)所設(shè)計(jì)的指令系統(tǒng)匯編語(yǔ)言編寫測(cè)試用匯編代碼寫好編譯規(guī)則后,利用DebugController進(jìn)行編譯利用DebugController將編譯后的二進(jìn)制代碼寫到TEC-CA平臺(tái)的存儲(chǔ)器內(nèi)部利用TEC-CA平臺(tái)左下角的復(fù)位及單脈沖進(jìn)行測(cè)試模式控制鍵置成011先按復(fù)位按鈕進(jìn)行服位按單脈沖進(jìn)行逐條指令的測(cè)試根據(jù)指令的特點(diǎn),A組指令時(shí)3拍,B組是4拍。即按3此單脈沖,完成一條A組指令,如add指令;B組類推;每按一個(gè)節(jié)拍,調(diào)整sel和reg_sel,以確定輸出是否正確6.組裝測(cè)試內(nèi)容提要回顧馮·諾依曼CPU結(jié)構(gòu)及工作原理16位實(shí)驗(yàn)CPU的設(shè)計(jì)與實(shí)現(xiàn)將16位實(shí)驗(yàn)CPU的改造成8位的實(shí)驗(yàn)CPU評(píng)分標(biāo)準(zhǔn)改造思路基本上重新經(jīng)歷前述16位CPU的設(shè)計(jì)和實(shí)現(xiàn)流程具體思路:指令系統(tǒng)的改造:CPU內(nèi)部

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論