众所周知,在数字电路中,门电路是最基本的构成单位,毫不夸张地说,市场上复杂的数字电路系统都是通过这些门电路来组合实现,而常见的门电路主要包括与门,非门,或门,与非门,异或门等,然而进行搭建一个门电路实验是很不容易的。
举个例子,若是想要做一个简单的与非门数字电路实验,一般是通过MOS管+面包板+电源+条线及若干小时的反复试调来实现,也有土豪直接选择购买一台数字电路实验仪,但若是我不会模电知识和金钱,我该如何快速组建一个与非门电路?
答案是FPGA,全称名为现场可编程逻辑门阵列,它是一种建立在PAL、GAL等可编程器件的基础上出现的半定制电路。
FPGA最大的特点在于它的运算处理方式,FPGA的运算处理方式类似于我们的大脑,它拥有一个储存大量数据的查找表,我们只需通过程序定义输入与输出之间的逻辑关系,FPGA即可按照该逻辑关系自行对其内部结构进行重新定义。
那么FPGA如何实现与非门数字电路?
①Verilog语言
首先选用Verilog语言,通过描述门电路的方式来搭建门电路。
module custblock
(
input wire A, //定义输入A
input wire B, //定义输入B
input wire C, //定义输入C
input wire D, //定义输入D
output wire Y1, //定义输出Y1
output wire Y2 //定义输出Y2
);
wire s1,s2,s3; //定义中间变量
nand (s1,A,B); //(输出,输入,输入)
or (s2,C,D); // 调用基本门电路
xnor (Y1,s1,C);
and (s3,C,s2);
xor (Y2,C,s3);
endmodule
将上述代码导入FPGA后,将在FPGA上构建一个模块,如图所示:
②FPGA开发板
在这里我们选用小脚丫FPGA开发板,如图所示,采用板载的4个拨码开关和2个LED(低电平亮)分别作为模块的4路输入和2路输出,并且通过调节输入来观察输出结果。上下两图分别所对应的输入分别为:0001和0101,我们也观察到了在两种情况下的LED状态。