二进制微代码表是微程序设计中用于实现微指令功能的关键工具,其核心作用是将微程序流程图中的控制逻辑转化为具体的硬件控制信号。以下是二进制微代码表的使用方法和注意事项:
一、基本构成与格式
表头定义
通常包含微指令地址(如S3~CN)、操作码位(如RD、M17M16)、控制信号位(如A、B、P)等字段,用于标识微指令的操作类型和执行条件。
编码规则
- 每条微指令对应唯一的二进制代码,例如:
- 地址字段:指定微指令在微程序存储器中的位置
- 操作码位:决定执行的具体操作(如取指令、存取数据等)
- 控制信号位:设置相关控制线路的状态(如读/写使能、地址选择等)
二、使用步骤
微程序设计阶段
根据硬件设计需求,将微程序流程图转化为二进制微代码表。例如:
- 取指令微指令的测试字段设为P1,控制信号位配置为特定值以激活该指令
- 存储器读操作需设置RD信号为高电平,M17M16为低电平
硬件实现
- 将微代码表中的二进制代码映射到硬件电路中,通常通过组合逻辑实现。例如:
- 使用D触发器实现地址译码器,根据微指令地址选择对应的控制信号
- 通过译码器输出控制信号至数据通路和控制单元
测试与验证
- 通过手动输入测试向量(如特定地址组合)验证微代码表的功能。例如:
- 输入地址16进制0001触发取指令微指令,观察控制信号变化是否正确
三、注意事项
地址映射
确保微指令地址与微程序存储器中的物理位置一致,避免因地址错误导致程序崩溃。
时序控制
微代码表中的控制信号需满足硬件时序要求,避免信号冲突或时序违规。例如:
- 读操作需在时钟上升沿触发,写操作需在时钟下降沿有效
扩展性设计
若需增加新指令,需在微代码表中添加新行,并更新相关控制逻辑。例如:
- 添加乘法指令需在微代码表中定义新操作码位及控制信号组合
四、示例应用
以取指令微指令为例,假设其微代码表如下:
| 地址 | 操作码 | RD | M17M16 | A | B | P |
|------|--------|----|--------|---|---|---|
| 0001 | 取指令 | 1 | 00 | 0 | 0 | 1 |
当微程序执行到该指令时:
地址寄存器值0001被送到地址译码器
RD信号置高,触发取指令操作
M17M16清零,禁止其他指令执行
控制信号A、B、P按微程序逻辑置位,激活后续操作
通过以上步骤,二进制微代码表将高级控制逻辑转化为硬件可执行的控制信号,是微程序设计的核心实现手段。