emu: add reset

This commit is contained in:
Zihao Yu 2022-02-20 11:02:11 +08:00
parent 999d905e99
commit 2cb2efbb07
2 changed files with 18 additions and 6 deletions

View File

@ -1,6 +1,5 @@
#include <nvboard.h>
#include <Vtop.h>
#include <vga.h>
static TOP_NAME dut;
@ -9,12 +8,24 @@ void nvboard_quit();
void nvboard_update();
void nvboard_bind_all_pins(Vtop* top);
int main() {
static void single_cycle() {
dut.clk = 0; dut.eval();
dut.clk = 1; dut.eval();
}
static void reset(int n) {
dut.rst = 1;
while (n -- > 0) single_cycle();
dut.rst = 0;
}
int main() {
nvboard_bind_all_pins(&dut);
nvboard_init();
while(1){
reset(10);
while(1) {
nvboard_update();
dut.clk = !dut.clk;
dut.eval();

View File

@ -1,5 +1,6 @@
module top (
input clk,
input rst,
input [7:0] sw,
input ps2_clk,
input ps2_data,
@ -35,7 +36,7 @@ wire [23:0] vga_data;
vga_ctrl my_vga_ctrl(
.pclk(clk),
.reset(1'b0),
.reset(rst),
.vga_data(vga_data),
.h_addr(h_addr),
.v_addr(v_addr),
@ -49,14 +50,14 @@ vga_ctrl my_vga_ctrl(
ps2_keyboard my_keyboard(
.clk(clk),
.resetn(1),
.resetn(~rst),
.ps2_clk(ps2_clk),
.ps2_data(ps2_data)
);
seg mu_seg(
.clk(clk),
.rst(0),
.rst(rst),
.o_seg0(seg0),
.o_seg1(seg1),
.o_seg2(seg2),