HDLBits从零开始——第11题到第20题答案

目录

第11题:Vectors

第12题:Vectors in more detail

第13题:Vectors part select

第14题:Bitwise operators

第15题:Four-input gates

第16题:Vectors concatenation operator

第17题:Vectors reversal 1

第18题:Replication operator

第19题:More replication

第20题:Modules


第11题:Vectors

module top_module 
( 
    input  wire [2:0] vec   ,
    
    output wire [2:0] outv  ,
    output wire o2          ,
    output wire o1          ,
    output wire o0  
); 

// Module body starts after module declaration

    assign  outv = vec;
    assign  o2 = vec[2];
    assign  o1 = vec[1];
    assign  o0 = vec[0];

endmodule

第12题:Vectors in more detail

`default_nettype none     // Disable implicit nets. Reduces some types of bugs.
module top_module
( 
    input  wire [15:0]  in      ,
    output wire [7:0]   out_hi  ,
    output wire [7:0]   out_lo 
);

    assign  out_hi = in[15:8];
    assign  out_lo = in[7:0];

endmodule

第13题:Vectors part select

module top_module
( 
    input  [31:0] in    ,
    output [31:0] out 
);

    assign  out = {in[7:0],in[15:8],in[23:16],in[31:24]};

endmodule

第14题:Bitwise operators

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 = a | b;
    assign  out_or_logical = a || b;
    assign  out_not = ~{b,a};

endmodule

第15题:Four-input gates

module top_module
( 
    input   [3:0]   in      ,
    output          out_and ,
    output          out_or  ,
    output          out_xor
);

    assign  out_and = ∈
    assign  out_or  = |in;
    assign  out_xor = ^in;

endmodule

第16题:Vectors concatenation operator

module top_module 
(
    input   [4:0] a, b, c, d, e, f,
    output  [7:0] w, x, y, z 
);

    assign  {w, x, y, z} = {a, b, c, d, e, f,1'b1,1'b1};

endmodule

第17题:Vectors reversal 1

module top_module
( 
    input  [7:0] in  ,
    output [7:0] out
);

    assign  out = {in[0],in[1],in[2],in[3],in[4],in[5],in[6],in[7]};

endmodule

第18题:Replication operator

module top_module 
(
    input  [7:0]  in  ,
    output [31:0] out 
);

    assign out = { {24{in[7]}} , in };

endmodule

第19题:More replication

module top_module 
(
    input           a, b, c, d, e,
    output [24:0]   out 
);

    assign out = ~{{5{a}},{5{b}},{5{c}},{5{d}},{5{e}}} ^ {5{a,b,c,d,e}};

endmodule

第20题:Modules

module top_module 
( 
    input a, 
    input b, 
    
    output out 
);

mod_a   mod_a_inst
(   
    .in1(a), 
    .in2(b), 
    .out(out) 
);

endmodule
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值