prepare for refresh rate emulation

This commit is contained in:
nino-porcino 2022-01-08 12:28:06 +01:00
parent c3e75e4859
commit 6526b236e3
2 changed files with 16 additions and 10 deletions

View File

@ -552,7 +552,7 @@ clock clock(
.reset ( reset_button ), // input: reset signal
.cpu_clock ( cpu_clock ),
.cpu_clken ( cpu_clken ), // output: cpu clock enable
.cpu_clken ( cpu_clken ), // output: cpu clock enable (phi2)
.pixel_clken( pixel_clken ) // output: pixel clock enable
);

View File

@ -10,30 +10,36 @@ module clock
output cpu_clock
);
localparam CPU_DIVISOR = 56; // (sys_clock / CPU_DIVISOR) = 1 MHz
localparam PIXEL_DIVISOR = 8; // (sys_clock / PIXEL_DIVISOR) = 7 MHz
localparam CPU_DIVISOR = 56; // (sys_clock / CPU_DIVISOR) = 1 MHz
localparam PIXEL_DIVISOR = 8; // (sys_clock / PIXEL_DIVISOR) = 7 MHz
localparam REFRESH_DIVISOR = 65; //
reg [5:0] counter_cpu;
reg [2:0] counter_pixel;
reg [7:0] counter_refresh;
always @(posedge sys_clock or posedge reset)
begin
if(reset) begin
counter_cpu <= 0;
counter_pixel <= 0;
counter_cpu <= 0;
counter_pixel <= 0;
counter_refresh <= 0;
end
else begin
if (counter_cpu == (CPU_DIVISOR-1)) counter_cpu <= 0;
else counter_cpu <= counter_cpu + 1;
if (counter_cpu == (CPU_DIVISOR-1)) begin
counter_cpu <= 0;
counter_refresh <= (counter_refresh == REFRESH_DIVISOR-1) ? 0 : counter_refresh + 1;
end
else
counter_cpu <= counter_cpu + 1;
if (counter_pixel == (PIXEL_DIVISOR-1)) counter_pixel <= 0;
else counter_pixel <= counter_pixel + 1;
counter_pixel <= (counter_pixel == PIXEL_DIVISOR-1) ? 0 : counter_pixel + 1;
end
end
assign cpu_clken = counter_cpu == 0;
assign cpu_clken = counter_cpu == 0 /*&& counter_refresh > 3*/;
assign pixel_clken = counter_pixel == 0;
assign cpu_clock = counter_pixel < 4 ? 1 : 0;