yayacemu/chip8.sv.bak
2024-04-07 23:39:15 -05:00

59 lines
1,012 B
Systemverilog

module chip8 (
input wire clk_in,
input wire rst_in,
output logic lcd_clk,
output logic lcd_data,
output logic [5:0] led
);
bit [7:0] vram[0:1023];
bit [7:0] memory[0:4095];
bit keyboard[15:0];
bit [7:0] sound_timer;
bit [15:0] program_counter;
int cycle_counter;
bit rom_ready;
bit font_ready;
bit system_ready;
bit halt;
bit [7:0] random_number;
and(system_ready, rom_ready, font_ready);
cpu cpu (
system_ready,
memory,
clk_in,
keyboard,
random_number,
cycle_counter,
program_counter,
vram,
sound_timer
);
st7920_serial_driver gpu (clk_in, 1'b1, vram, lcd_clk, lcd_data, led);
rng randy (
clk_in,
program_counter,
keyboard,
cycle_counter,
random_number
);
initial begin
if (~font_ready) begin
$readmemh("fontset.bin", memory, 0);
$readmemb("rom.bin", memory, 'h200);
font_ready = 1;
rom_ready = 1;
end
end
endmodule