Verilog逻辑设计学习1

Posted on 2023-01-23 15:21  _Chapman  阅读(154)  评论(0编辑  收藏  举报

最基本逻辑电路

与门

数字电路中常见的一种门电路,即输入端全部为高电平,输出端即为高电平,否则为低电平。符号如下图所示:
image
或者
image

用Verilog实现:

module and_gate(
input A,
input B,
output C
);

assign C <= A&B;

endmodule

或门

数字电路中常见的一种门电路,即输入端只要有一路为高电平,输出即可为高电平,否则为低电平。符号如下图所示:
image
或者
image
用Verilog实现:

module or_gate(
input A,
input B,
output C
);

assign C <= A|B;

endmodule

非门

数字电路中常见的一种门电路,即输入端电平和输出端电平是相反的。若输入为高电平,输出为低电平,反之为高电平。符号如下图所示:
image
或者
image
用Verilog实现:

module not_gate(
input A,
output B
);

assign B <= ~A;

endmodule

异或门

数字电路中常见的一种门电路。当输入端的电平信号相等,则输出低电平。当输入端电平信号不相同,则输出高电平。简图如下:
image
或者
image
用Verilog实现:

module not_gate(
input A,
input B,
output C
);

assign C <= A^B;

endmodule

组合应用实例

假设,参考下图设计出电路:
image
可以列出以下关系式:
F=F1+F2+F3
对其进行展开:
F=A&B+B&C+A&C
则真值表如下:
image

用verilog实现可以用以下代码:

module assembly_gate(
input A,
input B,
input C,
output F
);
//作为逻辑运算的中间值可以用wire类型定义
wire F1;
wire F2;
wire F3;

assign begin
F1 <= A&B;
F2 <= B&C;
F3 <= A&C;
end

assign F=F1|F2|F3;

endmodule

当然,可以在化简一点。