admin 管理员组

文章数量: 1086019


2024年1月24日发(作者:web of science数据库)

计算机组成与系统结构

指令译码器试验报告

姓 名:

试验时间:2012年5月

一、实验名称:指令译码器的设计

二、实验原理:一台计算机能执行的机器指令的集合称为该机器的指令集或指令系统,它是构成程序的基本元素,也是硬件设计的依据,它衡量极其硬件的功能,反映硬件对软件支持的程度。而指令译码器所起到的作用就是根据用户所选择的指令代码来执行相关操作,将二进制代码转换为机器所能识别的机器码,设计时设置了一个6位二进制代码的指令输入端,输出端有各种控制信号,寄存器写信号,跳转信号,存储器写信号等等。

三、试验目的:使用指令译码器,使得我们使用简单的二进制代码,经过指令译码器转换为机器代码,从而很容易的使计算机执行相关操作,是cpu不可或缺的部件。

四、 Verilog源代码:

module

zlymq(op,func,RegWr,Branch,Jump,ExtOp,AluSrc,ALUctr,MemWr,MemtoReg,RegDst);

input [5:0] op,func;

output RegWr,Branch,Jump,ExtOp,AluSrc,MemWr,MemtoReg,RegDst;

output [2:0] ALUctr;

reg RegWr,Branch,Jump,ExtOp,AluSrc,MemWr,MemtoReg,RegDst;

reg [2:0] ALUctr;

always @(op)

case (op)

6'b000000:

begin

{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr}=7'b0010010;

case (func)

6'b100000:ALUctr=3'b001;

6'b100010:ALUctr=3'b101;

6'b100011:ALUctr=3'b100;

6'b101010:ALUctr=3'b111;

6'b101011:ALUctr=3'b110;

endcase

end

6'b001101:

begin

{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr,ExtOp}=8'b00010100;

ALUctr=3'b010;

end

6'b001001:

begin

{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr,ExtOp}=8'b00010101;

ALUctr=3'b000;

end

6'b100011:

begin

{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr,ExtOp}=8'b00011101;

ALUctr=3'b000;

end

6'b101011:

begin

{Branch,Jump,AluSrc,RegWr,MemWr,ExtOp}=6'b001011;

ALUctr=3'b000;

end

6'b000100:

begin

{Branch,Jump,AluSrc,RegWr,MemWr}=5'b10000;

ALUctr=3'b100;

end

6'b000010:{Branch,Jump,RegWr,MemWr}=4'b0100;

endcase

Endmodule

五、试验心得:本次实验通过对指令译码器的编程,使我更加深刻的了解了计算机内部执行一个操作的顺序,首先,取指令部件取到用户所输入的指令代码,然后转交给指令译码器转换成为机器能够识别的机器码,再转交给指令执行部件去执行,指令译码器将复杂的机器码简化成为了简单的二进制代码,从而大大增加了cpu的可行性。


本文标签: 指令 译码器 执行 代码 机器