用V e r i l o g实现一个简单ALU(组合逻辑)

实验名称:

用V e r i l o g实现一个简单ALU。(组合逻辑)

实验目的:

学生通过用V e r i log实现简单的ALU,熟悉硬件描述语言Verilog的基本语法和ALU相关概念,为用Verilog实现CPU和计算机组成的学习打下基础。

实验描述:

输入:两个4位二进制数,代表两个操作数A,B;一个3位控制信号operation,代表ALU要进行的运算。本实验中,ALU可以实现4种运算:

输出:4位结果,1位进位

实验分析:

实现四种运算,与、或、异或、同或。

a&b a|b a^b ~(a^b)

代码如下:

`timescale 1ns / 1ps

module new(

            a,

            b,

            c,

            d,

            y

            );

    input a;

    input b;

    input c;

    input d;

    output y;

    reg y;

    always@(a or b or c or d)begin

        if(c==0)begin

            if(d==0)begin

            y<=a&b;

            end

            else begin

            y<=a^b;

            end

         end

         else begin

            if(d==0)begin

            y<=~(a^b);

            end

            else begin

            y<=a|b;

            end

         end

    end

endmodule

testbench代码进行仿真测试:

`timescale 1ns / 1ps

module test();

   reg a,b,c,d;

   wire y;

   

   new tsh(

       .a(a),

       .b(b),

       .c(c),

       .d(d),

       .y(y)

       );

       

   initial begin

       a=0;b=0;c=0;d=0;

       # 20;

       a=0;b=0;c=0;d=1;

       # 20;

       a=0;b=0;c=1;d=0;

       # 20;

       a=0;b=0;c=1;d=1;

       # 20;

       a=0;b=1;c=0;d=0;

       # 20;

       a=0;b=1;c=0;d=1;

       # 20;

       a=0;b=1;c=1;d=0;

       # 20;

       a=0;b=1;c=1;d=1;

       # 20;

       a=1;b=0;c=0;d=0;

       # 20;

       a=1;b=0;c=0;d=1;

       # 20;

       a=1;b=0;c=1;d=0;

       # 20;

       a=1;b=0;c=1;d=1;

       # 20;

       a=1;b=1;c=0;d=0;

       # 20;

       a=1;b=1;c=0;d=1;

       # 20;

       a=1;b=1;c=1;d=0;

       # 20;

       a=1;b=1;c=1;d=1;

       # 20;

       $finish;

   end

endmodule

运行结果:

相关推荐
乘风~&26 分钟前
fpga助教面试题
fpga开发
Hcoco_me13 小时前
HDLBits ——> Building Larger Circuits
fpga开发
碎碎思14 小时前
FPGA DSP:Vivado 中带有 DDS 的 FIR 滤波器
fpga开发
电子阿板3 天前
ZYNQ TCP Server PS端千兆网口速率低问题,要修改BSP中LWIP配置参数
嵌入式硬件·tcp/ip·fpga开发·tcp
9527华安3 天前
FPGA实现SDI视频解码转GTY光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供工程源码和技术支持
fpga开发·架构·音视频·8b/10b·sdi·gty·gs2971
cjie2213 天前
国产FPGA开发板选择
fpga开发
RunningCamel4 天前
FPGA开发进阶指南:从基础到精通的技术跃迁
fpga开发
7yewh4 天前
数字电路-基础逻辑门实验
fpga开发
Lily48015 天前
ram的使用——初始化很重要
fpga开发
9527华安5 天前
FPGA实现SDI视频缩放转GTY光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供工程源码和技术支持
fpga开发·视频编解码·aurora·8b/10b·sdi·gty·gs2971