用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

运行结果:

相关推荐
狂奔蜗牛(bradley)6 小时前
拒绝SOEM黑盒!死磕EtherCAT主站:ARM+FPGA架构、DC同步与状态机修复等,50+篇实战开发文档全公开
arm开发·fpga开发·架构
XMAIPC_Robot9 小时前
CODESYS 实时控制 + RK182X 大模型算力扩展|RK3576 工业边缘控制器设计
人工智能·fpga开发·机器人·rk3588+fpga
女神下凡11 小时前
芯参谋(31):SPI NOR Flash 电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
学习FPGA的电气小兴兴14 小时前
基于FPGA的CORDIC旋转模式实现sin和cos运算_采用EGo1板卡上板验证【FPGA数字信号处理第5讲】
fpga开发·信号处理·数字信号处理·verilog·cordic·ego1·fpga设计入门与提高
博览鸿蒙7 天前
FPGA开发使用的语言
fpga开发·fpga
明德扬7 天前
机器人多摄像头如何做FPGA多路视频聚合?
学习·fpga开发·fpga
JoYER_cc7 天前
FPGA 调试实录:LED 闪烁程序从踩坑到仿真验证的完整经验总结
fpga开发
ktd0078 天前
复旦微开发环境搭建流程备忘录
fpga开发
ERROR:998 天前
陈工,试试Agent开发FPGA
fpga开发
威嵌神州8 天前
复旦微 FMQL100TAI 开发 8 问:仿真器、系统、接口高频问题解答
人工智能·嵌入式硬件·fpga开发