需要为学校设计一个简单的。更具体地说,是摩尔 FSM。我不确定状态转换是如何发生的,是每个时钟的下一个状态吗?我需要知道,因为我想知道我是否可以移动一个寄存器并向它添加一个值,所有这些都处于相同的状态......可以使用波边吗?
编辑:
我必须设计带有寄存器的ALU部分作为门级的示意图,所以没有目标CPU。
我制作了算法图,然后根据Moore FSM规则将状态放入功能块。每个操作块都有一个状态。
例如在状态S1,我有以下操作:y0 = shift Reg1 left; y1 = Reg1 = Reg1 + Reg2。所以Moore FSM的控制部分输出的微指令为0000011 (yn...y1,y0)。这个微命令应该是我需要设计的 ALU 部分的输入。现在我意识到y1,y0会相互冲突,因为两者都使用Reg1。
它有问题,因为我实际上没有控制部分,我必须想象核心 FSM 并只设计带有寄存器的 ALU。这就是为什么我想知道我是否得到了多个时钟周期,所以我可以对y0,y1进行排序,还是我必须在一个时钟内完成整个操作?
我打算做并行进并行出非移位寄存器,显然我不能同时做微命令的两个操作。那我该怎么办:
1. make extra states? which i really dont want to do
2.use edges of a single clock? (might cause problems?)
3.Assume i get a preset amount of ticks from the clock to complete the microcommand ?
This would make the most sense, but i dont know if its the case.
The control unit does "know" the algorithm and thus how many operations need to be performed
我必须再次注意,控制部分是完全抽象的,我不知道在实践中是如何处理的。