zoukankan      html  css  js  c++  java
  • 3-8译码器/4-16译码器的verilo实现(组合逻辑)

    module code3_8(a,b,c,out);
        
        //输入端口
        input a;
        input b;
        input c;
        
        //输出端口
        output reg [7:0]out;        //【】定义out信号为8位的位宽,高位在前,低位在后
        
        //所有在always@中要赋值的信号都必须定义为reg型
        always@(a,b,c)begin            //abc为敏感信号
            case({a,b,c})        // {}拼接三个信号为一个新的信号
                3'b000:out = 8'b0000_0001;        //下划线为占位符,无实际意义
                3'b001:out = 8'b0000_0010;
                3'b010:out = 8'b0000_0100;
                3'b011:out = 8'b0000_1000;
                3'b100:out = 8'b0001_0000;
                3'b101:out = 8'b0010_0000;
                3'b110:out = 8'b0100_0000;
                3'b111:out = 8'b1000_0000;
                //default:out = xxxxxxxx;    如果不必枚举全部情况,则用default表示剩余情况
            endcase
        end  
    
    endmodule
    `timescale 1ns/1ns
    
    module code3_8_tb;
    
        reg a;
        reg b;
        reg c;
        
        wire [7:0] out;
        code3_8 u1(
            .a(a),
            .b(b),
            .c(c),
            .out(out)
        );
    
        initial begin
            a = 0;b = 0;c = 1;
            #200;
            a = 0;b = 1;c = 0;
            #200;
            a = 0;b = 1;c = 1;
            #200;
            a = 1;b = 0;c = 0;
            #200;
            a = 1;b = 0;c = 1;
            #200;
            a = 1;b = 1;c = 0;
            #200;
            a = 1;b = 1;c = 1;
            #200;
            a = 0;b = 0;c = 0;
            #200;
            
            $stop;    
            
            end
        
    endmodule

     4-16译码器增加一个输入端口即可

  • 相关阅读:
    Variational Autoencoders and Nonlinear ICA: A Unifying Framework
    各层的特征的差异性
    TriggerBN +
    Exponential family of distributions
    个人加分项
    对老师的建议
    2021.6.19
    2021.6.18
    2021.6.17
    2021.6.16
  • 原文地址:https://www.cnblogs.com/wjwjs/p/15230168.html
Copyright © 2011-2022 走看看