多周期CPU设计

来源:互联网 发布:落樱神斧华盛顿知乎 编辑:程序博客网 时间:2024/04/30 07:34

指令集和单周期的CPU设计一样,在这里就不列出来了,给出对应的链接:16位单周期CPU设计

架构图

根据指令集的操作数选取情况我将所有指令集分为8类:
1、JUMP,Branch
JUMP: Instr[7:0]
Branch:reg[10:8] + instr[7:0]
2、STORE, LOAD
LOAD: mem[instr[7:4]]+instr[3:0] -> reg[instr[10:8]]
STORE:reg[instr[10:8]] -> mem[instr[7:4]]+instr[3:0]
3、ADDI, SUBI,LDIH……
ADDI: reg[10:8] + instr[7:0] -> reg[instr[10:8]]
4、SLL,ADD……
SLL: reg[7:4] << instr[3:0] -> reg[instr[10:8]]
ADD: reg[7:4] + reg[2:0] -> reg[instr[10:8]]
5、HALT -> Do Nothing
因此有了以下状态图


MulticycleMIPS基本上就是在单周期CPU的基础上,加上几个clk将组合逻辑改为时序逻辑,当然还需要某些下的元器件的变化,例如PCwrite的添加。

      对比单周期CPU,多周期CPU功耗增大了,资源也浪费了,但是多周期CPU并非一无是处,由于增加了多个CLK,最长路径缩短了,适用频率得到了改善,可以用于频率要求较高的情况下。

具体设计可以参照单周期CPU的设计,大同小异,在这里就不列出来了


0 0
原创粉丝点击