Корзина

0 Товары - 0.00 RUB
В корзину

Курсы Валют

Курсы Валют  Дата ЦБ
Нал.USD
19.05 61.94
Нал.EUR
19.05 73.18
Нал.CNY
19.05 97.15

Оплата

visa

Реклама

Статьи

Блог

FPGA игра крестики нолики.

Кре́стики-но́лики — логическая игра между двумя противниками на квадратном поле 3 на 3 клетки или бо́льшего размера (вплоть до «бесконечного поля»). Один из игроков играет «крестиками», второй — «ноликами». В традиционной китайской игре (Гомоку) используются черные и белые камни.

На горячо любимом сайте GitHub была обнаружена замечательная игра: крестики-нолики. Специалистами Визуальной электроники она была портирована на нашу плату VE-XC6SLX9.

Модуль верхнего уровня выглядит следующим образом:

Verilog Code:
  1. `timescale 1ns / 1ps
  2.  
  3. module Top(
  4. input clk,reset,
  5. inout wire ps2d, ps2c,
  6.  
  7. output reg [7:0] seg,
  8. output reg [3:0] an,
  9.  
  10. input linksBtn,
  11. input rechtsBtn,
  12. input zentrumBtn,
  13.  
  14. output wire [7:0] RGB,
  15. output hsync,output vsync
  16. );
  17.  
  18. wire [9:0] px_reg;
  19. wire [9:0] py_reg;
  20. wire mouseclick2;
  21.  
  22. wire video_on, pixel_tick;
  23. wire enable;
  24.  
  25. //Позиция на экране
  26. wire [9:0] pixel_x, pixel_y;
  27.  
  28. //Соединения используемые в проекте
  29. wire [1:0] topLeft;
  30. wire [1:0] topCenter;
  31. wire [1:0] topRight;
  32. wire [1:0] middleLeft;
  33. wire [1:0] middleCenter;
  34. wire [1:0] middleRight;
  35. wire [1:0] bottonLeft;
  36. wire [1:0] bottonCenter;
  37. wire [1:0] bottonRight;
  38.  
  39. wire [2:0] state;
  40.  
  41. wire [9:0] xScore;
  42. wire [9:0] yScore;
  43.  
  44. wire selectedOption;
  45.  
  46. wire Links;
  47. wire Rechts;
  48. wire Zentrum;
  49.  
  50. debouncer DB6(.clk(clk), .PB(linksBtn), .PB_state(Links));
  51. debouncer DB7(.clk(clk), .PB(rechtsBtn), .PB_state(Rechts));
  52. debouncer DB8(.clk(clk), .PB(zentrumBtn), .PB_state(Zentrum));
  53.  
  54. TicTacToe gameLogic(
  55. .clk(clk),
  56. .Boton_izquierda(Links),
  57. .Boton_derecha(Rechts),
  58. .Boton_onoff(Zentrum),
  59.  
  60. //Сигналы от мышки
  61. .mouseX(px_reg),
  62. .mouseY(py_reg),
  63. .mouseBotton(mouseclick2),
  64.  
  65. //Состояние ячеек
  66. .topLeft(topLeft),
  67. .topCenter(topCenter),
  68. .topRight(topRight),
  69. .middleLeft(middleLeft),
  70. .middleCenter(middleCenter),
  71. .middleRight(middleRight),
  72. .bottonLeft(bottonLeft),
  73. .bottonCenter(bottonCenter),
  74. .bottonRight(bottonRight),
  75. //Current State
  76. .state(state),
  77.  
  78. //Очки
  79. .xScore(xScore),
  80. .OScore(yScore),
  81.  
  82. //Опции
  83. .selectedOption(selectedOption)
  84. );
  85.  
  86. //Генератор картинки
  87. pixel_Gen pixls(
  88. .topLeft(topLeft),
  89. .topCenter(topCenter),
  90. .topRight(topRight),
  91. .middleLeft(middleLeft),
  92. .middleCenter(middleCenter),
  93. .middleRight(middleRight),
  94. .bottonLeft(bottonLeft),
  95. .bottonCenter(bottonCenter),
  96. .bottonRight(bottonRight),
  97.  
  98. .state(state),
  99.  
  100. .xScore(xScore),
  101. .yScore(yScore),
  102.  
  103. .selectedOption(selectedOption),
  104.  
  105. .mousex(px_reg),
  106. .mousey(py_reg),
  107.  
  108. .pixel_tick(pixel_tick),
  109. .pixel_x(pixel_x),
  110. .pixel_y(pixel_y),
  111. .video_on(video_on),
  112. .rgb(RGB)
  113. );
  114.  
  115. //Управление VGA разверткой
  116. vga_sync Sincronizador(.clk(clk),
  117. .hsync(hsync), .vsync(vsync),
  118. .video_on(video_on), .p_tick(pixel_tick),
  119. .pixel_x(pixel_x), .pixel_y(pixel_y));
  120.  
  121.  
  122. //Опрос PS/2 мыши
  123. mouse_led instance_name (
  124. .clk(clk),
  125. .reset(reset),
  126. .ps2d(ps2d),
  127. .ps2c(ps2c),
  128. .px_reg(px_reg),
  129. .py_reg(py_reg),
  130. .mouseclick(mouseclick2)
  131. );
  132.  
  133. endmodule

Основные составляющие проекта:

  • TicTacToe- логика игры.
  • pixel_Gen- генератор картинки.
  • vga_sync- управление VGA разверткой.
  • mouse_led- модуль опроса PS/2 мыши.

Видео получившейся игры:

Проект крестики нолики для платы VE-XC6SLX9: tic_tac_toe.zip

Перевод

Вход

Или классический вход:

Время

Ссылки

Карта сайта Визуальная электроника Полезные ссылки сайта Визуальная электроника