FPGA课设:拔河游戏

这篇具有很好参考价值的文章主要介绍了FPGA课设:拔河游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、实验要求

用设计一拔河游戏机,要求如下:电路使用15个发光二极管表示拔河的“电子绳”,开机后只有中间一个发亮,此即拔河的中心点。游戏双方各持一个按钮,迅速地、不断地按动产生脉冲,谁按的快,亮点就向谁的一方移动,每按一次,亮点移动一次。亮点一到任一方的终端发光二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后亮点才恢复到中心。由裁判下达比赛命令后,双方才能输入信号,否则,输入无效。

 二、实验代码

源代码



module tug_of_war 
(
   input clk, reset_n, p1_btn, p2_btn, referee_cmd,
   output reg[14:0] leds
);

   parameter CENTER_LED = 7;
   parameter WAIT_CMD = 4'd0;
   parameter WAIT_INPUT = 4'd1;
   parameter RUNNING = 4'd2;
   parameter P1_WIN = 4'd3;
   parameter P2_WIN = 4'd4;
   parameter OUTPUT_HOLD = 4'd5;

   
   reg [3:0] state;    
   reg [14:0] counter; 

   always @(posedge clk, negedge reset_n) begin
      if (~reset_n) begin
         counter <= 15'd0;
         leds <= 15'b000000010000000;
         state <= WAIT_CMD;
      end
      else begin
         case (state)
            WAIT_CMD: begin
               if (referee_cmd) begin
                  state <= WAIT_INPUT;
               end
            end

            WAIT_INPUT: begin
               if (p1_btn || p2_btn) begin
                  state <= RUNNING;
               end
            end

            RUNNING: begin
               if (counter == 15'd000001) begin
                  counter <= 15'd0;

                  if (p1_btn == p2_btn) begin
                     leds <= leds;
                  end
                  else if (p1_btn > p2_btn) begin
                     leds <= {leds[13:0], 1'b0};
                  end
                  else if (p2_btn > p1_btn) begin
                     leds <= {1'b0, leds[14:1]};
                  end

                  if (leds == 15'b100000000000000 || leds == 15'b000000000000001) begin
                     if (p1_btn) begin
                        state <= P1_WIN;
                     end
                     else if (p2_btn) begin
                        state <= P2_WIN;
                     end
                  end
               end
               else begin
                  counter <= counter + 1;
               end
            end

            P1_WIN: begin
               leds <= 15'b100000000000000;
               state <= OUTPUT_HOLD;
            end

            P2_WIN: begin
               leds <= 15'b000000000000001;
               state <= OUTPUT_HOLD;
            end

            OUTPUT_HOLD: begin
               if (referee_cmd==0) begin
               leds <= 15'b000000010000000;
             end
              else if (referee_cmd==1) begin
                 leds <= leds;
               end
            end
         endcase
      end
   end

endmodule



[点击并拖拽以移动]
​

测试代码


module tb_tug_of_war;

   reg clk;
   reg reset_n;

 
   reg p1_btn;
   reg p2_btn;
   reg referee_cmd;
   wire [14:0] leds;


   tug_of_war dut (
      .clk(clk),
      .reset_n(reset_n),
      .p1_btn(p1_btn),
      .p2_btn(p2_btn),
      .referee_cmd(referee_cmd),
      .leds(leds)
   );


   always #5 clk = ~clk;

       initial begin
      reset_n = 0;
      clk = 0;

      #100;
      reset_n = 1;

      #200;
      referee_cmd = 1;

      #50;
      p2_btn = 1;

      #50;
      p1_btn = 1;
      p2_btn = 0;
      
      #50;
      p1_btn = 0;
      p2_btn = 1;
      
      #50;
      p1_btn = 1;
      p2_btn = 0;

      #170;
       p1_btn = 0;
      referee_cmd = 0;
      reset_n = 0;
      
      #100;
      referee_cmd = 1;
      reset_n = 1;

      #200;
      p1_btn = 0;
      p2_btn = 1;

      #150;
      p2_btn = 0;
      referee_cmd = 0;
      reset_n = 0;
      
      #100000;
      $finish;
   end

endmodule

       测试代码可以自己改数据,第一个是P1胜利,不是一边倒胜利,有拉锯,后面是P2胜利,一边倒胜利,如果不想,可以在测试代码加一下。文章来源地址https://www.toymoban.com/news/detail-767972.html

到了这里,关于FPGA课设:拔河游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • (教程)中兴机顶盒免拆机变身游戏机

    (教程)中兴机顶盒免拆机变身游戏机

    家里有一个当年办宽带送的机顶盒,闲置许久无用,于是想废物利用一下。 型号是B860AV1.2,这个型号的包比较少,处理器是景晨s905mb,根据处理器可以找到刷机包,不过刷机不刷机区别不大,只是一个纯净系统而已。 开机按设置键,密码是6321 进入设置后,先打开wifi开关,

    2024年02月05日
    浏览(44)
  • 应用在游戏机触摸屏中的触摸感应芯片

    应用在游戏机触摸屏中的触摸感应芯片

    触屏游戏机的屏幕是由液晶屏和触控层组成的。触控层分为电容式触屏和电阻式触屏两种。电容式触屏是将悬空电极和屏幕玻璃上的电极组成静电场,当人体接近屏幕时,就会改变静电场分布,从而实现触摸的位置探测。而电阻式触屏则是利用玻璃上的两层电极之间通电形成一个

    2024年01月18日
    浏览(12)
  • WTN6170-8S语音芯片:射击游戏机新时代,CS音效射击体验引领者

    在射击游戏机的刺激世界中,唯创知音的WTN6170-8S语音芯片,作为声音提示播放IC,为射击游戏机带来了更智能、更富有战斗感的音效体验,引领玩家进入一个崭新的射击游戏时代。 射击游戏机启动时,WTN6170-8S语音芯片通过战场音效,如爆炸声、射击声等,迅速拉近玩家与虚

    2024年02月05日
    浏览(20)
  • 任天堂,steam游戏机通过type-c给VR投屏与PD快速充电的方案 三type-c口投屏转接器

    任天堂,steam游戏机通过type-c给VR投屏与PD快速充电的方案 三type-c口投屏转接器

    游戏手柄这个概念,最早要追溯到二十年前玩FC游戏的时候,那时候超级玛丽成为了许多人童年里难忘的回忆,虽然长大了才知道超级玛丽是翻译错误,应该是任天堂的超级马里奥,不过这并不影响大家对他的喜爱。 当时FC家用机手柄还是采用这种9孔接口,手柄按键也只有方

    2024年02月03日
    浏览(15)
  • fpga课设-多功能信号发生器

    1绪论 1.1 背景 信号发生器作为一种历史悠久的测量仪器,早在20年代电子设备刚出现时就产生了。随着通信和雷达技术的发展,40年代出现了主要用于测试各种接收机的标准信号发生器,使得信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。同时还出现了可用来

    2024年02月05日
    浏览(11)
  • NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇

    NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇

    目录 简介 技术要求 参考 1) 国内玩家自制游戏卡 2)N8 N8pro 3)powerpak 4)FC模拟器软件 N8 pro的实现方案的信息收集 先了解一下各个芯片的功能 N8开发者提供的资源信息 Powerpak  Nesdev wiki和forum 整个开发的目的就是做一个FPGA实现的,可以支持多种FC游戏(多种mapper)的游戏卡。

    2024年02月07日
    浏览(12)
  • fpga中Spartan6系列开发板和VGA显示实现贪吃蛇游戏设计

    fpga中Spartan6系列开发板和VGA显示实现贪吃蛇游戏设计

    鱼弦:CSDN内容合伙人、CSDN新星导师、全栈领域创作新星创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 需要用ise 14.7,板卡为spantan6系列,VGA显示实现贪吃蛇游戏的设计 ,需要一整套工程文件。 1.实现贪吃蛇游

    2024年02月03日
    浏览(30)
  • NES(FC) FPGA游戏卡开发笔记(3)---- AGM AG32VF407开发环境的使用

    NES(FC) FPGA游戏卡开发笔记(3)---- AGM AG32VF407开发环境的使用

    AG32VF407是内带2K FPGA逻辑单元的MCU芯片。虽然目前不考虑这款FPGA芯片,因为是开发笔记,就记录一下我的学习使用过程。使用这个IDE就是想了解一下这块MCU到底如何使用的。 http://www.tcx-micro.com/doc_25499579.html提供了AGM MCU的开发软件下载。需要安装python3.8版本以上(因为AGM boar

    2024年02月16日
    浏览(11)
  • 基于低功耗蓝牙和微信小程序的门禁系统(FPGA课设设计)

    基于低功耗蓝牙和微信小程序的门禁系统(FPGA课设设计)

    本次FPGA课程设计基于Cyclone IV的 EP4CE6F17C8。使用的是AX301开发板(正点原子的新起点也是用同一种芯片,只是要修改引脚)。 本系统能够实现通过蓝牙发送密码给FPGA,并在开发板的数码管上显示密码,密码正确,则手机端(微信小程序)接收到开门信号,并显示开门。其余时候

    2024年02月08日
    浏览(14)
  • 基于FPGA的五子棋游戏设计

    基于FPGA的五子棋游戏设计

    基于FPGA的五子棋游戏设计 本文基于FPGA设计五子棋游戏,使用按键输入,使用VGA接口输出。五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为10×10,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的

    2024年02月05日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包