些寄存器之间的“迁移”,也即寄存器内容的迁移。微处理器的功能就是体现在这些这些数据是如何传递的,在传递前的处理是如何处理的,所有这一系列寄存器数据之间的迁移转换就组成了微处理器。243CPU结构的层次划分正确合理的划分系统是所有数字系统设计成功的关键。子系统的划分过程就是把总体任务划分程若干分任务的过程。本设计将CPU分解为两大子系统:数据通路和控制通路。这种划分将CPU的运算、执行单元与控制部件分离开,是非常合理、自然的。数据通路和控制通路这两大部分又可以细化为更小的模块,ALU模块(算术逻辑单元)、PC_RAM模块(程序存储器)和IR(指令寄存器)、TRAM(寄存器堆)属于数据通路部分,ALU内部又包含更小的模块(加、减、与、或、移位模块);控制模块属于控制通路部分,其中控制模块又由FSM(状态机)和CONTROL(控制器)构成。具体的模块功能实现将在下面两章中详细介绍。
f第三章
CPU数据通路设计
从这一章开始将详细介绍整个CPU的细化设计模块。通过上一章对CPU的结构划分,已经知道CPU的整个设计分为两个部分:数据通路和控制单元。在这一章中将细分数据通路模块,数据通路是CPU中的执行部件,数据传输、存储、处理都是在数据通路中完成的。在整个CPU的结构框图中,除了控制单元部分,其余部分都是数据通路部分,包括程序计数器PC、程序存储器PC_RAM、指令寄存器IR、寄存器堆TRAM、数据选择器ALUMUX和算术与逻辑单元ALU。设计数据通路,有两种不同的设计方案。第一种是在所有需要传送数据的部件创建一条直接通路,采用多路选择器或者缓冲器为那些有多个数据源的寄存器从多个可能的输入中选择一个,这种方案适用于规模比较小的微处理器设
f计。另一种方案是在微处理器内部创建一条总线,并且在各个部件之间使用总线传数据。本设计采用的是第一种方案的设计方法。下面将一一介绍数据通路的各个模块功能及其实现。
31程序计数器模块PC
程序计数器PC作为指向指令地址“指针”,决定着下一条要执行的指令。正是有了PC的移动和变化,CPU才能按一定的顺序或预想的情况进行指令的执行。程序计数器PC中存放指令存储器的地址,当一条指令被执行时,程序计数器存放下一条指令的地址。在正常工作的条件下,控制信号选择PC1作为下一个PC的值输出;当执行JMP指令时,选择来自指令中的跳转地址决定新的PC值,但是在本次设计中没有涉及到。
图31PC模块外部接口信号
图31所示是从外部看的PC模块的接口。其中输出r