使用case语句设计八功能的算术运算单元(ALU)

题目:使用case语句设计八功能的算术运算单元(ALU),其输入信号a和b均为4位,功能选择信号select为3位,输出信号out为5位。算术运算单元ALU所执行的操作与select信号有关,具体关系见下表。

Verilog描述:

module ALU(a,b,select,out);
input [3:0] a,b;
input [2:0] select;
output reg [4:0] out;

always @ (select or a or b)
  begin
    case(select)
      3'b000: out = a;
      3'b001: out = a + b;
      3'b010: out = a - b;
      3'b011: out = a / b;
      3'b100: out = a % b;
      3'b101: out = a << 1;
      3'b110: out = a >> 1;
      3'b111: out = (a > b);
      default: out = 5'bx;
    endcase
  end
endmodule

测试程序:

`timescale 1ns/1ps
module ALU_tb;
reg [3:0] a,b;
reg [2:0] select;
wire [4:0] out;

ALU alu1(a,b,select,out);

initial
  begin
    a<=4'b0000;b<=4'b0000;select<=3'b000;
  end
initial
  fork //并行块
    #10 a <= 4'b0110;
    #20 a <= 4'b0100;
    
    #15 b <= 4'b0001;
    #30 b <= 4'b0010;
  join
initial 
  fork
    #10 select <= 3'b000;
    #20 select <= 3'b001;
    #30 select <= 3'b010;
    #40 select <= 3'b011;
    #50 select <= 3'b100;
    #60 select <= 3'b101;
    #70 select <= 3'b110;
    #80 select <= 3'b111;
    
    #10 a <= 4'b0110;
    #20 a <= 4'b0100;
    
    #15 b <= 4'b0001;
    #30 b <= 4'b0010;
  join
endmodule
    

仿真结果:

实验一 算术逻辑单元 1. 实验目的 (1) 掌握运算器的工作原理。 (2) 验证运算器的功能 2. 实验要求 (1)基本要求 设计一个4位的算术逻辑单元,满足以下要求。 ①4位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非和传递。用3位操作码进行运算,控制方式如下表所示。 运算操作码     运   算 对标识位Z和C的影响 000 result ←A+B 影响标志位Z和C 001 result ←A+1 影响标志位Z和C 010 result ←A-B 影响标志位Z和C 011 result ←A-1 影响标志位Z和C 100 result←A and B 影响标志位Z 101 result←A or B 影响标志位Z 110 result← not B 影响标志位Z 111 result←B 不影响标志位Z和C ②设立两个标志触发器Z和C。当复位信号reset为低电平时,将这两个标志触发器清零。当运算结束后,在时钟clk的上升沿改变标志触发器Z和C的值。运算结果改变标志触发器C、Z的情况如下:加法、减法、加1、减1运算改变Z、C;与、或、非运算改变Z,C保持不变;传送操作保持Z、C不变。因此在运算结束时Z、C需要两个D触发器保持。 ③为了保存操作数A和B,设计两个4位寄存器A和B。当寄存器选择信号sel=0时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入A寄存器;当sel=1时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入B。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值