前一篇文章我们介绍了通过小脚丫FPGA核心开发板来进行门电路的实验过程。当然,我们还可以画出更多复杂的门电路组合,并且通过小脚丫FPGA轻松实现对应的输入/输出特性的定义。现在,我们利用小脚丫来学习更多具有特定功能的实用组合逻辑电路。
本篇中,我们希望设计一个二进制比较器,通过小脚丫FPGA搭建实验电路并验证结果。
顾名思义,二进制比较器就是比较两个二进制数的大小,因此对于一个两位输入的比较器来说,其输出结果不外乎有小于,大于和等于三种可能。因此我们列出这个电路的真值表。
表1 二进制比较器真值表
A |
B |
Y2(A<B) |
Y1(A>B) |
Y0(A=B) |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
相信学习过数字电路课程的同学都知道如何将该电路进行逻辑运算,化简并画出对应的门电路组合,因此该步骤我们不在此过多赘述,直接上图。
图1 电路图
图2 门电路组合
module comparer1
(
inputwire A, //定义输入的两个数a、b
inputwire B,
outputwire Y2, //定义三种输出结果对应的led
outputwire Y0,
outputwire Y1
);
assign Y2 =(!A) & B; //对应A<B
assign Y1 = A & (!B); //对应A>B
assign Y0 =!(A^B); //对应A=B
endmodule
在完成代码编译后,我们将输入变量A和B以及输出变量Y2,Y1,Y0分别对应至小脚丫的板载外设上。
表2 各变量对应小脚丫相应引脚
变量 |
小脚丫 |
A |
SW1 |
B |
SW2 |
Y2 |
L1 |
Y1 |
L2 |
Y0 |
L3 |
这样,我们就在小脚丫上构建了一个二进制比较器,我们可以通过调节输入编码开关,并观察LED灯的现象来验证我们的设计。
图3
2. 假如现在小脚丫上L2、L3处于点亮状态,那么拨码开关SW1和SW2现在应该是什么状态?(图中将拨码开关放置中间未知仅为示意作用,实际不存在中间状态)。
图4
是不是入手很简单,随后能够很方便地做扩展和结果验证?今天的内容到此结束,下一篇我们会介绍如何通过小脚丫实现更多实用且有趣的组合逻辑电路实验,敬请期待。
而为了帮助更多老师快速上手FPGA的使用和教学,在即将到来的寒假,我们针对高校从事教学/实验室一线工作的教师,推出一个为期5天(2021年1月25日-1月29日)的FPGA设计及应用快速培训,通过实用性非常强的典型案例动手实践,帮助大家快速、有效地上手FPGA,并能够在未来的教学、实践、电赛中大显身手,硬禾实战营也将成为参加培训的老师们长期的教学后援。
详情请见这里或者今天公众号的二条。期待在美丽的苏州跟您一起探讨FPGA和教学实践的结合。
END
硬禾学堂
硬禾团队一直致力于给电子工程师和相关专业的同学,带来规范的核心技能课程,帮助大家在学习和工作的各个阶段,都能有效地提升自己的职业能力。
硬禾学堂
我们一起在电子领域探索前进
关注硬禾服务号,随时直达课堂
点击阅读原文报名参加高校教师培训班