前言
逻辑门(Logic Gates)是学习FPGA的基础,是在集成电路 (Integrated Circuit)上的基本组件。简单的逻辑门可由晶体管组成,本文不从底层的晶体管讲起,而是要从FPGA初级工程师考试的重点讲起。
一、逻辑门
逻辑门是基础,是学习fpga的基础,请同学从今天开始记住逻辑门表。
1.AND gate
module top_module(
input a,
input b,
output out );
assign out = a & b;//两个一位的输入a、b相与,然后赋值给输出out
endmodule
2.NOT gate
module top_module( input in, output out );
assign out = ~in;//一个一位输入in取反,然后给输出out
endmodule
3.NOR gate
module top_module(
input a,
input b,
output out );
assign out = ~(a | b);//两个一位输入a、b,相或取反,然后赋值给输出out
endmodule
4.XNOR gate
module top_module(
input a,
input b,
output out );
assign out = ~(a ^ b);//异或非表达式
endmodule
也根据真值表求出逻辑函数式
a | b | out |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
取出out为1的项,如上表1所示,中间两列分别是:
a = 1、b = 0
module top_module(
input a,
input b,
output out );
assign out = ~(~a & b | a & ~b);//根据函数表达式
endmodule
注意:如果有更多的输入项,也使用真值表的方法得出函数表达式。
二、综合训练
1.7458芯片
module top_module (
input p1a, p1b, p1c, p1d, p1e, p1f,
output p1y,
input p2a, p2b, p2c, p2d,
output p2y );
wire a;//中间wire a
wire b;//中间wire b
wire c;//中间wire c
wire d;//中间wire d
assign a = p2a & p2b;//两个一位输入p2a、p2b相与,然后赋值给中间wire a
assign b = p2c & p2d;//两个一位输入p2c、p2d相与,然后赋值给中间wire b
assign c = p1a & p1c & p1b;//三个一位输入p1a、p1c、怕b相与,然后赋值给中间wire c
assign d = p1f & p1e & p1d;//三个一位输入p1f、p1e、p1d相与,然后赋值给中间wire d
assign p2y = a | b;//中间wire a、b或运算,然后赋值给输出p2y
assign p1y = c | d;//中间wire c、d或运算,然后赋值给输出p1y
endmodule
2.7420芯片
module top_module (
input p1a, p1b, p1c, p1d,
output p1y,
input p2a, p2b, p2c, p2d,
output p2y );
assign p1y = ~(p1a & p1b & p1c & p1d);//四个一位输入p1a、p1b、p1c、p1d相与,然后取反赋值给输出p1y
assign p2y = ~(p2d & p2c & p2b & p2a);//四个一位输入p2d、p2c、p2b、p2a相与,然后取反赋值给输出p2y
endmodule
总结
本文介绍部分逻辑门,没有介绍的逻辑门都是大同小异。在文章的最后也列举了两个功能简单的芯片。从简单的逻辑门到芯片,这也是为什么逻辑门是集成电路的基础。