BUAA计算机组成学习记录

计算机组成 debug小记录

logisim

  1. 贴着电路元件的“垃圾线”(比如两个输入端口之间的)
  2. compare元件:一般会使用unsigned属性,否则会出现问题。

问题思路

logisim

  1. 如何优雅地为计算器赋初值->常数+多路选择器组合。判断键位可以

真正的计算很简单,但还有一个棘手的问题,就是如何优雅地为寄存器赋初值。考虑到电路的应用性,我们不应当每次手动为寄存器赋值为1,因此需要考虑设计一种机制,让第一个时钟周期给prev寄存器赋值为1,now寄存器赋值为0,而在后面的时钟周期根据上面一段叙述的逻辑改变两者的值。

在此处我采用的解决办法是使用一个1位计数器,并设置计数器达到上限后"stay at value",保持最大值不变(具体设置方法如下图),这样一来该计数器只有第一个时钟周期输出0,后面一直输出1,而此时将其输出作为选择信号接入多路选择器,就实现了prev寄存器第一个周期赋初值,后面的周期赋值为now。而对于now寄存器,第一个周期now和prev之和本身就是0,无需特殊处理。最终电路始终输出now的值即可。

或者,时钟+**计数器计数/compare 0 **+与非门

你可能感兴趣的:(程序人生)