HDLBits学习笔记(11~19)

HDLBits学习笔记(11~19)

学习阶段:有问题发873727286@qq.com大家一起讨论。

题目11

题目大意:把输入的向量按下图所示的按位输出
在这里插入图片描述
题目分析:向量输入按位输出。

答案:

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,
           o0 = vec[0],
           o1 = vec[1],
           o2 = vec[2];
endmodule

题目12 Vector1

题目大意:把输入的16位数据分成高八位和低八位输出

题目分析:按位输出向量

答案:

module top_module( 
    input wire [15:0] in,
    output wire [7:0] out_hi,
    output wire [7:0] out_lo );
    
    assign out_lo[7:0] = in[7:0],
           out_hi[7:0] = in[15:8];
endmodule

题目13 Vector2

题目大意:把输入的四个字节反序输出

题目分析:按字节输出向量

答案:

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

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

题目14 Vectorgates

题目大意:按下列框图输出结果
在这里插入图片描述
输入量是两个长度为3的向量。
输出量:
out_or_bitwise是对这两个输入量分别按位取或所得到的结果。
out_or_logical是这两个输出量相或的结果。
out_not是把这两个输入量取非,并把b非放到高位。

题目分析:verilog语法的使用。

答案:

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[5:0] = {~b,~a};
endmodule

题目15 Gates4

题目大意:有一个长度为4的向量输入,对应四个三个输出分别为,改向量自身的 与 或 异或

题目分析:语法问题。

答案:

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 Vector3

题目大意:把各个输入按下图顺序输出到各个输出量中
在这里插入图片描述
题目分析:语法的使用

答案:

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,2'b11};

endmodule

题目17 Vectorr

题目大意:把输入的8位向量,颠倒顺序输出。

题目分析:输入输出反序,Verilog不能够改变向量的顺序。

答案:

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 Vector4

题目大意:输入量是个八位的向量,输出量是在输入量前面加上24个输入量的第八位。

题目分析:语法运用。

答案:

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

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

endmodule

题目19 Vector5

题目大意:给定五个1位信号(a,b,c,d和e),在25位输出向量中计算所有25个成对的一位比较。如果要比较的两位相等,则输出应为1。
在这里插入图片描述
题目分析:按图来写,语法的使用。

答案:

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
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值