课上总结
第一题是建一个 Mealy 状态机。 已经摆渡车有两条路线,可以在某一个站换乘,状态机需要输出下一个位置:
- line0:
00 -> 11 -> 01 -> 10 -> 00
- line1:
01 -> 10 -> 11 -> 01
第二题是一个简单组合电路。输入三个数字计算和,如果第三个数字为 0 则结果为 0。
第三题是稍微复杂一些的组合电路(计算 md5 加密,需要用 bitfinder),题目表述分为 3 步: 1. 输入一个 32 位的串,由前置 0 + 串 10101 + 需要处理的串 u
三部分拼接而成(串 u
的长度小于等于 27) 2. 若串的长度小于 27 位,则在后面补 1000… 直至达到 27 位 3. 结果为补全后的串 u'
加上串 u
的长度
第一次的题目应该不算难,但是不知是什么原因没做出来第一题,可能我平时对状态机也不是很对付。总之还是勉强过了 P0(前一天还用了 2 小时专门复习,结果还是这样,导致心情极差)。
第三题需要找一个 32 位二进制数中第一次出现 10101
的位置,一开始以为是类似于 GRF 一样的题目,建了一半发现可以用 bit finder 做(但是好像也有爷爷用倍增找,太牛了)。
多谢助教出了两个组合电路救我狗命,希望下周 Verilog 不要再翻车了,回去一定好好看计组(悲)。
总结:
- 考试快结束了不要慌,特别是应用题,多猜出题人的想法
- 课下多熟悉 Logisim 左边冷门组件的用法,关键时刻说不定可以救命
课下总结
状态机类型
Mealy
Moore
reset 信号
- 异步清 0:reset 信号接寄存器和 counter,输出信号接 MUX 后面
- 同步清 0:reset 信号接 counter,输出信号接 MUX 前面
易错点
- splitter 高低位分清
- 状态机使用独热码