杭电852计算机组成原理,杭电计算机组成原理多功能ALU设计实验3.docx

--WORD格式---可编辑--

--

杭州电子科技大学计算机学院

实验报告

课程名称:计算机组成原理

名:

实验项目:多功能

ALU设计实验

级:

指导教师:

号:

实验位置:

期: 2015 年 4 月 29 日

实验

目的

实验

环境

1) 学习多功能 ALU的工作原理,掌握运算器的设计方法。

2) 掌握运用 Verilog HDL 进行行为描述与建模的技巧和方法。

Xilinx ISE Design Suite 13.4

1) 创建工程,编写 ALU模块代码。

2) 编写对 A、B 数据进行选择的模块代码。

3) 编写选择输出数据模块代码。

4) 设置顶层文件,并将三个模块代码导入。

实验 ( 5) 设置输入信号,进行软件仿真并记录仿真波形。

内容

( 6)

生成 BIT 文件并下载入

FPGA中,进行硬件测试。

(算

( 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;

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

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

3'b111:begin CF=B<

endcase

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);

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 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

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;

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]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值