杭电计算机组成原理多功能ALU设计实验

  • 格式:doc
  • 大小:137.50 KB
  • 文档页数:6
指导教师
评议
成绩评定: 指导教师签名:
(7)记录测试结果。
(接上)
实验内容(算法、程序、步骤和方法)
(1)ALU模块代码,利用三八译码器,将我们将要操作的对象,进行分别的处理。
module ALU_TOP(A,B,F,ZF,OF,ALU_OP);
input [31:0] A,B;
input [2:0] ALU_OP;
output ZF,OF;
3'b010:begin CF=A^B; end
3'b011:begin CF=A~^B; end
3'b100:begin CF=A+B; end
3'b101:begin CF=A-B; end
3'b110:begin CF=(A<B); end
3'b111:begin CF=B<<A; end
endcase
end
endmodule
(3)输出数据选择模块代码,根据实验指导书上的对于32位数据的处理方式。
module CLED(F_LED_SW,LED,F,ZF,OF);
input [31:0] F;
input ZF,OF;
input [2:0] F_LED_SW;
output [7:0] LED;
reg [7:0] LED;
output [31:0] F;
reg [31:0] F;
reg ZF,OF;
reg [5:0] i;
reg C;
reg [32:0] CF;
always @ (ALU_OP or A or B)
begin
case(ALU_OP)
3'b000:begin CF=A&B; end
3'b001:begin CF=A|B; end
Xilinx ISE Design Suite 13.4
实验内容(算法、程序、步骤和方法)
(1)创建工程,编写ALU模块代码。
(2)编写对A、B数据进行选择的模块代码。
(3)编写选择输出数据模块代码。
(4)设置顶层文件,并将三个模块代码导入。
(5)设置输入信号,进行软件仿真并记录仿真波形。
(6)生成BIT文件并下载入FPGA中,进行硬件测试。
default:begin LED[7]=ZF;LED[0]=OF;LED[6:1]=6'b0;end
endcase
end
endmodule
(4)顶层设计模块代码:
module ALU(AB_SW,ALU_OP,F_LED_SW,LED);
input [2:0] AB_SW,ALU_OP,F_LED_SW;
input [2:0] AB_SW;
output [31:0] A,B;
reg [31:0] A,B;
wire [2:0] AB_SW;
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
output [7:0] LED;
wire [2:0] AB_SW,ALU_OP,F_LED_SW;
wire [31:0] A,B,F;
wire ZF,OF;
wire [7:0] LED;
Choice C1(AB_SW,A,B);
ALU_TOP A1(A,B,F,ZF,OF,ALU_OP);
CLED C2(F_LED_SW,LED,F,ZF,OF);
wire [31:0] F;
wire [2:0] F_LED_SW;
wire ZF,OF;
always @ ( * )
begin
case(F_LED_SW)
3'b000:LED=F[7:0];
3'b001:LED=F[15:8];
3'b010:LED=F[23:16];
3'b011:LED=F[31:24];
endmodule
数据记录和计算
仿真波形:
结论(结果)
实验的结果满足要求,在板子上正确的体现。数值比较大,我们利用了计算机上的自带的程序员高级计算器验证了我们的实验的正确性。
试验心得与小结
本实验,根据实验报告解决处理32位数据输入的办法,输出的办法,我们可以很好的利用板子的自身的按钮,展开我们的实验,并且需要很好的调用我们编写的各个模块的,在板子上展现出了处理后的正确的结果。面对环境问题的时候我们可以想象出不同的解决的方案,可以代替现有的条件的不足,也是一个比较好的解决的思路。
F[31:0]=CF[31:0];
C=CF[32];
ZF=0;
for(i=0;i<32;i=i+1)
ZF=ZF|F[i];
ZF=~ZF;
OF=A[31]^B[31]^F[31]^C;
end
endmodule
(2)输入数据选择模块代码,根据实验指导书上的对于32位数据的处理方式。
module Choice(AB_SW,A,B);
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
杭州电子科技大学计算机学院
实验报告
课程名称:计算机组成原理
实验项目:多功能ALU设计实验
指导教师:实验位置:姓 名:班 级:学 号:
日 期:2015年4月29日
实验目的
(1)学习多功能ALU的工作原理,掌握运算器的设计方法。
(2)掌握运用Verilog HDL进行行为描述与建模的技巧和方法。
实验环境