目前体系结构方向研究生在读。我的本科毕设大致就是如此:
在FPGA上用Chisel写了一个RISC-V RV32IMA的五级流水线CPU,带分支预测/I$/D$/MMU,支持M/S/U-mode,可综合,还做了个简单的SoC
自己设计了一门系统编程语言,带各种“高级语法特性”(其实全是语法糖),用C++和LLVM实现了它的编译器
之后用这个编程语言写了个能跑在SoC上的玩具操作系统(虽然最后跑在FPGA上的时候发现硬件部分有一些bug导致有一定概率崩掉,就嗯拖,现在也没修完(逃
还写了一系列裸机程序——比如俄罗斯方块、幻灯片放映程序之类
我毕设答辩就是用自己搞的这套东西播放的幻灯片。
事情可能得从更早的时候说起:
高中前我就会使用VB6开发一些桌面程序。高中的时候希望在自己的程序中添加“插件”或者“脚本”功能,于是开始研究脚本语言,进而得知还有“高级语言虚拟机”这种东西。后来看了 @韦易笑 大大的这篇回答决定自己写一个VM,于是接受建议看了几眼ARM的指令手册(巨长无比,当然不可能看得完)。16年的时候在知乎疯狂看 @RednaxelaFX R大的各种回答,乐此不疲。
上了大学,我决定造一些和编程语言/VM/编译器的轮子。先凭之前对ARM和x86的印象随便设计了一些字节码,然后写了个VM。后来设计了个编程语言,跟着LLVM的Kaleidoscope教程写了个简单的编译器前端,自由发挥搞了个SSA IR(但现在看来其中有很多问题),试图做一个到VM字节码的编译器。不过因为当时还很菜,搞到最后实在进行不下去了,遂烂尾。
到上大二之前的一段时间内,我认为自己只适合搞搞编译这类软件的东西。大二接触了数电、数逻、计组等课程,不得不去用Vivado搞一些能跑在FPGA上的玩意。于是数电大作业做了个FPGA上的Flappy Bird游戏,大概长这样,鸟和管子都是方块:
当时的数电课程给同学们提供的指导非常少,只有一些板卡的手册,Verilog相关的内容基本没提。不过我还是在连阻塞/非阻塞赋值都没太搞明白的情况下,和组员们一起硬着头皮写完了这个作业(这样不好,小孩子不要学),给老师留下了深刻印象。
后来数字逻辑课大作业做了个8-bit的单周期CPU,自己设计了指令系统,使得这个CPU是图灵完备的。为了展示CPU的功能,我还在外面加了个简单的显示控制器,负责把CPU连着的某个地址空间的内存输出到VGA。于是这个CPU可以画一些图形:
再然后数逻老师找到我,说有个比赛叫“龙芯杯”,就是那种很硬核的,要求参赛选手组队造一个MIPS CPU,然后还得在上面跑操作系统的比赛。老师问我要不要参加,我觉得这我搞不了啊,我一个搞编译的,怎么到CPU比赛来了呢?不过思考过后,我当时和老师说,我可以参赛,但可能只负责软件部分,硬件的内容让其他同学来完成吧。
后来在学校待了一暑假打比赛,之前报名的十来个同学走得七七八八,算上我就剩四个人了。我一看,这特喵和说好的不一样啊!于是只能自己随便糊一个CPU了。好在初赛截止之前把所有功能测试都跑过了,性能测试也有成绩,后来顺利和队友苟进决赛,决赛在上面移植了一个μC/OS,最终拿了个三等奖。当时的CPU项目:
不过有一说一,龙芯杯里的巨佬太多了,当时去参赛的时候我就感到了阵阵威压,气氛有点悲凉肃杀,我被按在地上疯狂摩擦,最后只能哭爹喊妈。题主如果想认识其他在FPGA上跑操作系统的巨佬,不妨去关注一下这个比赛。
大三的时候学了更多的专业必修和选修课,像是操作系统、编译原理之类。我保持一贯的传统,在所有的大作业上疯狂整活。比如:
诸如此类。
大四要做毕设的时候决定整一波大的,于是提前联系好老师,从CPU开始,到编译器,再到操作系统,做了一个完整的计算机系统出来。当时是2020年,疫情原因只能闷在家里,不过这反倒让我更能专注在造轮子这件事上了。后来我就做出了文章开头的那些项目。
最后,要做到这些需要掌握什么知识?
我觉得相比知识,兴趣、决心和耐心才是最重要的。有了兴趣,你就会自己尝试去网上了解相关知识。现在网上的教程一搜一大把,如果你真的能静下心来跟着做的话,你最后总能做出一点成果的。有了决心,你就会真的去动手实践,而不是幻想这些东西有多好做,或者有多难做,迟迟不肯动手。有了耐心,你就会在遇到bug和其他困难的时候用心思考,接着着手去解决他们,而不是半途而废,最后留下遗憾。
其次,在本科课程的大作业里多整点狠活。这是为数不多可以将你的“疯狂”想法付诸实践的机会,并且如果做得好的话,这门课的成绩至少不会差,而且还会让老师们记住你。老师们一旦记住你,他们就可能会给你提供更多施展自己的机会,比如拉你参加比赛,拉你进实验室,甚至是介绍实习和工作。
祝题主最后也能成为那个在自己的CPU上,跑自己的OS的人。
这次舆论的重点在于警察到底是多久赶到的。
没拜码头,收保护费,打砸门面这种原因我们都知道,也不怕;
但是公权力私用或者黑白勾结这种事,就会让人非常害怕;
如果西安公权力真的黑白勾结,还睁眼说瞎话,那就需要处理整顿了。
我朝的治安也不是一直这么好的,人民也不是软弱无比的,60年代西安打的也很凶的。难不成西安各公司以后都要雇佣保安公司保护经营?
这次出警距离1公里,走路10分钟都到了,所以就坐等这次真实的出警时间是多少了。