杭州电子科技大学计算机学院
实验报告
实验项目:
课程名称:计算机组成原理与系统结构课程设计
姓名: 学号: 同组姓名: 学号: 实验位置(机号):
实验日期: 指导教师:
一、实验目的 (1)学习多功能ALU的工作原理,掌握运算器的设计方法。 (2)掌握运用Verilog HDL进行数据流描述与建模的技巧和方法,掌握运算器的设计方法。 二、实验仪器 实验 ISE工具软件 内容三、步骤、方法 (算(1)启动Xilinx ISE软件,选择File->New Project,输入工程名shiyan2,默认选择后,点法、击Next按钮,确认工程信息后点击Finish按钮,创建一个完整的工程。 程(2)在工程管理区的任意位置右击,选择New Source命令。弹出New Source Wizard对序、话框,选择Verilog Module,并输入Verilog文件名shiyan3,点击Next按钮进入下一步,点步骤击Finish完成创建。 和方(3)编辑程序源代码,然后编译,综合;选择Synthesize--XST项中的Check Syntax右击法) 选择Run命令,并查看RTL视图;如果编译出错,则需要修改程序代码,直至正确。 (4)在工程管理区将View类型设置成Simulation,在任意位置右击,选择New Source命令,选择Verilog Test Fixture选项,输入实验名shiyan3_test。点击Next,点击Finish,完成。编写激励代码,观察仿真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。 (5)由于实验三并未链接实验板,所以后面的链接实验板的步骤此处没有。 一,操作过程 实验过程和描述: module shiyan3(ALU_OP,AB_SW,OF,ZF,F); reg [31:0]A,B; input [2:0]ALU_OP; input [2:0]AB_SW; wire OF; reg ZF; reg [31:0]F; output OF; output ZF; output F; reg C32; always@(*) begin case(AB_SW) 操作过程及结果
3'b000: begin A=32'h0000_0000; B=32'h0000_0000; end 3'b001: begin A=32'h0000_0003; B=32'h0000_0607; end 3'b010: begin A=32'h8000_0000; B=32'h8000_0000; end 3'b011: begin A=32'h7FFF_FFFF; B=32'h7FFF_FFFF; end 3'b100: begin A=32'hFFFF_FFFF; B=32'hFFFF_FFFF; end 3'b101: begin A=32'h8000_0000; B=32'hFFFF_FFFF; end 3'b110: begin A=32'hFFFF_FFFF; B=32'h8000_0000; end 3'b111: begin A=32'h1234_5678; B=32'h3333_2222; end default: begin A=32'h9ABC_DEF0; B=32'h1111_2222; end endcase end always@(*) begin case(ALU_OP) 3'b000: F<=A&B; 3'b001: F<=A|B; 3'b010: F<=A^B; 3'b011: F<=A~^B; 3'b100: {C32,F}<=A+B; 3'b101: {C32,F}<=A-B; 3'b110: begin if(A
wire ZF; wire [31:0] F; // Instantiate the Unit Under Test (UUT) shiyan3 uut ( .ALU_OP(ALU_OP), .AB_SW(AB_SW), .OF(OF), .ZF(ZF), .F(F) ); initial begin // Initialize Inputs ALU_OP = 0; AB_SW = 0; // Wait 100 ns for global reset to finish #100; // Add stimulus here #100; ALU_OP = 001; AB_SW = 001; #100; ALU_OP = 010; AB_SW = 010; #100; ALU_OP = 011; AB_SW = 011; #100; ALU_OP = 100; AB_SW = 100; #100; ALU_OP = 101; AB_SW = 101; #100; ALU_OP = 110; AB_SW = 110; #100; ALU_OP = 111; AB_SW = 111; end
endmodule RTL图 二、结果
思考题: (2)经过分析,该ALU不能实现MIPS核心指令集的所有指令。它还需要:带进位的加法运算、带进位的减法运算、位清除指令、负数比较、位测试指令、比较指令、相等测试指令等。 (3)通过本实验,无法得出:slt操作中的“A
实验步骤写的时候,最好自己按照所做步骤写,二人不要一模一样。 成绩: 指导教师签名: 指导教师评议