0412 -- 不要被困难吓倒,逐步解决问题,保持耐心。
前言
要做一个支持40条 MIPS 指令的CPU
我是用 vivado 进行模拟的
原本想着,分解成组件,然后一个个解决。
实际进展
我的确分成一个个组件来慢慢完成了,一开始进展还不错。
但是到时序逻辑这里,我有点自我怀疑。
我考虑到单周期CPU,能否处理如 add a0,a0,a0 这样的指令。并保证不发生,同时读取和写入某个寄存器位置,导致结果错乱的问题。
我开始各种找资料,来验证自己的猜想。找视频,看别人的写法。
我看了视频,看着人家做的那么熟练,我甚至都有点绝望了。
人家那么熟练,都得做2小时以上,我不得做一天吗?
而且还有很多的冒险问题,我会提前想到,这些把我困住了。
而且我发现,他这么熟练了,在整合小组件的时候,仍然问题多多。
因为CPU涉及到的信号太多了。
我意识到:
即使分解了问题,每个小问题也仍然有千丝万缕的联系。要想正确的吧这些小组件整合成为一个完整的项目,仍然有很多困难。
我想到自己要实现40条指令,肯定是更复杂的,那么我还能做完吗?我一想到这里,都害怕的想要放弃了。
转念想想
我觉得吧,要想做好一件事,不能就在内心里把困难放大化。
其实数据冒险、组合逻辑冒险,也只是很少出现的问题。现阶段要做的,应该是先搭建一个很垃圾,但是勉强可以用的框架。
然后后面再慢慢的优化,一点点的推进,徐徐图之。
而不是希望一次性解决所有问题,如果解决不了,就摆烂放弃。
自我实现的预言
如果我能做好这个单周期CPU,哪怕只实现了 lw,sw,add,sub,j,beq 这些简单的,我也会奖励自己,奖励自己带着狗狗下去玩一会儿。踢踢足球。

浙公网安备 33010602011771号