Verilog和LogiSim中的Tic Tac Toe游戏

此项目是Verilog和LogiSim中的Tic Tac Toe游戏。井字游戏是一款非常受欢迎的纸笔游戏,采用3x3网格,可供两名玩家使用。 在对角线,垂直或水平行中留下前三个标记的玩家将赢得比赛。现在可以实现了Verilog和Logisim的Tic Tac Toe游戏。了解更多请下载附件。

预览截图

应用介绍

此项目是Verilog和LogiSim中的Tic Tac Toe游戏。

井字游戏是一款非常受欢迎的纸笔游戏,采用3x3网格,可供两名玩家使用。 在对角线,垂直或水平行中留下前三个标记的玩家将赢得比赛。现在可以实现了Verilog和Logisim的Tic Tac Toe游戏。

将下面的3x3网格表视为所播放位置的顺序:

table1.png

当在以下行对中成功放置三个相似的(01-Xs)或(10-Os)值时,玩家/计算机将赢得比赛。 (4,5,6);(7,8,9); (1、4、7); (2,5,8);(3,6,9); (1,5,9);(3,5,7)。

我们来看一下Tic Tac Toe游戏的Verilog代码。 为了控制井字游戏,FSM控制器的设计如下。

game1.png

1. IDLE(00):在等待播放器/计算机播放或重置电路时,FSM处于IDLE状态。

2. PLAYER(01):播放器转向播放,并将“ 01”存储到解码位置。

3. COMPUTER(10):计算机开始播放,“ 01”存储到解码位置。

4. Game_over(11):当有赢家或没有更多游戏空间时,游戏结束。

井字游戏的控制器输入:

a. 重启 :

重置= 1:处于Game_Over状态时重置游戏。

重置= 0:游戏开始。

b. 玩:

播放= 1:处于IDLE状态时,播放= 1是将控制器切换到PLAYER状态,然后播放器播放。

播放= 0:保持在空闲状态。

C. 个人电脑

PC = 1:处于COMPUTER状态时,PC = 1将切换到IDLE状态,然后计算机开始播放。

PC = 0:保持在计算机状态。

d. 非法移动

Illegal_move = 0:处于播放器状态时,Illegal_move = 0将切换到COMPUTER状态,并在PC = 1时让计算机播放。

Illegal_move = 1:从播放器/计算机非法移动并切换到IDLE状态。

e. 没有空间

No_space = 0:仍有空间玩,继续游戏。

No_space = 1:不再有游戏空间,游戏结束,需要在重新玩游戏之前重置游戏。

F. 赢得

获胜= 0:仍在等待获胜者

赢= 1:有一个赢家,完成游戏,需要重置游戏才能再次玩。

附件中包括:井字游戏的Verilog代码、Tic Tac Toe游戏的Verilog测试台代码。

本人在下方展示了Tic Tac Toe游戏的Verilog测试台代码;在预览区展示了Tic Tac Toe游戏的仿真波形;想了解更多请下载附件。

`timescale 1ns / 1ps
// fpga4student.com: FPGA projects, Verilog projects, VHDL projects
// Verilog testbench code for TIC TAC TOE GAME 
module tb_tic_tac_toe;
 // Inputs
 reg clock;
 reg reset;
 reg play;
 reg pc;
 reg [3:0] computer_position;
 reg [3:0] player_position;
 // Outputs
 wire [1:0] pos_led1;
 wire [1:0] pos_led2;
 wire [1:0] pos_led3;
 wire [1:0] pos_led4;
 wire [1:0] pos_led5;
 wire [1:0] pos_led6;
 wire [1:0] pos_led7;
 wire [1:0] pos_led8;
 wire [1:0] pos_led9;
 wire [1:0] who;
 // Instantiate the Unit Under Test (UUT)
 tic_tac_toe_game uut (
  .clock(clock), 
  .reset(reset), 
  .play(play), 
  .pc(pc), 
  .computer_position(computer_position), 
  .player_position(player_position), 
  .pos1(pos_led1), 
  .pos2(pos_led2), 
  .pos3(pos_led3), 
  .pos4(pos_led4), 
  .pos5(pos_led5), 
  .pos6(pos_led6), 
  .pos7(pos_led7), 
  .pos8(pos_led8), 
  .pos9(pos_led9), 
  .who(who)
 );
 // clock
 initial begin
 clock = 0;
 forever #5 clock = ~clock;
 end
 initial begin
  // Initialize Inputs
  play = 0;
  reset = 1;
  computer_position = 0;
  player_position = 0;
  pc = 0;
  #100;
  reset = 0;
  #100;
  play = 1;
  pc = 0;
  computer_position = 4;
  player_position = 0;
  #50;
  pc = 1;
  play = 0;
  #100;
  reset = 0;
  play = 1;
  pc = 0;
  computer_position = 8;
  player_position = 1;
  #50;
  pc = 1;
  play = 0;  
  #100;
  reset = 0;
  play = 1;
  pc = 0;
  computer_position = 6;
  player_position = 2;
  #50;
  pc = 1;
  play = 0; 
  #50
  pc = 0;
  play = 0;   
  end
endmodule

文件列表(部分)

名称 大小 修改日期
Verilog和LogiSim中的Tic Tac Toe游戏 (附件).txt3.19 KB2020-04-05
game1.png39.72 KB2020-04-05
table1.png5.53 KB2020-04-05
tic2.png104.75 KB2020-04-05
tictactoe.png38.57 KB2020-04-05
tictactoe1.png84.21 KB2020-04-05
image0.00 KB2020-04-05

立即下载

相关下载

[Verilog和LogiSim中的Tic Tac Toe游戏] 此项目是Verilog和LogiSim中的Tic Tac Toe游戏。井字游戏是一款非常受欢迎的纸笔游戏,采用3x3网格,可供两名玩家使用。 在对角线,垂直或水平行中留下前三个标记的玩家将赢得比赛。现在可以实现了Verilog和Logisim的Tic Tac Toe游戏。了解更多请下载附件。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部