模型机CPU设计——PC寄存器(10)

时间:2024-04-01 13:14:17

PC寄存器
(1) 部件功能:
当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由RAM读取至指令寄存器IR中,此过程称为“取指令”,与此同时,PC中的地址自动加1。跳转指令如JMP、JZ、JC让程序跳转至指定地址去执行,这时PC需要装载跳转地址。

(2) 接口设计:

模型机CPU设计——PC寄存器(10)
输入:
Ld_pc: 加载pc控制信号
In_pc: pc加一控制信号
Clk:时钟信号
A[7…0]数据输入端口
输出:
C[7…0]:地址对外输出
RTL视图

模型机CPU设计——PC寄存器(10)
(3) 功能实现:
在时钟下降沿进行判断:
如果in_pc=1 ld_pc=0,进行pc加一操作,pc<=pc+1;
如果ld_pc=1,in_pc=1,进行地址载入,pc<=address;
其他情况不进行操作
VHDL设计:

模型机CPU设计——PC寄存器(10)
(4)功能仿真验证:

模型机CPU设计——PC寄存器(10)
仿真结果:
时钟为1ns: in_pc=1,ld_pc=0,pc+1,时钟下降沿输出c=00000001
时钟为3ns:in_pc=1,ld_pc=0,pc+1,时钟下降沿输出c=00000010
时钟为5ns:in_pc=1,ld_pc=0,pc+1,时钟下降沿输出c=00000011
时钟为7ns:in_pc=1,ld_pc=0,pc+1,时钟下降沿输出c=00000100
时钟为8ns:in_pc=0,ld_pc=1,载入pc,输入a=11111111时钟下降沿输出c=11111111
结论:仿真结果符合功能要求,设计成功