(完整word版)杭电计组实验3-多功能ALU设计实验_第1页
(完整word版)杭电计组实验3-多功能ALU设计实验_第2页
(完整word版)杭电计组实验3-多功能ALU设计实验_第3页
(完整word版)杭电计组实验3-多功能ALU设计实验_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、杭州电子科技大学计算机学院实验报告实验项目:课程名称:计算机组成原理与系统结构课程设计姓名:学号:同组姓名:学号:实验位置(机号) :实验日期:指导教师:一、实验目的( 1)学习多功能 ALU 的工作原理,掌握运算器的设计方法。( 2)掌握运用 Verilog HDL 进行数据流描述与建模的技巧和方法,掌握运算器的设计方法。二、实验仪器实验ISE 工具软件内容三、步骤、方法(算( 1)启动 Xilinx ISE 软件,选择 File->NewProject,输入工程名 shiyan2,默认选择后,点法、击 Next 按钮,确认工程信息后点击Finish 按钮,创建一个完整的工程。程( 2

2、)在工程管理区的任意位置右击,选择New Source 命令。弹出 NewSource Wizard 对序、话框,选择 Verilog Module, 并输入 Verilog 文件名 shiyan3,点击 Next 按钮进入下一步,点步骤击 Finish 完成创建。和方( 3)编辑程序源代码,然后编译,综合;选择Synthesize-XST 项中的 Check Syntax 右击法)选择 Run 命令,并查看RTL 视图;如果编译出错,则需要修改程序代码,直至正确。( 4)在工程管理区将View 类型设置成 Simulation ,在任意位置右击,选择New Source 命令,选择 Veri

3、log Test Fixture 选项 ,输入实验名 shiyan3_test。点击 Next ,点击 Finish ,完成。编写激励代码,观察仿真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。( 5)由于实验三并未链接实验板,所以后面的链接实验板的步骤此处没有。一,操作过程实验过程和描述:module shiyan3(ALU_OP,AB_SW,OF,ZF,F);reg 31:0A,B;input 2:0ALU_OP;input 2:0AB_SW;操作wire OF;过程reg ZF;及结reg 31:0F;果output OF; output ZF; output F; re

4、g C32; always(*) begincase(AB_SW)3'b000: begin A=32'h0000_0000; B=32'h0000_0000; end3'b001: begin A=32'h0000_0003; B=32'h0000_0607; end3'b010: begin A=32'h8000_0000; B=32'h8000_0000; end3'b011: begin A=32'h7FFF_FFFF; B=32'h7FFF_FFFF; end3'b100: beg

5、in A=32'hFFFF_FFFF; B=32'hFFFF_FFFF; end3'b101: begin A=32'h8000_0000; B=32'hFFFF_FFFF; end3'b110: begin A=32'hFFFF_FFFF; B=32'h8000_0000; end3'b111: begin A=32'h1234_5678; B=32'h3333_2222; enddefault: begin A=32'h9ABC_DEF0; B=32'h1111_2222; endend

6、caseendalways(*)begincase(ALU_OP)3'b000:F<=A&B;3'b001:F<=A|B;3'b010:F<=AB;3'b011:F<=AB;3'b100:C32,F<=A+B;3'b101:C32,F<=A-B;3'b110: begin if(A<B) F<=32'h0000_0001; else F<=32'h0000_0000; end3'b111:beginF<=B<<A; enddefault

7、: F<=32'h0000_0000;endcaseendalways(*)beginif(F=32'h0000_0000)ZF<=1;elseZF<=0;endassign OF=C32F31A31B31;endmodule仿真代码module shiyan3_test;/ Inputsreg 2:0 ALU_OP;reg 2:0 AB_SW;/ Outputs wire OF;wire ZF;wire 31:0 F;/ Instantiate the Unit Under Test (UUT) shiyan3 uut (.ALU_OP(ALU_OP),.A

8、B_SW(AB_SW),.OF(OF),.ZF(ZF),.F(F);initial begin/ Initialize InputsALU_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 = 10

9、1;#100;ALU_OP = 110;AB_SW = 110;#100;ALU_OP = 111;AB_SW = 111;endendmoduleRTL 图二、结果思考题:(2) 经过分析,该 ALU 不能实现 MIPS 核心指令集的所有指令。它还需要:带进位的加法运算、带进位的减法运算、位清除指令、负数比较、位测试指令、比较指令、相等测试指令等。(3) 通过本实验,无法得出: slt 操作中的“ A<B ”是对有符号数的比较还是无符号数的比较,这个结论。若A=32 b0,B=32 bFFFF_FFFF,则所得到的答案是F=0000_0001.这个问题应该再设置一个变量SIGctr 信

10、号,控制ALU 是执行“带符号整数比较小于置于 1”还是“无符号数比较小于置1”功能,当SIGctr=0 ,则执行“无符号数比较小于置 1”,当 SIGctr=1 ,则执行“带符号整数比较小于置1”。(6) 在做这个实验的时候,我遇到的问题是,时, ZF 输出 1,;否则 ZF 输出 0。解决方法:运用F 的输出是决定着ZF 的输出,当F 全零if.else. 。根据 F 的假设值,对 ZF 进行赋值运算。以及八种运算的表示方法不太熟悉进行了查阅实验指导书。在这个多功能ALU设计实验中,这个实验做的时候忘记了不需要连实验板,老师验收的时候说不需要连接实验板,所以临时修改了代码,取消了LED的设置。后来不知道怎么回事, 怎么看都没有错误,但是就是运行出错。于是就剪切了代码,重新生成了文件,粘贴后再次运行时结果出其医疗的成功了。总结一下估计是之前哪里的东西被我删掉了才导致了错误。又再次设置了ZF 与 F 以及 OF 的输出。最后验证了仿真波形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论