【嵌入式学习】计算机自动运行小组件
目录
## 查找表
## 自动执行计算机
## 按照执行流程编写查找表数据
LOAD_A:OPCODE为0000
LOAD_B:OPCODE为0001
ADD: OPCODE为0010
STORE: OPCODE为0011
## 如何确定查找表的输入输出位数
## 给每一个执行步骤前加上取指操作,将数据填入查找表
## 查找表
自定义不同的输入输出的数据
如输入为0时,输出5;输入为1时,输出8
修改数据位数,可以通过少量开关控制大量的开关数据
## 自动执行计算机
添加计算机执行单元,使其按照顺序将相应的开关打开或者关闭
完整电路原理图:
## 按照执行流程编写查找表数据
由于各个指令的取指阶段全部相同,可以使用同一套编码
【相关阶段内容可查阅文章:【嵌入式学习】核心组件 - CPU总线架构 - 内部ALU -外部内存-CSDN博客】
LOAD_A:OPCODE为0000
【最后一条指令:为了对齐取指阶段需要用四条指令而补全的全零指令】
LOAD_B:OPCODE为0001
ADD: OPCODE为0010
STORE: OPCODE为0011
将以上四个阶段各个开关状态写成一个17位的数
最后在指令前补上ob表示二进制,再将空格部分全部删除即可
## 如何确定查找表的输入输出位数
①由于右侧有17个开关:确定输出位数位17
②由于任何一个操作码都对应8个操作步骤:确定输入数位为5的控制信号,4位确定操作码+1位确定操作步骤
## 给每一个执行步骤前加上取指操作,将数据填入查找表
## 操作码在哪里传入查询表
操作码从IR指令寄存器传入查询表,引入分裂器将操作码传入查询表
高两位:确定指令是哪一个
低三位:按顺序执行指令步骤【添加一个计数器自行加数】