PC 寄存器用于存放指令的地址。
在 CPU 启动时,会进行初始化,即设置当前地址为 0 。
使用了32个类型为D_FFEC的D触发器来实现一个32位的通用寄存器,寄存器的值的变化只可能发生在时钟周期的上升沿,并且输入使能信号En,清零信号Clrn,时钟信号Clk.
module PC_REG(D, Clk, Clrn, Q);
input [31:0] D;
input Clk, Clrn;
output [31:0] Q;
wire [31:0] Qn;
D_FFEC32 d_ffec(D, Clk, 1, Clrn, Q, Qn);
endmodule
其中D_FFEC32为32位寄存器,其带有使能端。
module D_FFEC32(
D,
Clk,
En,
Clrn,
Q,
Qn
);
input wire[31:0] D;
input Clk , En , Clrn;
output wire[31:0] Q;
output wire[31:0]Qn;
D_FFEC d0 (D[0] , Clk , En , Clrn , Q[0] , Qn[0]);
D_FFEC d1 (D[1] , Clk , En , Clrn , Q[1] , Qn[1]);
……
D_FFEC d31 (D[31] , Clk , En , Clrn , Q[31] , Qn[31]);
endmodule