计组记录

计组记录

十二月 31, 2022

计组记录

你会看到什么

因为本人真的非常不擅长讲清楚一个知识点,所以这篇只是一个自我记录,不辜负辛辛苦苦学习计组的大半个学期,大概没有任何指导性作用。不过你还是可以通过本文了解北航的6系计组到底都让人干了点啥()

总览

pre

  1. logisim:简单的状态机
  2. verilog:简单的状态机(因为当时不太清楚mealy型状态机输出会早于moore型状态机,所以面向波形编程了orz)
  3. mips:求根(除了不能盲目列举之外没啥要注意的)

过了的时候真的很开心,不过事实是,我还是菜鸡))))

p0(logisim)

两道简单的状态机,一道斐波那契变形,最后一道题需要对logisim的时序部件比较熟悉

p1(verilog状态机)

难度和pre差不多

就是状态机

p2(mips)

首挂(泪目)

心态会有点崩溃的

反思出了几个问题:

  • 因为前三次都过了所以没有很重视计组,心态不太正确

  • 没有弄清楚for,while,do-while三种循环的区别(for和while是一样的)

    (本质其实是我c语言学得菜)

  • 递归的“保护寄存器的值”的本质那时候还不太了解

第二次解决了后两个问题,很顺利地写出了三道题

第三题是一道允许有括号的表达式计算(给了c语言代码)

p3 (logisim 单周期)

做课下的时候一次就过了三个测还很高兴

然后又被课上狠狠打击

反思出来的问题是:

  • 我其实不太了解logisim各个部件

  • 没有通读指令集(lw,lb,lh以及sw,sh,sb都只是模模糊糊地会用,其实并不精确)

    (这个问题在p6也背刺了我一下)

logisim部件

因为实在太心碎把自己关进了图书馆(本学期第一次去图书馆成就get)

p4(verilog单周期)

花了很长时间去了解verilog要怎么搭建电路

也花了很长时间debug

那个时候看觉得p4很难,花了一整个周末

从后来的眼光看,p4真的好简单

p5(verilog多周期)

从黑书上了解了多周期的基本原理

从大佬的博客qsgg的博客上学会了AT法

(从黑书的做法改成AT法没花很长时间)

从这个时候获取知识的方法就变成了各路大佬的博客

“无脑阻塞”之类的知识对我来说也是口口相传得来的

不太了解大佬都是从哪里学会的

过得很神奇(问答我的助教说是那道题测试点太弱了

p6(加了很多指令和乘除模块的verilog多周期)

做课下的时候不情不愿的,因为看起来工作量真的很大

但是结果倒是出奇地顺利

debug基本上只de了一个sb

过得依然很神奇,课上tle没过,但是助教复核的时候给过了

指令是shl:交换hi寄存器和lo寄存器的值

更神奇的是上机上到四分之三被救护车拉去了方舱

新冠初体验

后记

其实过了p6之后还有两周上机,如果愿意的话可以挑战p7和p8,但是我全gap了(复习了概统还有其他一学期没学过的东西)

没有挑战p7有一点点遗憾

想的就是:过了p6已经能拿一个我可以接受的分数了

希望能成为更加勇敢的人