特级茶叶 2022-09-28 17:54 采纳率: 78.6%
浏览 37
已结题

用Verilog HDL语言编写程序

利用quartus 2编写
利用case语句实现四选一数据选择器。

波形仿真时endtime设置为50us,四个信号a、b、c、d分别为1 3 5 7的方波,输出out,信号选择s1、s2。

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-09-29 08:52
    关注

    img

    
    `timescale 1ns/1ns
    module testbench_select;
    reg        a,b,c,d;
    reg        s1,s2;
    wire    o;
    parameter CLK_PERIOD        = 1000;    
    initial    
    begin
        a = 0;    b = 0;    c = 0;    d = 0;
    end
    always    a = #(CLK_PERIOD/1) ~a;
    always    b = #(CLK_PERIOD/3) ~b;
    always    c = #(CLK_PERIOD/5) ~c;
    always    d = #(CLK_PERIOD/7) ~d;
    
    initial    
    begin
                s2 = 0;    s1 = 0;
        #10000    s2 = 0;    s1 = 1;
        #10000    s2 = 1;    s1 = 0;
        #10000    s2 = 1;    s1 = 1;
    end
    
    select    ux
    (
        .a        (a),
        .b        (b),
        .c        (c),
        .d        (d),
        .s1        (s1),
        .s2        (s2),
        .o        (o)
    );
    endmodule
    
    module select
    (
        input    a,b,c,d,s1,s2,
        output    reg        o
    );
    
    always@(*)
    begin
        case({s2,s1})
        2'b00:    o <= a;
        2'b01:    o <= b;
        2'b10:    o <= c;
        2'b11:    o <= d;
        endcase
    end
    endmodule
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 已采纳回答 9月29日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据