找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4317|回复: 0
收起左侧

基于verilog的流水灯程序

[复制链接]
ID:322446 发表于 2018-5-4 22:44 | 显示全部楼层 |阅读模式
基于verilog的流水灯程序
  1. //===========================================================================
  2. // File Name   : FLOW_LED
  3. // Module Name : FLOW_LED
  4. // Description : This is a led control module,which it control the led flow.
  5. // Project     :
  6. // Belong to   :
  7. // Author      :
  8. // Date        :
  9. // Rev.        :
  10. //---------------------------------------------------------------------------
  11. // Rev. Date       Description
  12. //---------------------------------------------------------------------------
  13. //===========================================================================

  14. `define UD #1

  15. module FLOW_LED
  16.     (
  17.     //Input ports.
  18.     SYSCLK,
  19.     RST_B,
  20.    
  21.     //Output ports.
  22.    LED

  23.     );

  24. //===========================================================================
  25. //Input and output declaration
  26. //===========================================================================
  27. input       SYSCLK;     //System clock, 50MHz.
  28. input       RST_B;      //Global reset, low active.
  29. output[7:0]   LED;

  30. //===========================================================================
  31. //Wire and reg declaration
  32. //===========================================================================
  33. wire        SYSCLK;
  34. wire        RST_B;
  35. reg[7:0]    LED;

  36. //===========================================================================
  37. //Wire and reg in the module
  38. //===========================================================================
  39. reg[7:0]       LED_N;
  40. reg[24:0]      TIME_CNT;
  41. reg[24:0]      TIME_CNT_N;

  42. //===========================================================================
  43. //Logic
  44. //===========================================================================
  45. parameter    T_NUM = 25'h17D7840;//25'h17D7840

  46. always @ (posedge SYSCLK or negedge RST_B)
  47. begin
  48.     if(!RST_B)
  49.          TIME_CNT <= 25'h0;
  50.      else
  51.          TIME_CNT <= TIME_CNT_N;
  52. end

  53. always @ ( * )
  54. begin
  55.     if(TIME_CNT == T_NUM)
  56.          TIME_CNT_N = 25'h0;
  57.      else
  58.          TIME_CNT_N = TIME_CNT + 25'h1;
  59. end

  60. always @ (posedge SYSCLK or negedge RST_B)
  61. begin
  62.     if(!RST_B)
  63.          LED <= 8'b1111_1110;
  64.      else
  65.          LED <= LED_N;
  66. end

  67. always @ (*)
  68. begin              0000000
  69.     if((TIME_CNT == T_NUM)&&(LED == 8'b0))
  70.          LED_N = 8'b1111_1110;
  71.      else if(TIME_CNT == T_NUM)
  72.          LED_N = (LED << 1);
  73.      else
  74.          LED_N = LED;
  75. end

  76. endmodule
复制代码


新建 Microsoft Word 97 - 2003 文档.doc

28.5 KB, 下载次数: 17, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表