当前位置:   article > 正文

FPGA课程设计(拨码控制流水灯)_fpga课设

fpga课设

基本要求:以十赫兹的频率,点亮实验开发板上的发光二极管,显示过程中各个点亮的发光二极管的亮度呈现出明暗变化,形似呼吸。开关0 向下系统复位,灯全灭。开关0向上,LED呈现呼吸状显示。(利用pwm)

扩展部分:

分组显示两组不同渐变周期的呼吸灯,Key0控制LED4~LED0显示, KEY1 控制LED9~LED5显示,渐变周期由开关1~开关9输入,同时数码管分别显示2组呼吸灯对应周期数。

  1. module led
  2. (
  3. //数据的输入
  4. input wire sys_clk ,
  5. input wire sys_rst_n ,
  6. input wire [9:0] sw_in ,
  7. input wire key_in1 ,
  8. input wire key_in2 ,
  9. //led的输出
  10. output wire [9:0] led_out ,
  11. //前三个数码管显示频率
  12. output wire [6:0] ge1 ,
  13. output wire [6:0] shi1 ,
  14. output wire [6:0] bai1 ,
  15. //后三个数码管显示频率
  16. output wire [6:0] ge2 ,
  17. output wire [6:0] shi2 ,
  18. output wire [6:0] bai2
  19. );
  20. wire [8:0] data_in1 ;
  21. wire [8:0] data_in2 ;
  22. wire [10: 0] bcd1 ;
  23. wire [10: 0] bcd2 ;
  24. //key1key2 控制输入的频率
  25. ctrl ctrl_inst
  26. (
  27. .sys_clk (sys_clk) ,
  28. .sys_rst_n (sys_rst_n) ,
  29. .sw_in (sw_in) ,
  30. .key_in1 (key_in1) ,
  31. .key_in2 (key_in2) ,
  32. .data_in1 (data_in1) ,
  33. .data_in2 (data_in2)
  34. );
  35. //开关输入的二进制数,转换为BCD码用于数码管显示
  36. binTobcd binTobcd_inst1
  37. (
  38. .bin (data_in1), // binary
  39. .bcd (bcd1)
  40. );
  41. binTobcd binTobcd_inst2
  42. (
  43. .bin (data_in2), // binary
  44. .bcd (bcd2)
  45. );
  46. //led的输出
  47. breath_led breath_led_inst1
  48. (
  49. .sys_clk (sys_clk ),
  50. .sys_rst_n (sys_rst_n),
  51. .data (data_in1),
  52. .led_out (led_out[4:0] )
  53. );
  54. breath_led breath_led_inst2
  55. (
  56. .sys_clk (sys_clk ),
  57. .sys_rst_n (sys_rst_n),
  58. .data (data_in2),
  59. .led_out (led_out[9:5] )
  60. );
  61. //数码管显示
  62. seg seg_int1
  63. (
  64. .sys_clk (sys_clk) ,
  65. .sys_rst_n (sys_rst_n) ,
  66. .sw0 (sw_in[0]) ,
  67. .bcd (bcd1) ,
  68. .ge (ge1) ,
  69. .shi (shi1) ,
  70. .bai (bai1)
  71. );
  72. seg seg_int2
  73. (
  74. .sys_clk (sys_clk) ,
  75. .sys_rst_n (sys_rst_n) ,
  76. .sw0 (sw_in[0]) ,
  77. .bcd (bcd2) ,
  78. .ge (ge2) ,
  79. .shi (shi2) ,
  80. .bai (bai2)
  81. );
  82. module breath_led
  83. (
  84. input wire sys_clk , //系统时钟50Mhz
  85. input wire sys_rst_n , //key3全局复位
  86. input wire [8:0] data ,//获得控制权寄存的数据
  87. output reg [4:0] led_out //led的输出
  88. );
  89. reg [9:0] cnt_1s ;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/726029
推荐阅读
相关标签
  

闽ICP备14008679号