第五期总结 大家一起从零开始作矿机
第五期又结束了,这里作个小小的总结。
这期课前备课的时候恰逢以比特币为代表的ICO集体价格跳水。当时想区块链热稍微会冷点,这个时候认真带大家沉到最底下学习一下区块链中的加密技术也是挺有意义的一件事情。于是和老师商量好这次课我们和同学们一起学习作矿机。
矿机就是挖矿的机器。我们不是去买矿机开矿厂,我们是自己用FPGA来搭矿机。
在一个月的时间里,这批学生从零开始学习VHDL,FPGA,区块链,比特币,SHA-256算法以及ARM编程,基本实现了矿机中最核心的运算部分即SHA-256算法的硬件加速器。
MadScientist
按照常规教学方式,这样的学习量需要很长的时间才能完成。与传统教学方式不同,我们一个月的课程可以让学生对VHDL,FPGA,区块链,比特币,SHA-256算法以及ARM编程有基本的了解,并且亲自动手,利用网络资源一起在DE1-SoC FPGA开发板生搭建出SHA-256的硬件加速器。
我们课程的原则就是严格遵循系统思维,learn by doing每个学生上手在实践中学习,强调项目化管理和团队协作。
不要在名字上纠结太久
系统思维
系统思维让学生明白自己在做什么,为什么要这么做,应该怎么做。
我们首先是保证学生在做正确的事,即学生对自己要做的事情有清楚的理解,然后引导学生对复杂的系统进行划分,然后借助Altera提供的FPGA开发套件以及IP,参考网络资源如Github工程来完成矿机的核心功能的搭建。
我们这次课的第一节是区块链和比特比的介绍,让大家明白区块链是什么,比特币是什么,实现比特币矿机的难点是什么。通过学习学生明白了比特币的原理以及比特币运算中最消耗算力的部分是什么,也就明白我们这期课的重点为什么是SHA-256算法的FPGA加速实现。
第二节课我们从需求开始分析为了实现SHA-256的硬件加速,我们需要什么样的系统需求,需要什么样的硬件需求,什么样的软件需求,软件和硬件如何交互。通过这样自顶向下的系统划分同学们更容易理解模块功能,模块接口。
在上一节课的基础上,第三节课我们对系统的架构进行了若干调整,使得系统实现更方便,同时添加了若干新的模块对,同时对所有模块之间的信号连接进行了进一步确认。
三节课的设计遵从了系统过程的理念,自顶向下,在了解所有模块细节的同时又不会丢失对全局的理解。
hello
learn by doing
这期课对学生是很大的挑战,课程中必须用到的知识如区块链,比特币,VHDL语言,ARM编程,FPGA开发,SHA-256算法等对学生都完全是陌生的,同时也是很多学生第一次接触项目执行和项目管理。
怎么样可以让学生在一个月的时间里利用他们完全陌生的东西搭建出一个矿机,同时又能学到知识和技能?答案就是Learn by doing。
我们要求每个学生都要上手去尝试,只有真正将用户手册中的示例亲自在FPGA开发板上走一遍才会明白其中的知识点是什么,需要的技能是什么。只有在各种尝试中遇到各种坑并成功地从坑里面爬出来才能真正学会。
与公司的产品开发不同,这门课的目的是学习。所以学生有试错的机会。他们可以尝试完全不同的实现,在摸索和碰壁中找到自己的方向。
充分利用网络资源也是一个重要的成功因素。Github提供了很多不同的实现,如何选择Github上的代码并加以修改为我所用是一个很好的学习过程。这样既站在前人的肩膀上,加快了开发的过程,有开拓了思路。
天天采矿
项目化管理和团队协作
我们的课程采用了项目执行的方式进行。所有学生分为10个组,每个组有项目经理。
项目经理负责分配任务,监督任务的完成情况并提交周报。每个项目组必须有周会等沟通方式。
可以看到这次课最后完成度最高的组都是团队配合最好的组。
通过这种设计来鼓励小组内部的分工配合,同时让学生提前体会项目执行和项目管理,体会项目执行可能遇到的各种问题,为未来在真正项目中工作打下基础。通过这次课程同学们对团队合作的重要性有了新的认识,对团队合作中可能出现的问题以及对应的解决办法有了一定的认识。
通过短短一个月的学习有的团队已经形成了一定的默契,希望在以后的学习中这种默契可以帮助他们继续进步。
7 楼上九队快合并吧 霸王集团
我们第六期再见。