1、组合电路1
实现下图所示的组合电路。
代码实现:
module top_module (
input a,
input b,
output q );//
assign q = a & b; // Fix me
endmodule
验证结果:
2、组合电路2
实现下图所示的组合电路。
提示:
q | a | b | c | d |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
代码实现:
module top_module (
input a,
input b,
input c,
input d,
output q );//
assign q = (~a & ~b & ~c & ~d) | (~a & ~b & c & d) | (~a & b & ~c & d) | (~a & b & c & ~d) | (a & ~b & ~c & d) | (a & ~b & c & ~d) | (a & b & ~c & ~d) | (a & b & c & d) ; // Fix me
endmodule
验证结果:
3、组合电路3
实现下图所示的组合电路。
代码实现:
module top_module (
input a,
input b,
input c,
input d,
output q );//
assign q = (b & d) | (b & c) | (a & d) | (a & c); // Fix me
endmodule
验证结果:
4、组合电路4
实现下图所示的组合电路。
代码实现:
module top_module (
input a,
input b,
input c,
input d,
output q );//
assign q = b | c; // Fix me
endmodule
验证结果:
5、组合电路5
实现下图所示的组合电路。
代码实现:
module top_module (
input [3:0] a,
input [3:0] b,
input [3:0] c,
input [3:0] d,
input [3:0] e,
output [3:0] q );
always@(*) begin
case(c)
4'd0: q = b;
4'd1: q = e;
4'd2: q = a;
4'd3: q = d;
default: q = 4'hf;
endcase
end
endmodule
验证结果:
6、组合电路6
实现下图所示的组合电路。
代码实现:
module top_module (
input [2:0] a,
output [15:0] q );
always@(*) begin
case(a)
3'd0: q = 16'h1232;
3'd1: q = 16'haee0;
3'd2: q = 16'h27d4;
3'd3: q = 16'h5a0e;
3'd4: q = 16'h2066;
3'd5: q = 16'h64ce;
3'd6: q = 16'hc526;
3'd7: q = 16'h2f19;
default:q = 16'h1232;
endcase
end
endmodule
验证结果:
7、时序电路7
实现下图所示的时序电路。
代码实现:
module top_module (
input clk,
input a,
output q );
always@(posedge clk) begin
q <= ~a;
end
endmodule
验证结果:
8、时序电路8
实现下图所示的时序电路。
代码实现:
module top_module (
input clock,
input a,
output p,
output q );
assign p = clock ? a : p;
always@(negedge clock) begin
q <= p;
end
endmodule
验证结果:
9、时序电路9
实现下图所示的时序电路。
代码实现:
module top_module (
input clk,
input a,
output [3:0] q );
always@(posedge clk)begin
if(a == 1'b1)
q <= 4'd4;
else if(q == 4'd6)
q <= 4'd0;
else
q <= q + 4'd1;
end
endmodule
验证结果:
10、时序电路10
这是一个时序电路。该电路由组合逻辑和一位存储器(即一个触发器)组成。触发器的输出已通过输出状态变得可观察。
实现下图所示的时序电路。
代码实现:
module top_module (
input clk,
input a,
input b,
output q,
output state );
assign q = a ^ b ^ state;
always@(posedge clk)begin
if(a & b)
state <= 1'b1;
else if(~a & ~b)
state <= 1'b0;
else
state <= state;
end
endmodule
验证结果: