【HDLbit】题目

  • Vectorgates
    题目:创建一个电路,这个电路含有两个3比特输入。对其分别做按位或,逻辑或和非。其中非的高三位由b提供,低三位由a提供。
    module top_module( 
        input [2:0] a,
        input [2:0] b,
        output [2:0] out_or_bitwise,
        output out_or_logical,
        output [5:0] out_not
    );
        
        assign out_or_bitwise [2:0] = a[2:0] | b[2:0];
        assign out_or_logical = a[2:0] || b [2:0];
        assign out_not[5:3] = ~b[2:0];
        assign out_not[2:0] = ~a[2:0];
        
    endmodule

     

  • Gates4
     题目:创建一个四输入的电路,有三个输出:
     1. out_and
     2. out_or
     3. out_xor

    module top_module( 
        input [3:0] in,
        output out_and,
        output out_or,
        output out_xor
    );
        assign out_and = in[3] && in[2] && in[1] && in[0];
        assign out_or = in[3] || in[2] || in[1] || in[0];
        assign out_xor = in[3] ^ in[2] ^ in[1] ^ in[0];
        
    endmodule
  • Vector3
    部分选择(part selection),concatenation operator{a,b,c}用于连接向量
    E.g. {3'b111, 3'b000} =>6'b111000
    module top_module (
        input [4:0] a, b, c, d, e, f,
        output [7:0] w, x, y, z );//
    	
        assign w[7:0] = {a[4:0],b[4:2]};
        assign x[7:0] = {b[1:0],c[4:0],d[4]};
        assign y[7:0] = {d[3:0],e[4:1]};
        assign z[7:0] = {e[0],f[4:0],2'b11};
        // assign { ... } = { ... };
    
    endmodule


posted @ 2022-04-13 12:48  1223198510  阅读(77)  评论(0)    收藏  举报