diff --git a/rtl/mips_cpu_pc.v b/rtl/mips_cpu_pc.v new file mode 100644 index 0000000..c2580a8 --- /dev/null +++ b/rtl/mips_cpu_pc.v @@ -0,0 +1,43 @@ +module ProgramCounter( + + input logic rst, + input logic clk, + + input logic[31:0] pcWriteAddr, + input logic pcWriteEn, + + output logic[31:0] pcRes, + + ); + + logic[31:0] pcIncr; + + initial begin + + pcRes <= 32'h00000000; + end + + always_comb begin + pcIncr = pcRes + 32'h00000004 + end + + always @(posedge clk) + begin + if (rst == 1) + begin + pcRes <= 32'h00000000; + end + else + begin + if (pcWriteEn == 1) begin + pcRes <= pcWriteAddr; + end + else begin + pcRes <= pcIncr; + end + end + + $display("pc = %h",pcRes); + end + +endmodule \ No newline at end of file