|
楼主 |
发表于 2014-1-10 15:44:46
|
显示全部楼层
*******************************************
Multipleksers (多路复用器)
总线管理是基于多路复用器的,他们的主要特点是选择输入信号并转换成相应的输出信号。输入信号来自oc8051_decoder (译码)模块的八位宽的信号。
1、oc8051_alu_src1_sel
This module is used to choose first ALU operand. There are immediate operand, accumulator, data from intrernal memory or data from external memory available.
这个模块用来选择第一个ALU操作数。他们来自立即操作数,ACC,有效的内部空间数据或外部空间数据。 //根据src3更改
2、oc8051_alu_src2_sel
This module is used to choose second ALU operand. There are immediate operand, accumulator, data from both memories (internal, external) or zero available.
这个模块用来选择第二个ALU操作数。他们来自立即操作数,ACC,有效的内部空间数据或外部空间数据或者零。
3、oc8051_alu_src3_sel
This module is used to choose third ALU operand: from program counter or from DPTR.
这个模块用来选择第三个ALU操作数。他们来自程序计数器或者DPTR。
4、oc8051_cy_select
With this module we choose which carry will be sent to ALU: from PSW, bit data from memory, zero or one.
选择把以下哪里的进位送给ALU,
1、来自PSW
2、来自空间的位数据;
3、0
4、1
5、oc8051_ext_addr_sel
Used for choosing address for external memory: R0 or R1 (same as indirect addressing) or DPTR.
选择外部空间地址:R0或R1 (等同于间接寻址) 或者 DPTR。
6、oc8051_immediate_sel
Selection of immediate operand. There are two outputs, for first and second ALU operand. We can choose between PC, second or third instruction byte.
选择立即操作数。有两个输出,一个用作第一个ALU操作数,另一个用作第二个ALU操作数。可以在PC (程序计数器),第二个或第三个指令字节之中选择。
7、oc8051_ram_rd_sel
Selection of read address: register (R0-R7), indirect address, stack or direct address. When we address registers there are only five bits used (upper three are always zero).
选择读地址:
1、寄存器(R0-R7);
2、间接地址;
3、堆栈;
4、直接地址。
当选择地址寄存器时,只有五个位的数值被使用(前三个位的数值总是零)。
8、oc8051_ram_wr_sel
Selection of write address: register (R0-R7), indirect address, stack, direct address, accumulator, DPTR or B register.
选择写地址:
1、寄存器(R0-R7);
2、间接地址;
3、堆栈;
4、直接地址;
5、DPTR;
6、B寄存器。
9、oc8051_rom_addr_sel
Selection of Program Memory address: PC or DPTR (only at MOVC instruction).
选择程序空间地址:
1、PC;
2、DPRT (只在MOVC指令下有效)。
**********************************************************
这类用来选择的模块有9个,功能也好理解。
接下来介绍指令执行过程。 |
|