在数字电路中,门电路是最基本的构成单位,可以说,任何繁芜的数字电路系统都可以通过我们耳熟能详的与门,非门,或门,与非门,异或门等等组合实现。对付各种门电路的逻辑特色,想必同学们都节制得出神入化,脑海里可以毫无压力地随时浮现着各种0和1的组合。
然而,搭建一个门电路实验却并不随意马虎!
我们以下面的非门电路为例。
X
Y
Z
0
0
1
0
1
1
1
0
1
1
1
0
传说中,如果想做一个与非门的数字电路实验,可以通过以下两种方法:
1. 热爱模电的朋友们可以通过MOS管+面包板+电源+跳线以及多少小时的反复调试。
2. 土豪朋友们对此不屑一顾,直接拍几千块买一台数字电路实验仪。
当然,既没有那么热爱模电,也没有那么多软妹币的朋友门仍旧有更得当的办法,那便是通过逻辑芯片。比如大家熟习的7400系列的逻辑芯片,只须要接上电源,再配上开关,LED等器件,就可以通过实验办法对与非门的逻辑和电气特性进行直不雅观地学习,比如采取7400 Quad2的与非门逻辑芯片。
由于我们要不雅观察实验征象,因此须要配上开关和LED灯,使得实验可以可视化。当然,作为习气了课长进修1+1=2,考试见到,的后浪,肯定不能知足于这个大略的实验。现在,在上一个练习的根本上,我们来考试测验构建以下门电路组合。
图3
以下是收到了某位同学的胜利成果,从电路连接的独特办法中,我们可以劈面感想熏染到该同学在完成实验后的喜悦与收成。
虽然我们还通过软件仿真的办法构建上述电路并不雅观察波形,然而和电路上进行实打实的操作比较究竟是有质的差别。毕竟靠着仿照飞车驾龄20年资历上路还是要被警察叔叔带走的。
不丢脸出,画门电路随意马虎,对门电路进行实验很难,对各式各样奇葩组合的门电路进行实验更是难上加难。然而这统统在FPGA面前都只是谈笑风生。
FPGA,英文全称Field Programmable Gate Array,是一种可以通过某百科或搜索引擎查找到并且看了之后不明觉厉的东西。在此,我们紧张先容一下FPGA的部分特点,以及如何使其与数字电路实验进行结合。
首先问大家一个问题:我们在打算3x7=21或者5x8=40的时候,有谁是通过最原始的乘法事理推导并打算出来的,如果有,请在底部留言并得到所有人的膜拜。相信大部分人都可以在半秒内给出准确答案,为什么?由于我们都背过九九乘法表,只假如在这个范围内的任意乘法我们的大脑都可以瞬间对应出打算结果。相信大家对当年的112=121,122=144,132=169…等等还历历在目。
之以是我们可以在一定范围内进行准确和快速的打算,是由于我们的大脑里储存了一个拥有大量数据的查找表,在一定范围内的输入数据我们都可以迅速在表中找到对应答案。实在,FPGA的运算处理办法就类似于我们的大脑。它拥有一个可以储存大量数据的查找表,只要我们通过程序定义出输入与输出之间的逻辑关系,FPGA就可以按照该逻辑关系自行对其内部构造进行重新定义,直白地说,便是我们可以随时给FPGA进行洗脑,而后者可以永久不计回报,心甘情愿地被洗脑。
接下来我们就快速展示一下如何通过FPGA展示图3所示的门电路。既然要对FPGA进行洗脑,肯定须要措辞。在这里我们采取大略普通的Verilog措辞,通过描述门电路的办法,以16行代码轻松在FPGA上搭建上述门电路。
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上构建出了一个模块,输入端分别是A,B,C,D,输出端分别是Y2,Y1,且内部构造和图1中所示的功能完备一样。
不过,对付实验来说,仅仅在FPGA上搭建出该门电路模块还是不足的,我们还须要许可实验者对该电路进行调试并不雅观察征象,因此还须要有相应的可操作/不雅观察元件与FPGA合营利用。接下来便是我们备受欢迎的小脚丫FPGA登场的时候了。
从示意图中可以看出,小脚丫FPGA带有多个板载外设,如开关,LED和数码管等,可以对绝大部分数字电路进行生动的实验操作。小脚丫配有USB下载器,可以通过一根USB线实现供电和程序下载。板上的36个多功能I/O接口可以进行项目扩展,且封装采取DIP40尺寸,因此可以与面包板完美结合。
以下是通过我们小脚丫FPGA对该电路进行的实验。我们采取板载的4个拨码开关和2个LED分别作为模块的4路输入和2路输出,并且通过调节输入来不雅观察输出结果。旁边两图分别所对应的输入分别为:0001和0101,我们也不雅观察到了在两种情形下的LED状态。
通过小脚丫FPGA进行数字电路实验,可以快速对实验结果进行不雅观察,验证以及调试,且实验过程完备不受韶光、空间以及各种周围环境的滋扰成分所影响。