使用FPGA学数电不再需要安装软件, 真的么?
当然是真的,听我细细道来。。。。
数字电路是一门非常基础的课程,核心是“数字”、“逻辑”、“电路”,充斥着各种烧脑的新概念和理论知识,但又是各种现代电子设备的基石,实用性非常强,因此与理论学习同步进行的动手实操体验,是学好数字电路的最佳方式。
而最佳的体验工具自然是、也只能是FPGA - 现场可编程逻辑门阵列,它就像数字领域的万能积木,可以允许用户通过画图(已经被淘汰)或写代码(采用更符合我们逻辑思维方式的编程语言)对其硬件功能实现任意自定义的半成品电路,同样一颗 FPGA 芯片既可以被定义成简单的运算电路,也可以被定义为复杂的集成电路用于实现特定功能,这完全得益于其独特的内部构造,FPGA具有非常大的可塑性。
如下图所示,一个 FPGA 通常由3个主要的部分组成:可编程逻辑单元 CLB,开关矩阵 SM和I/O 模块IOB。其中, 可编程逻辑单元的本质就是一个可以通过其内部储存的查找表 LUT 来实现任意逻辑功能的模块,而实现任意逻辑功能定义的工具被称为硬件描述语言 HDL(最常用的为Verilog)。当电路的功能被定义之后, 开关矩阵可以定义自行控制各个可编程逻辑单元之间的连接方式,进而实现指定的逻辑功能。最终,FPGA与外界电路的交互可以通过I/O 模块实现。
那问题来了:
1 要学习数字电路,需要什么级别的FPGA呢?
科技发展到今天,现在市面上的任何一款被称之为FPGA的芯片,满足数字电路的教学实践使用都绰绰有余,毕竟教学实验中用到的功能非常有限,还在学习基础理论路上的菜鸟用不了多少资源,这些产品级的FPGA器件无论其功能还是性能都远超我们教学的需要,所以,可以忽略对这个因素的考虑。
2 要体验数字电路书本上的各种理论知识,FPGA学习板上需要哪些功能外设?
无论是组合逻辑、时序逻辑还是数字系统,无外乎都是“基于多个输入参量通过各种数字逻辑的执行,得到不同的输出参量”,输入参量和输出参量的表达方式有很多种,而最简单、最直观的也就是:
输入 - 用按键和开关,多个按键和开关就可以体现组合逻辑的“因”;
输出 - 用LED(数码管本质上也是LED),多个LED可以表达组合逻辑不同的“果”;
板上自带的时钟,自然就能够提供时序逻辑和状态转换的根本驱动力。
因此,针对数字电路/数字逻辑乃至数字系统的教学实验,几个按键 + 几个LED + 时钟的组合就已经足够。更多的功能比如视频、网络、USB等等对于数电这门课程的作用也只是锦上添花,并不是必须,多数情况是为了让板子看起来更值钱。
3 抛开那些花里胡哨,花钱买头晕的外设之外,选用FPGA学习平台最重要的因素是什么呢? 那自然是:
人人都能一学就会 - 毕竟它只是个加强理论理解的实验工具,学生应该把90%的精力用在用它体验、验证书本上的逻辑知识上,而不应该花大量的时间来琢磨该工具自身如何用起来(很多开发板的工具即便带实验的老师也都搞不定,学生自然也就用不起来),不用专门学习就能使用,能10分钟跟着一个例子就能上手那是最好了,就像三轮车,踏上去就能骑着走,走几步就能心中无车,只有目的地;
人人都能随时、随地使用 - 传统的EDA实验,需要同学们在被安排的时间点要专门去实验室使用,还要小心翼翼地打开箱子、按照说明手册一步一步上电、开机,像伺候宝贝一样不敢轻易触碰(毕竟是价值上千块钱、传说中只有大神才能真正学会的“设备”,这种距离感很难让学生能够喜欢上它、跟它亲密接触,而好的实践平台就应该像书包里的笔和纸,随时拿出来试一下、体验一下,只有这样,它才会在无形中成为你学习的最佳帮手,尤其是疫情的影响,这个大家都懂的;
人人都能用得起 - 很多开发板很贵,因为板上集成了太多根本用不着、或者说用起来也不知道有啥意义的功能,要让每一位学习数字电路的同学都有机会随时、随地使用,那就必须是非常低廉的价格。
除了上述的三要素,还有一点非常重要 - 必须有丰富的实验参考案例,毕竟有限的课时,要绕通那么多烧脑的概念,而书本上的理论基本上还都停留在用一个个“门”搭建电路的原始阶段,如何跟我们日常习惯的高级逻辑思维方式相通,那就需要一系列的参考案例,门电路构成和Verilog描述相对照,让同学们体会用不同方式可以实现同样的功能,以及它们之间的差异。
有没有这样的平台?有,小脚丫FPGA团队最新推出的一款新产品StepFPGA - U,就专为数电而生,先通过一个5分钟的案例视频(实践数电书本上的2-4译码器),体验一下使用小脚丫FPGA的编程的过程.
视频中使用的是我们新版本的Web IDE,只需要一个浏览器,一个注册好的账号,一切都在云端搞定!无论你用的是Windows、Mac OS还是Linux,即便你使用iPad或手机,都可以在浏览器里使用。
省去了下载20GB软件的烦恼,省去了安装License的烦恼,省去了因为某种插件导致的兼容性的问题,老师们再也不用为帮着解决同学们遇到的各种问题而头疼了。
有同学会问,如何配置FPGA?会不会依然会遇到兼容性的问题?电脑找不到FPGA板。
这个烦恼从此也不再出现,因为我们新版的小脚丫核心板Step FPGA-U插到电脑的USB端口上就是一个虚拟的U盘,你只要将生成的jed文件拖到这个U盘里就可以了。
不需要安装任何驱动程序!
U盘的兼容性对所有的电脑、所有的操作系统都是最鲁棒的,只要你的电脑能识别标准的U盘,我们的小脚丫FPGA就能识别,
就这么简单!
新版本的StepFPGA - U还有两个备受欢迎的小改进:
USB接口更换成了USB Type-C接口,不用再为找不到带数据的USB线烦恼,USB Type C正反两面都可以,非常方便;
一个USB端口既用于FPGA的配置,同时还可以用于UART的通信,其它的FPGA开发板上要支持UART通信需要增加接口芯片的成本,并多一个USB连接器
想尝试一下?访问www.stepfpga.com首页(或点击“阅读原文”),用手机注册一个账号,登录进去即可体验。
在该Web IDE中包含了一些数字电路中常用的“示例项目”源代码,供同学们在学习Verilog编程、FPGA使用的过程中参考。
另外在www.stepfpga.com/doc的“知识库”栏目里,是我们构建了若干年的案例库(学习FPGA的宝藏)以及与FPGA学习/使用相关的技术文档,不仅涵盖了高校数电课程里所有的案例,还有很多综合性的项目,完全开源,且持续不断完善中。
还觉得学习“数电”难么?
Not anymore!
过往与数字电路学习相关的文章:
浅谈“数字电路”的学习(1)- 我们身处的“数字逻辑”世界
浅谈“数字电路”的学习(2)- 在兴趣和体验中高效学习