• Verilog之case语句


    verilog设计进阶

    时间:2014年5月6日星期二

    主要收获:

    1.学会使用case语句;

    2.学会使用随机函数$random。

    $random:

    1.函数说明:$random函数调用时返回一个32位的随机数,它是一个带符号的整形数。

    2.产生0~59之间的随机数的样例:

    reg[23:0]rand;

    rand={$random}% 60;

    3.产生一个在min, max之间随机数的样例:

    reg[23:0]rand;

    rand= min+{$random}%(max-min+1);

    (摘自昔如烟的博客)

    Verilog程序:

    modulealu(out, opcode, a, b);

           output[7:0]     out;

           reg[7:0]   out;

           input[2:0]       opcode;

           input[7:0]       a, b;

          

           always@(opcode or a or b) begin

                  case(opcode)

                         `plus:      out = a + b;

                         `minus:   out = a - b;

                         `band:     out = a & b;

                         `bor:       out = a | b;

                         `unegate:out= ~a;

                         default: out = 8'hx;

                  endcase

           end

    endmodule

    測试程序:

    `timescale1ns/1ns

    modulealutest;

           wire[7:0] out;

           reg [7:0] a, b;

           reg [2:0] opcode;

           parameter times = 5;

          

           initial begin

                  a={$random}%256;

                  b={$random}%256;

                  opcode=3'd0;

                  repeat(times) begin

                         #100;

                         a={$random}%256;

                         b={$random}%256;

                         opcode=opcode+1;

                  end

                  #100 $stop;

           end

          

           alu u1(out, opcode, a, b);

    endmodule

    仿真波形:


  • 相关阅读:
    mysql 判断时间 语法
    SVN权限配置
    redis 安装 配置 及启动
    SVN搭建(linux 7)
    Maven 逆向工程
    git 设置只输入一次用户名和密码
    java环境变量配置(win7)
    Navicat Premium 12 激活
    linux 常用命令
    MVC的验证(模型注解和非侵入式脚本的结合使用)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5112545.html
Copyright © 2020-2023  润新知