User`s manual
345 ///////////////////////////////////////////////////////////////////////////////////////////////////
346 wire btn_up_clean, btn_down_clean, btn_left_clean, btn_right_clean;
347 wire btn_up_sw, btn_down_sw, btn_left_sw, btn_right_sw;
348 debounce btn_up_debounce(.reset(reset), .clock(clock_27mhz), .noisy(button_up), .clean(btn_up_clean));
349 debounce btn_down_debounce(.reset(reset), .clock(clock_27mhz), .noisy(button_down), .clean(btn_down_clean));
350 debounce btn_left_debounce(.reset(reset), .clock(clock_27mhz), .noisy(button_left), .clean(btn_left_clean));
351 debounce btn_right_debounce(.reset(reset), .clock(clock_27mhz), .noisy(button_right), .clean(btn_right_clean));
352 assign btn_up_sw = ~btn_up_clean;
353 assign btn_down_sw = ~btn_down_clean;
354 assign btn_left_sw = ~btn_left_clean;
355 assign btn_right_sw = ~btn_right_clean;
356
357
358 ///////////////////////////////////////////////////////////////////////////////////////////////////
359 // create switches
360 ///////////////////////////////////////////////////////////////////////////////////////////////////
361 wire override_sw;
362 wire[1:0] quad_corner_sw;
363 assign override_sw = switch[7];
364 assign quad_corner_sw = switch[1:0];
365
366 ///////////////////////////////////////////////////////////////////////////////////////////////////
367 // instantiate vga
368 ///////////////////////////////////////////////////////////////////////////////////////////////////
369 wire[9:0] hcount;
370 wire[9:0] vcount;
371 wire vsync, hsync, blank;
372 vga vga(.vclock(vga_clk),
373 .hcount(hcount),
374 .vcount(vcount),
375 .vsync(vsync),
376 .hsync(hsync),
377 .blank(blank));
378
379 reg old_btn_up, old_btn_down, old_btn_left, old_btn_right;
380 always @(posedge vsync) begin
381 old_btn_up <= btn_up_sw;
382 old_btn_down <= btn_down_sw;
383 old_btn_left <= btn_left_sw;
384 old_btn_right <= btn_right_sw;
385 end
386
387
388 ///////////////////////////////////////////////////////////////////////////////////////////////////
389 // instantiate accel_lut and move_cursor
390 // essentially, corners of quadrilateral logic
96