HDLBits学习笔记(1~10)
学习阶段:有问题发873727286@qq.com大家一起讨论。
题目1:
题目大意:构建一个没有输入,只有一个输出的电路,并且输出一直是1(逻辑高电平)。
题目解析:最简单的电路,直接写。
答案:
module top_module( output one );
// Insert your code here
assign one = 1'b1;
endmodule
题目2:
题目大意:构建一个没有输入,只有一个输出的电路,并且输出一直是0(逻辑高电平)。
题目解析:同题目1。
答案:
module top_module(
output zero
);// Module body starts after semicolon
assign zero = 1'b0;
endmodule
题目3:
题目大意:构建一个既有输出又有输出的电路,并且,输入输出端口就像被导线连起来。
题目解析:将电路的输入的值直接赋给输出。
答案:
module top_module( input in, output out );
assign out = in;
endmodule
题目4:
题目大意:构建一个有3个输出,有4个输出的电路,并且输入输出端口入下列关系所示。
a -> w
b -> x
b -> y
c -> z
题目解析:将电路的对应的输入的值直接赋给输出。
答案:
module top_module(
input a,b,c,
output w,x,y,z );
assign w = a,
x = b,
y = b,
z = c;
endmodule
题目5,6,7,8
题目大意:构建一个模块实现(非,与,或非,异或非)门的功能
题目解析:将电路的输入值的(非,与,或非,异或非),直接赋给输出。
答案:
module top_module( input in, output out );
assign out = ~in;
endmodule
module top_module(
input a,
input b,
output out );
assign out = a&b;
endmodule
module top_module(
input a,
input b,
output out );
assign out = ~(a|b);
endmodule
题目9:
题目大意:在五行代码内实现下图中的电路
题目解析:按图示一步步来。
答案:
module top_module(
input a,
input b,
input c,
input d,
output out,
output out_n );
assign out = (a&b)|(c&d);
assign out_n = ~out;
endmodule
题目10:
题目大意:实现7458芯片的功能如下图所示
题目解析:按图示一步步来。
答案:
module top_module (
input p1a, p1b, p1c, p1d, p1e, p1f,
output p1y,
input p2a, p2b, p2c, p2d,
output p2y );
assign p1y = (p1a&p1b&p1c)|(p1f&p1e&p1d);
assign p2y = (p2a&p2b)|(p2c&p2d);
endmodule