版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)組成實(shí)驗報告計算機(jī)66熊鵬飛2160500151Word資料實(shí)驗十 基于MIPS指令集的CPU設(shè)計、實(shí)驗?zāi)康?. 綜合運(yùn)用Verilog進(jìn)行復(fù)雜系統(tǒng)設(shè)計。2. 深刻理解計算機(jī)系統(tǒng)硬件原理。二、實(shí)驗內(nèi)容1. 設(shè)計一個基于 MIPS指令集的CPU。2. CPU需要包含寄存器組、RAM模塊、ALU模塊、指令譯碼模塊。3. 該CPU能運(yùn)行基本的匯編指令。4. 實(shí)現(xiàn)cache,流水線或其他現(xiàn)代 CPU的高級功能(加分項)三、實(shí)驗要求1. 分析各模塊的的程序結(jié)構(gòu),畫出其流程圖。單周期CPU指的是一條指令的執(zhí)行在一個時鐘周期內(nèi)完成,然后開始下一條指令的執(zhí)行,即一條指令用一個時鐘周期完成。電平從低到高變
2、化的瞬間稱為時鐘上升沿,兩個相鄰時鐘上升沿之間的時間間隔稱為一個時鐘周期。CPU在處理指令時,一般需要經(jīng)過以下幾個步驟:(1) 取指令(IF):根據(jù)程序計數(shù)器 PC中的指令地址,從存儲器中取出一條指令,同時,PC根據(jù)指令字長度自動遞增產(chǎn)生下一條指令所需要的指令地址,但遇到“地址轉(zhuǎn)移”指令時,則 控制器把“轉(zhuǎn)移地址”送入PC,當(dāng)然得到的“地址”需要做些變換才送入 PC。(2) 指令譯碼(ID):對取指令操作中得到的指令進(jìn)行分析并譯碼,確定這條指令需要完成的 操作,從而產(chǎn)生相應(yīng)的操作控制信號,用于驅(qū)動執(zhí)行狀態(tài)中的各種操作。(3) 指令執(zhí)行(EXE)根據(jù)指令譯碼得到的操作控制信號,具體地執(zhí)行指令動作
3、,然后轉(zhuǎn)移到 結(jié)果寫回狀態(tài)。 存儲器訪問(MEM):所有需要訪問存儲器的操作都將在這個步驟中執(zhí)行,該步驟給出存 儲器的數(shù)據(jù)地址,把數(shù)據(jù)寫入到存儲器中數(shù)據(jù)地址所指定的存儲單元或者從存儲器中得到數(shù) 據(jù)地址單元中的數(shù)據(jù)。,(5)結(jié)果寫回(WB):指令執(zhí)行的結(jié)果或者訪問存儲器中得到的數(shù)據(jù)寫回相應(yīng)的目的寄存器中。J單周期CPU,是在一個時鐘周期內(nèi)完成這五個階段的處理。2.畫出模塊的電路圖。PCDaito MkmRWExtSel iwraCLKResetExtSvl3.ALUextendRWlAddrIIDstOutI 口 MainIns. MEMi9fO芳 0060:&宵云ControlUnitRead
4、 ReglRedd Reg?分析電路的仿真波形,標(biāo)出關(guān)鍵的數(shù)值。ALUU-D msR艇。OatalWirrlfl RogRegister FileRpa-rl Dfite?zeroresultRWDAlMr mta meiiDtUOutI vta In4.記錄設(shè)計和調(diào)試過程。1. wire和reg是什么意思?在verilog里面,變量有wire和reg兩種類型,wire類型意為線,它不可儲存中間結(jié)果,通過輸入得出輸出,類似純函數(shù),只要輸入變化,輸出立即變化,如果沒有輸入,自然就沒有輸出。reg類型意為寄存器,它可以賦初值, 可以儲存中間結(jié)果,只有當(dāng)滿足某種條件時 (比如時鐘上升沿),它才會變化
5、,其他時間 會一直保持最后一次變化的值。2. 指令怎么來? 一一 在IM組件和RW組件分別開兩個寄存器數(shù)組,用來模擬指令內(nèi)存和數(shù)據(jù)內(nèi)存,通過文件讀取,從test.txt(test文件夾中)讀指令到IM的指令內(nèi)存(從0開始),IM組件通過輸入的IAddr(數(shù)組地址下標(biāo)),得到相應(yīng)的指令。3.指令怎么變化?在PC端,有兩個外部輸入:CLK和Reset。其中PC內(nèi)部有指令寄存器,每次 CLK上升沿觸發(fā)后,會改成新的指令,同時,當(dāng)Reset=1時,指令寄存器也會置0。4.模塊和模塊間怎么連接?此時,需要一個頂層模塊,相當(dāng)于main函數(shù),它會input PCWre,/ PC是否更改,如果為0,PC不更改
6、input 31:0 newAddress,/新指令根據(jù)數(shù)據(jù)通路圖,將一些下層模塊的輸出,連接到另一些下層模塊的輸入中。5. 寫好的cpu怎么運(yùn)行?一一需要在頂層模塊再添加一個測試文件,測試文件提供 外部輸入(CLK和Reset),然后模塊就會自動運(yùn)行得到相應(yīng)的仿真結(jié)果。四、實(shí)驗代碼及結(jié)果1. PC : CLK上升沿觸發(fā),更改指令地址timescale 1ns / 1 ps/ Company: / Engineer: /PC / Project Name: / Target Devices: / Create Date:23:43:40 05/02/2017 / Design Name: /
7、Module Name:Tool versions: / Description: / Dependencies: / Revision: / Revision 0.01 - File Created/ Additional Comments:/module PC(/時鐘input CLK,input Reset,/重置信號/當(dāng)前指令output reg 31:0 currentAddressinitial begincurrentAddress = 0; / 非阻塞賦值endalways(posedge CLK or posedge Reset)beginif (Reset = 1) cur
8、rentAddress = 0;/ 如果重置,賦值為 0elsebeginif (PCWre) currentAddress = newAddress;else currentAddress = currentAddress;endendendmodule輸入CLK, Reset, PCWre, newAddress輸岀解釋curre ntAddress由于指令地址存儲在寄存器里,一開始需要賦 currentAddress為0。Reset是重置信號,當(dāng)為1 時,指令寄存器地址重置。PCWre的作用為保留現(xiàn)場,如果 PCWre為0,指令地址不變。2. I nstructio nM emory:儲
9、存指令,分割指令timescale 1ns / 1 ps/ Company: / Engineer: / Create Date:00:10:27 05/03/2017 / Design Name: / Module Name:IM / Project Name: / Target Devices: /Tool versions: / Description: / Dependencies: / Revision: / Revision 0.01 - File Created/ Additional Comments:/module InstructionMemory(input InsMem
10、RW,/讀寫控制信號,1為寫,0位讀input 31:0 IAddr,/指令地址輸入入口/沒用到/input IDataln,output 5:0 op,output 4:0 rs,output 4:0 rt,output 4:0 rd,output 15:0 immediate /指令代碼分時段輸出);reg7:0 mem0:63; /新建一個32位的數(shù)組用于儲存指令initialbegin$readmemb( test/test.txt, mem); / 讀取測試文檔中的指令end/從地址取值,然后輸出assign op = memIAddr 7:2;assign rs4:3 = memI
11、Addr 1:0;assign rs2:0 = memIAddr + 1 7:5;assign rt = memIAddr +14:0;assign rd = memIAddr + 27:3;assign immediate 15:8 = memIAddr + 2;assign immediate 7:0 = memIAddr + 3;endmodule輸入:InsMenRW, lAddr輸岀:op , rs, rt, rd, immediate解釋:該部分為指令寄存器,通過一個64大小的8位寄存器數(shù)組來保存從文件輸入的全部指令。然后通過輸入的地址,找到相應(yīng)的指令,并分割成op,rs,rt,r
12、d,immediate輸岀。(由于寄存器地址+4,所以不用右移變換成真正的地址)3.RegisterFile :儲存寄存器組,并根據(jù)地址對寄存器組進(jìn)行讀寫timescale 1ns / 1 ps/ Company: / Engineer: / Create Date:01:07:13 05/03/2017 / Design Name: / Module Name:RF / Project Name: / Target Devices: /Tool versions: / Description: / Dependencies: / Revision: / Revision 0.01 - Fil
13、e Created/ Additional Comments:/ module RegisterFile(/時鐘input RegWre,/寫使能信號,為1時,在時鐘上升沿寫入input 4:0 rs,/ rs寄存器地址輸入端口input 4:0 rt,/ rt寄存器地址輸入端口input 4:0 WriteReg,/將數(shù)據(jù)寫入的寄存器端口,其地址來源rt或rd字段input 31:0 WriteData,/寫入寄存器的數(shù)據(jù)輸入端口output 31:0 ReadData1,/ rs寄存器數(shù)據(jù)輸出端口output 31:0 ReadData2/ rt寄存器數(shù)據(jù)輸出端口input CLK,);r
14、eg 31:0 register 0:15; /新建16個寄存器,用于操作/初始時,將32個寄存器全部賦值為0integer i;initialbeginfor(i = 0; i 16; i = i + 1) registeri = 0;end/讀寄存器assign ReadDatal = registerrs;assign ReadData2 = registerrt;/寫寄存器always(negedge CLK)begin/如果寄存器不為0,并且RegWre為真,寫入數(shù)據(jù)if (RegWre & WriteReg != 0) registerWriteReg = WriteData;en
15、dendmodule輸入:CLK, RegWre, rs, rt, WriteReg , WriteData輸岀:ReadData1 , ReadData2解釋:該部分為寄存器讀寫單元,RegWre的作用是控制寄存器是否寫入。同上,通過一個16大小的32位寄存器數(shù)組來模擬寄存器,開始時全部置0。通過訪問寄存器的地址,來獲取寄存器里面的值,并進(jìn)行操作。(PS:由于$0恒為0,所以寫入寄存器的地址不能為0)4.ALU (算術(shù)邏輯單元):用于邏輯指令計算和跳轉(zhuǎn)指令比較timescale 1ns / 1 ps/ Company: / Engineer: / Create Date:01:54:18 0
16、5/03/2017 / Design Name: / Module Name:ALU / Project Name: / Target Devices: /Tool versions: / Description: / Dependencies: / Revision: / Revision 0.01 - File Created/ Additional Comments:/module ALU(input 2:0 ALUOp,input 31:0 A,input 31:0 B,/ ALU操作控制/輸入1/輸入2output reg zero,/運(yùn)算結(jié)果result的標(biāo)志,result為0輸出
17、1,否則輸出0/ ALU運(yùn)算結(jié)果output reg 31:0 result);/進(jìn)行ALU計算always(*)begin/進(jìn)行運(yùn)算case (ALUOp)3b000 : result = A + B; / 加法3b001 : result = A - B; / 減法3b010 : result = B - A; / 減法3b011 : result = A | B; / 或3b100 : result = A & B; / 與3b101 : result = A & B; / A 非與 B3b110 : result = A A B; / 異或3b111 : result = A A B;
18、 / 同或 default : result = 0;endcase/設(shè)置zero if (result) zero = 0;else zero = 1;end endmodule輸入:ALUOp, A, B輸岀:zero, result解釋:ALUOp用于控制算數(shù)的類型,AB為輸入數(shù),result為運(yùn)算結(jié)果,zero主要用于beq和bne指 令的判斷。5.SignZeroExtend :用于 immediate 的擴(kuò)展timescale 1ns / 1 ps/ Company: / Engineer: / Create Date:00:58:20 05/03/2017 / Design Na
19、me: / Module Name:EX / Project Name: / Target Devices: /Tool versions: / Description: / Dependencies: / Revision: / Revision 0.01 - File Created/ Additional Comments:/module SignZeroExtend(input ExtSel,/控制補(bǔ)位,如果為1,進(jìn)行符號擴(kuò)展,如果為0,全補(bǔ)0input 15:0 immediate,/ 16 位立即數(shù)output 31:0 extendlmmediate / 輸出的 32 位立即數(shù))
20、;/進(jìn)行擴(kuò)展assign extendImmediate 15:0 = immediate;assign extendImmediate 31:16 = ExtSel ? (immediate 15 ? 16hffff : 16 h0000) : 16h0000;endmodule輸入:ExtSel, immediate輸岀:extendlmmediate解釋:比較簡單的一個模塊?;?即可。ExtSel為控制補(bǔ)位信號。判斷后,將 extendlmmediate的前16位全補(bǔ)16. DataMemory :用于內(nèi)存存儲,內(nèi)存讀寫timescale 1ns / 1 ps/ Company: / E
21、ngineer: / Create Date:01:37:40 05/03/2017 / Design Name: / Module Name:DM / Project Name: / Target Devices: /Tool versions: / Description: / Dependencies: / Revision: / Revision 0.01 - File Created/ Additional Comments:/module DataMemory(input DataMemRW,/數(shù)據(jù)存儲器讀寫控制信號,為1寫,為0讀input 31:0 DAddr,/數(shù)據(jù)存儲器地址
22、輸入端口input 31:0 DataIn,/數(shù)據(jù)存儲器數(shù)據(jù)輸入端口output reg 31:0 DataOut/數(shù)據(jù)存儲器數(shù)據(jù)輸出端口/模擬內(nèi)存,以8位為一字節(jié)存儲,共64字節(jié)reg 7:0 memory 0:63;/初始賦值integer i;initialbeginfor (i = 0; i 64; i = i +1) memoryi = 0;end/讀寫內(nèi)存always(DAddr)beginendalways(DAddr or Dataln)begin/寫內(nèi)存if (DataMemRW)beginmemoryDAddr = DataIn 31:24; memoryDAddr + 1
23、 = DataIn 23:16; memoryDAddr + 2 = DataIn 15:8; memoryDAddr + 3 = DataIn 7:0;end/讀內(nèi)存elsebeginDataOut 31:24 = memoryDAddr;DataOut 23:16 = memoryDAddr +1;DataOut 15:8 = memoryDAddr +2;DataOut 7:0 = memoryDAddr +3;endendendmodule輸入:DataMenRW, DAddr, Dataln輸岀:DataOut解釋:該部分控制內(nèi)存存儲。同上,用64大小的8位寄存器數(shù)組模擬內(nèi)存(內(nèi)存小
24、主要是因為編譯快),內(nèi)存部分采用小端模式。DataMenRW控制內(nèi)存讀寫。由于指令為真實(shí)地址,所以不需要*47.Multiplexer : 5線和32線二路選擇器module Multiplexer5(input control,input 4:0 in1,input 4:0 in0,output 4:0 out);/ 5線多路選擇器assign out = control ? ini : in0;Endmodule module Multiplexer32(input control,input 31:0 ini,input 31:0 in0,output 31:0 out);/ 32線多路
25、選擇器assign out = control ? ini : inO;endmodule輸入:control , in1, in0輸岀:out解釋:多路選擇器,不用過多解釋。8最重要的ControlUnit :控制信號模塊,通過解析op得到該指令的各種控制信號首先,需要得到控制信號表:控制信號指令z皿7AL 口電辰理lEf-VECPfZ 1 wr靭躺add蓋1001X0001000addiXI101X000COO1 subX.10010001001ori1101X0000OilandX1001X0001100or工1001X0001OilmoveA1001:;0001000swX1100X1
26、1000001丄理X111 J.1I0100000beo0100X.010X00111門0X111X0011 halt000s0J00XXMi久通過信號控制表,可以很輕松的寫控制模塊。timescale 1ns / 1 ps/ Company: / Engineer: / Create Date:02:11:08 05/03/2017 / Design Name: / Module Name:CU / Project Name: / Target Devices: /Tool versions: / Description: / Dependencies: / Revision: / Revi
27、sion 0.01 - File Created/ Additional Comments:/module ControlUnit(input 5:0 op,/ op 操作符input zero,/ ALU 的 zero 輸出/ 一堆控制信號output reg PCSrc,output reg PCWre,output reg ALUSrcB,/多路選擇器/ (PC)PC是否更改,如果為0, PC不更改/多路選擇器output reg ALUM2Reg,/多路選擇器ALUOp = 000;Word資料output reg RegWre,/ (RF)寫使能信號,為1時,在時鐘上升沿寫入outp
28、ut reg InsMemRW,/ (IM)讀寫控制信號,1為寫,0位讀output reg DataMemRW,/ (DM)數(shù)據(jù)存儲器讀寫控制信號,為1寫,為0讀output reg ExtSel,/ (EXT)控制補(bǔ)位,如果為1,進(jìn)行符號擴(kuò)展,如果為0,全補(bǔ)0output reg RegOut,/多路選擇器output reg 2:0 ALUOp/ (ALU)ALU操作控制);/進(jìn)行各種賦值initialbeginExtSel = 0;PCWre = 1;InsMemRW = 1;RegOut = 1;RegWre = 0;PCSrc = 0;ALUSrcB = 0;DataMemRW =
29、 0;ALUM2Reg = 0;endalways(op or zero)begincase(op)/ add6b000000:begin /以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 0;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;DataMemRW = 0;ExtSel = 0;PCSrc = 0;RegOut = 1;end/ addi6b000001:begin/以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 1;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;DataMemRW =
30、 0;ExtSel = 1;PCSrc = 0;RegOut = 0;ALUOp = 000;end/ sub6b000010:begin/以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 0;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;ExtSel = 0;PCSrc = 0;RegOut = 1;ALUOp = 001;end/ ori6b010000:begin/以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 1;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;DataMemRW = 0;E
31、xtSel = 0;PCSrc = 0;RegOut = 0;ALUOp = 011;end/ and6b010001:begin以下都是控制單元產(chǎn)生的控制信號PCWre = 1;Word資料ALUSrcB = 0;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;DataMemRW = 0;ExtSel = 0;PCSrc = 0;RegOut = 1;ALUOp = 100;end/ or6b010010:begin /以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 0;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;
32、DataMemRW = 0;ExtSel = 0;PCSrc = 0;RegOut = 1;ALUOp = 011;Word資料end/ move6b100000:begin/以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 0;ALUM2Reg = 0;RegWre = 1;InsMemRW = 1;DataMemRW = 0;ExtSel = 0;PCSrc = 0;RegOut = 1;ALUOp = 000;end/ sw6b100110:begin/以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 1;ALUM2Reg = 0;RegWre =
33、 0;InsMemRW = 1;Word資料DataMemRW = 1;ExtSel = 1;PCSrc = 0;RegOut = 0;ALUOp = 000;end/ lw6b100111:begin /以下都是控制單元產(chǎn)生的控制信號PCWre = 1;ALUSrcB = 1;ALUM2Reg = 1;RegWre = 1;InsMemRW = 1;DataMemRW = 0;ExtSel = 1;PCSrc = 0;RegOut = 0;ALUOp = 000;end/ beq6b110000:begin /以下都是控制單元產(chǎn)生的控制信號Word資料if (zero) beginPCSrc
34、 = 1;end else beginPCSrc = 0;endALUM2Reg = 0;PCWre = 1;ALUSrcB = 0;RegWre = 0;InsMemRW = 1;DataMemRW = 0;ExtSel = 1;RegOut = 0;ALUOp = 001;end/ halt6b111111:begin /以下都是控制單元產(chǎn)生的控制信號PCWre = 0;ALUSrcB = 0;ALUM2Reg = 0;RegWre = 0;DataMemRW = 0;ExtSel = 0;PCSrc = 0;RegOut = 0;ALUOp = 000;endendcaseendendm
35、odule輸入:op , zero輸出:各類控制信號解釋:通過上表,可以將每個指令case到相應(yīng)的控制信號上。然后,通過頂層模塊,調(diào)用下層模塊并將它們輸入輸出連在一起:SingleCPU :頂層連接模塊timescale 1ns / 1 ps/ Company: / Engineer: / Create Date:23:43:17 05/02/2017 / Design Name: / Module Name:SingleCPU / Project Name: / TargetDevices: / Tool versions: / Description: / Dependencies: /
36、Revision: / Revision 0.01 - File Created/ AdditionalComments: /module SingleCPU(input CLK,input Reset,output 5:0 op,output 4:0 rs,output 4:0 rt,output 4:0 rd,output 15:0 immediate,output 31:0 ReadDatal,output 31:0 ReadData2,output 31:0 WriteData,output 31:0 DataOut,output 31:0 currentAddress,output
37、31:0 result);/各種臨時變量wire 2:0 ALUOp;wire 31:0 B, newAddress;wire 31:0 currentAddress_4, extendImmediate, currentAddress_immediate;wire 4:0 WriteReg;wire zero, PCSrc, PCWre, ALUSrcB, ALUM2Reg, RegWre, InsMemRW, DataMemRW, ExtSel, RegOut;/*module ControlUnit(input 5:0 op,/ op 操作符input zero,/ ALU 的 zero
38、 輸出/ 一堆控制信號output PCSrc,/多路選擇器output PCWre,/ (PC)PC是否更改,如果為0, PC不更改output ALUSrcB,/多路選擇器output ALUM2Reg,/多路選擇器output RegWre,/ (RF)寫使能信號,為1時,在時鐘上升沿寫入output InsMemRW,/ (IM)讀寫控制信號,1為寫,0位讀output DataMemRW,/ (DM)數(shù)據(jù)存儲器讀寫控制信號,為1寫,為0讀output ExtSel,/ (EXT)控制補(bǔ)位,如果為1,進(jìn)行符號擴(kuò)展,如果為0,全補(bǔ)0output RegOut,/多路選擇器output 2
39、:0 ALUOp/ (ALU)ALU操作控制);*/ControlUnit cu(op, zero, PCSrc, PCWre, ALUSrcB, ALUM2Reg, RegWre, InsMemRW, DataMemRW, ExtSel, RegOut,ALUOp);/*module PC(input CLK,/時鐘input Reset,/重置信號input PCWre,/ PC是否更改,如果為0,PC不更改input 31:0 newAddress,/新指令output reg31:0 currentAddress / 當(dāng)前指令);*/PC pc(CLK, Reset, PCWre, n
40、ewAddress, currentAddress);/*module InstructionMemory(input InsMemRW,/讀寫控制信號,1為寫,0位讀input 31:0 IAddr,/指令地址輸入入口/沒用到/input IDataln,output 5:0 op,output 4:0 rs,output 4:0 rt,output 4:0 rd,output 15:0 immediate/指令代碼分時段輸出);*/InstructionMemory im(InsMemRW, currentAddress, op, rs, rt, rd, immediate);/*modu
41、le RegisterFile(input CLK,/時鐘input RegWre,/寫使能信號,為1時,在時鐘上升沿寫入input 4:0 rs,/ rs寄存器地址輸入端口input 4:0 rt,/ rt寄存器地址輸入端口input 4:0 WriteReg,/將數(shù)據(jù)寫入的寄存器端口,其地址來源rt或rd字段input 31:0 WriteData,/寫入寄存器的數(shù)據(jù)輸入端口output 31:0 ReadData1,/ rs寄存器數(shù)據(jù)輸出端口output 31:0 ReadData2/ rt寄存器數(shù)據(jù)輸出端口);*/RegisterFile rf(CLK, RegWre, rs, rt,
42、 WriteReg, WriteData, ReadData1, ReadData2);/*module ALU(/ ALU操作控制input 2:0 ALUOp,Word資料input 31:0 A,/輸入1input 31:0 B,/輸入2output reg zero,/運(yùn)算結(jié)果result的標(biāo)志,result為0輸出1,否則輸出0output reg 31:0 result/ ALU運(yùn)算結(jié)果);*/ALU alu(ALUOp, ReadData1, B, zero, result);/*module SignZeroExtend(input ExtSel,/控制補(bǔ)位,如果為1,進(jìn)行符號
43、擴(kuò)展,如果為0,全補(bǔ)0input 15:0 immediate,/ 16位立即數(shù)/輸出的32位立即數(shù)input 31:0 extendImmediate);*/SignZeroExtend sze(ExtSel, immediate, extendImmediate);/*module DataMemory(input DataMemRW,/數(shù)據(jù)存儲器讀寫控制信號,為1寫,為0讀input 31:0 DAddr,/數(shù)據(jù)存儲器地址輸入端口input 31:0 DataIn,/數(shù)據(jù)存儲器數(shù)據(jù)輸入端口output reg 31:0 DataOut/數(shù)據(jù)存儲器數(shù)據(jù)輸出端口);*/DataMemory
44、dm(DataMemRW, result, ReadData2, DataOut);assign currentAddress_4 = currentAddress + 4;2);assign currentAddress_immediate = currentAddress_4 + (extendlmmediate /ADD add1(currentAddress, 32h00000004, currentAddress_4);/ADD add1(currentAddress_4, extendImmediate 2, currentAddress_immediate);Multiplexed m5(RegOut, rd, rt, WriteReg);Multiplexer32 m321(ALUSrcB, extendImmediate,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年掌控中考復(fù)習(xí)配套課件:第九單元溶液
- 《老人與?!氛n件
- 2024年阿壩職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 單位管理制度集合大全【人力資源管理篇】
- 單位管理制度分享合集【人員管理】十篇
- 單位管理制度范文大合集【員工管理】十篇
- 單位管理制度呈現(xiàn)大全【人事管理篇】十篇
- 《詩五首》教案設(shè)計
- 第7單元 工業(yè)革命和國際共產(chǎn)主義運(yùn)動的興起(高頻選擇題50題)(解析版)
- UFIDAU培訓(xùn)課程委托代銷
- TSG 51-2023 起重機(jī)械安全技術(shù)規(guī)程 含2024年第1號修改單
- 《正態(tài)分布理論及其應(yīng)用研究》4200字(論文)
- GB/T 45086.1-2024車載定位系統(tǒng)技術(shù)要求及試驗方法第1部分:衛(wèi)星定位
- 浙江省杭州市錢塘區(qū)2023-2024學(xué)年四年級上學(xué)期英語期末試卷
- 1古詩文理解性默寫(教師卷)
- 廣東省廣州市越秀區(qū)2021-2022學(xué)年九年級上學(xué)期期末道德與法治試題(含答案)
- 2024-2025學(xué)年六上科學(xué)期末綜合檢測卷(含答案)
- 在線教育平臺合作合同助力教育公平
- 工地鋼板短期出租合同模板
- 女排精神課件教學(xué)課件
- 2024年湖南省公務(wù)員考試《行測》真題及答案解析
評論
0/150
提交評論