![綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f31.gif)
![綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f32.gif)
![綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f33.gif)
![綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f34.gif)
![綜合實(shí)驗(yàn):8位CPU設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f3/df90fb4c-b8b9-40cb-af6d-12d6ec9ac6f35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、王春桃回顧馮諾依曼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)2022-7-33存儲(chǔ)器輸出輸入運(yùn)算器控制器數(shù)據(jù)信號(hào)控制信號(hào)地址信號(hào)41. CPU的功能 指令控制(程序的順序控制) 操作控制(一條指令有若干操作信號(hào)實(shí)現(xiàn)) 時(shí)間控制(指令各個(gè)操作實(shí)施時(shí)間的定時(shí)) 數(shù)據(jù)加工(算術(shù)運(yùn)算和邏輯運(yùn)算)執(zhí)行指令取指令操作控制、時(shí)間控制5ALU數(shù)據(jù)緩沖寄存器狀態(tài)字寄存器地址數(shù)據(jù)57061007661077304031地址OP碼地址碼101MOVR0,R1102LADR1,6103ADDR1,R2104STOR2,(R3)105JMP101106ANDR1,
2、R3107地址寄存器程序計(jì)數(shù)器時(shí)序發(fā)生器操作控制器指令譯碼器OP碼地址碼R0R1R2R3數(shù)存cache指存cacheAR數(shù)據(jù)地址總線指令地址總線控制信號(hào)OCPCIR指令寄存器C1C2C1C2C3Cn回顧馮諾依曼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) 組裝測試設(shè)計(jì)指令前了解現(xiàn)實(shí)需求,并將其中必不可少、使用頻率較大的需求設(shè)計(jì)為指令確定指令格式,如OP和地址碼分別如何設(shè)計(jì)OP碼常用固定
3、長度,根據(jù)指令條數(shù)來確定確定地址碼有幾個(gè),分別應(yīng)該是多長指令分類及其對(duì)應(yīng)的格式:單字長、雙字長指令功能分組及OP碼分配,形成指令總表 不同組指令的執(zhí)行時(shí)長不等,為提高效率,進(jìn)行時(shí)序分析與設(shè)計(jì),以狀態(tài)機(jī)形式反映(1)單字單操作數(shù)指令包括:DEC,INC,SHL,SHR,JR,JRC,JRNC,JRZ,JRNZ, JRS,JRNS15 815 87 47 43 03 0OPCODEDEST_REG0000OPCODEOFFSET(2)單字雙操作數(shù)指令包括:ADD,SUB,AND,CMP,XOR,TEST,OR,MVRR,ADC,SBB,LDRR,STRR(3)單字無操作數(shù)指令 包括:CLC,STC
4、15 815 87 47 43 03 0OPCODEDEST_REG SOUR_REG15 815 87 47 43 03 0OPCODE0000 0000(4)雙字單操作數(shù)指令包括:JMPA(5)雙字雙操作數(shù)指令 包括:MVRD15 815 87 47 43 03 0OPCODE0000 0000ADR15 815 87 47 43 03 0OPCODEDEST_REG 0000DATA由于沒有中斷操作,本機(jī)指令的執(zhí)行步驟可概括如下:讀取指令: 地址寄存器-指令地址,修改PC內(nèi)容使其指向下一條將要執(zhí)行的指令 讀內(nèi)存,指令寄存器-讀出的內(nèi)容分析指令 執(zhí)行指令: 通用寄存器之間的運(yùn)算或傳送,可1
5、步完成 讀寫內(nèi)存,通常要兩步完成根據(jù)指令的執(zhí)行步驟不同,可以把全部指令分為A、B兩組 A組指令完成的是通用寄存器之間的數(shù)據(jù)運(yùn)算或傳送,或其他一些特殊操作,在取指之后可一步完成 B組指令完成的是一次內(nèi)存讀寫操作,在取指之后可兩步完成A和B組指令節(jié)拍控制以狀態(tài)機(jī)方式實(shí)現(xiàn)本綜合實(shí)驗(yàn),擬設(shè)計(jì)的是無cache無流水的CPU因此,采用常規(guī)的CPU結(jié)構(gòu),即主要包含 運(yùn)算器 控制器設(shè)計(jì)思路 在設(shè)計(jì)時(shí),可以先考慮比較粗的結(jié)構(gòu) 然后再逐漸細(xì)化 例子說明控制器運(yùn)算器內(nèi)存與ALU運(yùn)算有關(guān)的: ALU輸入來源控制ALU_IN_SEL ALU運(yùn)算類型控制AluFunc 對(duì)初始進(jìn)位信號(hào)的控制SCI 對(duì)標(biāo)志位C、Z、V、S的
6、設(shè)置控制SST與寄存器有關(guān)的: SR、DR Reg_EN對(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_EN綜合上述的控制信號(hào),可以得到該CPU的控制信號(hào)集合。在設(shè)計(jì)控制器時(shí),只要根據(jù)相關(guān)的指令給出這些控制信號(hào)的值即可即控制信號(hào)共有10個(gè): ALU_IN_SEL、 AluFunc SCI、SST SR、DR、Reg_EN REC /wr PC_EN表中的I7對(duì)應(yīng)pc_en,I6對(duì)應(yīng)reg_en,I5I4I3對(duì)應(yīng)alu_in_sel,I2I1I0對(duì)應(yīng)alu_fun
7、c_sel,SR和DR由指令給出節(jié)拍指令編碼SciSSTI7I6I5I4I3I2I1I0/WRREC注釋000011110100000101AR-PC,PC-PC+1001001100000000110IR-MEM011ADD00000000000001000000100DR-DR+SRSUB00000001000001000001100DR-DR-SRAND00000010000001000010100DRAR, 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
8、; 令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中 其它控制信號(hào)按缺省值設(shè)置即可 如控制標(biāo)志位的SST,令保持原來標(biāo)志即可,此時(shí)SST=11 控制寄存器寫的REG_EN,不用寫,保持REG_EN=0 控制內(nèi)存寫的/wr,不用寫,令/wr=1綜合上述控制信號(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)
9、存讀,/wr應(yīng)該設(shè)置為/wr=1 為了將從Mem讀出的指令打入IR,控制IR的REC應(yīng)設(shè)成REC=10 其它保持缺省值 因此,此時(shí)的控制信號(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 其它
10、控制信號(hào)按缺省值設(shè)置,即/wr=1和REC=00 因此,控制信號(hào)集合為:節(jié)拍指令編碼SciSSTI7I6I5I4I3I2I1I0/WRREC注釋011000001000000100DRA成立,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若AB成立,c=1;否則c=0010無進(jìn)位無溢出,v=0011100101c為最高位110c為最低位寄存器組 功能:實(shí)現(xiàn)寄存器的讀和寫,寫時(shí)在時(shí)鐘上升沿根據(jù)DR和REG_EN寫入一個(gè)數(shù)據(jù),讀時(shí)根據(jù)
11、SR和DR同時(shí)讀出兩個(gè)數(shù)據(jù)。此外,為方便測試,尚需根據(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 邏輯框圖resetclkdest_reg3.0ensr15.0dr15.0source_reg3.016位通用寄存器組alu_out15.0reg_sel3.0reg_out15.0 功能實(shí)現(xiàn)思路 設(shè)計(jì)兩個(gè)功能模塊:一為reg,一為reg_mux 調(diào)用16個(gè)reg和1個(gè)reg_mux連接起來,即形成寄存器組 參考基礎(chǔ)實(shí)驗(yàn)4的方案2文檔A
12、LU輸入復(fù)用模塊 功能:根據(jù)控制信號(hào)ALU_IN_SEL,確定ALU的兩個(gè)輸入的來源。功能如下表所示: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)標(biāo)志位寄存器 功能:根據(jù)控制信號(hào)SST,設(shè)置相應(yīng)的標(biāo)志位C、Z
13、、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)行控制即可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)集合 用于寄存器
14、的dest_reg、source_reg、en_reg 用于alu相關(guān)的alu_in_sel 、alu_func_sel 、sci 、sst 用于控制PC寫的en_pc 用于內(nèi)存讀寫的/wr 用于控制PC和IR接收信號(hào)源的rec 邏輯框圖 功能實(shí)現(xiàn)思路: 根據(jù)指令節(jié)拍表在不同節(jié)拍 進(jìn)行逐一發(fā)出控制信號(hào)即可 節(jié)拍表參考開放式教學(xué)CPU 設(shè)計(jì)與測試系統(tǒng)P28-29節(jié)拍發(fā)生器 功能:根據(jù)外部提供的時(shí)鐘脈沖以及指令功能,產(chǎn)生不同的節(jié)拍脈沖序列 輸入輸出信號(hào): 輸入信號(hào):reset、clk、ins 輸出信號(hào):timer 邏輯框圖 功能實(shí)現(xiàn)思路 利用狀態(tài)機(jī)及指令功能來實(shí)現(xiàn)狀態(tài)轉(zhuǎn)移 參考下圖地址寄存器AR和
15、指令寄存器IR 功能:在控制信號(hào)REC的控制,緩存相應(yīng)的數(shù)據(jù)或指令??刂品绞饺缦拢?輸入輸出信號(hào) 直接參考邏輯框圖 邏輯框圖 功能實(shí)現(xiàn)思路: 按上表控制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_out器件T1 功能:在控制信號(hào)Sci的控制之下,根據(jù)c標(biāo)志位設(shè)置初始進(jìn)位值Cin。控制方式如下: 輸
16、入輸出信號(hào): 輸入信號(hào):flag_c、sci 輸出信號(hào):alu_cin 邏輯框圖 功能實(shí)現(xiàn)思路: 按上表進(jìn)行控制即可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è)1器件T3 功能:在/wr=1時(shí),才將來自于ALU的待寫數(shù)據(jù)送到數(shù)據(jù)總線,否則為高阻態(tài) 輸入輸出信號(hào) 直接參考下面的邏輯框圖 邏輯框圖 功能實(shí)現(xiàn)思路: /wr=1,輸出高阻態(tài) /wr=0,輸出alu_out測試部件REG_OUT 功能:根據(jù)功能選擇信號(hào)及寄存器選擇編號(hào),輸出相應(yīng)
17、的寄存器內(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 邏輯框圖: 邏輯框圖 功能實(shí)現(xiàn)思路: 根據(jù)功能選擇信號(hào)sel確定功能 再根據(jù)reg_sel,確定輸出數(shù)據(jù) 具體見下表sel1.0reg_sel3.0reg_data15.000 xxxx由xxxx確定的寄存器的輸出010000offset0001alu_a0010alu_b0011alu_out0100reg_testa(控制信息)其它全0111110pc11
18、11ir其它全0其它無操作根據(jù)上述第4點(diǎn)的分析,用VHDL語言編程實(shí)現(xiàn)具體參考給出的VHDL參考代碼將各個(gè)部件通過BDF方法或端口映射(port map)方式連接起來,形成一個(gè)整體的實(shí)驗(yàn)CPU分配管腳,并下載到實(shí)驗(yàn)平臺(tái)上進(jìn)行測試所設(shè)計(jì)的CPU整體框圖為CPU的內(nèi)部結(jié)構(gòu)CPU的測試方法 根據(jù)所設(shè)計(jì)的指令系統(tǒng)匯編語言編寫測試用匯編代碼 寫好編譯規(guī)則后,利用DebugController進(jìn)行編譯 利用DebugController將編譯后的二進(jìn)制代碼寫到TEC-CA平臺(tái)的存儲(chǔ)器內(nèi)部 利用TEC-CA平臺(tái)左下角的復(fù)位及單脈沖進(jìn)行測試 模式控制鍵置成011 先按復(fù)位按鈕進(jìn)行服位 按單脈沖進(jìn)行逐條指令的測試 根據(jù)指令的特點(diǎn),A組指令時(shí)3拍,B組是4拍。即按3此單脈沖,完成一條A組指令,如add指令;B組類推; 每按一個(gè)節(jié)拍,調(diào)整sel和reg_sel,以確定輸出是否正確回顧馮諾依曼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)部結(jié)構(gòu)的改造 控制信號(hào)的確
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年度家庭裝修合同售后服務(wù)保障協(xié)議書范本
- 2025年度建筑模板租賃混凝土工勞務(wù)合同范本
- 2025年度建筑工程施工安全責(zé)任書(含疫情防控條款)
- 2025年度婚紗攝影服裝租賃合同范本
- 2025年度股東借款用途變更及合同修訂合同
- 2025年度建筑工程安全生產(chǎn)監(jiān)督管理合同范本
- 2025年度智能化設(shè)備租賃及維護(hù)合同范本
- 2025年度家電產(chǎn)品電商平臺(tái)合作合同
- 2025年度市政工程設(shè)備采購合同范本
- 2025年度城市地下綜合管廊工程勘察與設(shè)計(jì)合同
- 呼吸道疾病的健康宣教
- 動(dòng)物生產(chǎn)與流通環(huán)節(jié)檢疫(動(dòng)物防疫檢疫課件)
- 裝配式建筑預(yù)制構(gòu)件安裝-預(yù)制構(gòu)件的吊裝
- 2024年山東泰安市泰山財(cái)金投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 上海天文館分析
- 中醫(yī)睡眠養(yǎng)生中心方案
- 生活中的邏輯學(xué)
- 大學(xué)生返家鄉(xiāng)社會(huì)實(shí)踐報(bào)告
- 初中生物中考真題(合集)含答案
- 《醫(yī)學(xué)免疫學(xué)實(shí)驗(yàn)》課件
- C139客戶開發(fā)管理模型
評(píng)論
0/150
提交評(píng)論