資源描述:
《計(jì)算機(jī)設(shè)計(jì)與實(shí)踐——MIPS基本指令》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、MIPS基本指令和尋址方式:MIPS是典型的RISC處理器,采用32位定長指令字,操作碼字段也是固定長度,沒有專門的尋址方式字段,由指令格式確定各操作數(shù)的尋址方式。MIPS指令格式一般有三種格式:R-型指令格式I-型指令格式J-型指令格式OP:操作碼rs:第一個(gè)源操作數(shù)寄存器rt:第二個(gè)源操作數(shù)寄存器(單目原數(shù)據(jù))rd:結(jié)果寄存器shamt:移位指令的位移量func:指令的具體操作類型特點(diǎn):R-型指令是RR型指令,其操作碼OP字段是特定的“000000”,具體操作類型由func字段給定。例如:func=“100000”時(shí)
2、,表示“加法”運(yùn)算。R[rd]←R[rs]+R[rt]特點(diǎn):I-型指令是立即數(shù)型指令雙目運(yùn)算:R[rt]?R[rs](OP)SignExt(imm16)Load指令:Addr←R[rs]+SignExt(imm16)計(jì)算數(shù)據(jù)地址(立即數(shù)要進(jìn)行符號(hào)擴(kuò)展)R[rt]←M[Addr]從存儲(chǔ)器中取出數(shù)據(jù),裝入到寄存器中Store指令:Addr←R[rs]+SignExt(imm16)M[Addr]←R[rt]特點(diǎn):J-型指令主要是無條件跳轉(zhuǎn)指令,將當(dāng)前PC的高4位拼上26位立即數(shù),后補(bǔ)兩個(gè)“0”,作為跳轉(zhuǎn)目標(biāo)地址。R型指令:定點(diǎn)
3、運(yùn)算:add/addu,sub/subu,sra,mult/multu,div/divu邏輯運(yùn)算:and/or/nor,sll/srl比較分支:beq/bne/slt/sltu跳轉(zhuǎn)指令:jrI型指令:定點(diǎn)運(yùn)算:addi/addiu邏輯運(yùn)算:andi/ori比較分支:slti/sltiu數(shù)據(jù)傳送:lw/sw/lhu/sh/lbu/sb/luiJ型指令:j/jal設(shè)計(jì)模塊劃分,教學(xué)安排1、MIPS格式指令系統(tǒng)設(shè)計(jì)2、指令存儲(chǔ)器設(shè)計(jì)3、寄存器堆設(shè)計(jì)4、ALU設(shè)計(jì)——基本算術(shù)、邏輯單元的設(shè)計(jì)32位超前進(jìn)位加法器的設(shè)計(jì)32位桶式移
4、位寄存器的設(shè)計(jì)5、取指令部件的設(shè)計(jì)6、立即數(shù)處理單元設(shè)計(jì)7、單周期處理器設(shè)計(jì)——R型指令的數(shù)據(jù)通路設(shè)計(jì)I型指令的數(shù)據(jù)通路設(shè)計(jì)Load/Store指令的數(shù)據(jù)通路設(shè)計(jì)分支指令/轉(zhuǎn)移指令的數(shù)據(jù)通路設(shè)計(jì)綜合12條指令的完整數(shù)據(jù)通路設(shè)計(jì)8、ALU控制單元設(shè)計(jì)9、主控制單元的設(shè)計(jì)10、單周期處理器總體驗(yàn)證11、異常和中斷處理及其電路實(shí)現(xiàn)12、帶有異常和中斷處理功能的處理器的設(shè)計(jì)設(shè)計(jì)示例1:指令存儲(chǔ)器設(shè)計(jì)1、指令存儲(chǔ)器模塊定義:指令存儲(chǔ)器用于存放CPU運(yùn)算的程序指令和數(shù)據(jù)等,采用單端口存儲(chǔ)器設(shè)計(jì),設(shè)計(jì)最大為64個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元
5、數(shù)據(jù)寬度為32bit。下圖為指令存儲(chǔ)器的模塊框圖。圖1模塊框圖表1:存儲(chǔ)器接口信號(hào)說明表序號(hào)接口信號(hào)名稱方向(I/O)說明備注1ExtMem_CLKI存儲(chǔ)器工作時(shí)鐘,頻率為50Mhz2ExtMem_CSnI存儲(chǔ)器片選信號(hào),低有效3ExtMem_Adr[5:0]I存儲(chǔ)器地址線最大64個(gè)單元4ExtMem_WRnI存儲(chǔ)器寫信號(hào),低有效5ExtMem_RDnI存儲(chǔ)器讀信號(hào),低有效6ExtMem_Din[31:0]I存儲(chǔ)器輸入數(shù)據(jù)線7ExtMem_Dout[31:0]O存儲(chǔ)器輸出數(shù)據(jù)線8Vcc電源9Gnd地線圖2存儲(chǔ)器接口讀時(shí)序
6、框圖圖3存儲(chǔ)器接口寫時(shí)序框圖圖4存儲(chǔ)器接口讀寫時(shí)序框圖1、設(shè)計(jì)電路源代碼ModuleExtMem(inputExtMem_CLK,inputExtMem_CS,input[5:0]ExtMem_Adr,inputExtMem_WR,inputExtMem_RD,input[31:0]ExtMem_Din,output[31:0]ExtMem_Dout);reg[31:0]Memory[0:63];//---存儲(chǔ)器寫操作always@(posedgeExtMem)beginif(~ExtMem_CS&~ExtMem_WR)
7、Memory[ExtMem_Adr]<=ExtMem_Din;end//---存儲(chǔ)器讀操作方式1always@(posedgeExtMem)beginif(~ExtMem_CS&~ExtMem_RD)ExtMem_Dout<=Memory[ExtMem_Adr];end//---存儲(chǔ)器讀操作方式2always@(*)beginif(~ExtMem_CS&~ExtMem_RD)ExtMem_Dout<=Memory[ExtMem_Adr];endendmodule問題討論://------方式1與方式2的區(qū)別?//----
8、--altera公司的FPGA芯片,使用其內(nèi)部存儲(chǔ)器IP必須采用方式1設(shè)計(jì)//------xilinx公司的FPGA芯片,使用其內(nèi)部存儲(chǔ)器IP可以采用方式1或方式2設(shè)計(jì)1、指令存儲(chǔ)器初始化值設(shè)計(jì)在仿真環(huán)境下,在設(shè)計(jì)電路中添加如下初始化存儲(chǔ)器值電路:initialbegin#0Memory[6'h0]<=32'h10;