OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6336|回复: 4

[XILINX] ZYNQ7020(领航者)LED实验问题

[复制链接]

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-6-21
在线时间
19 小时
发表于 2020-6-21 14:19:16 | 显示全部楼层 |阅读模式
1金钱
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 2020/06/20 22:33:23
  7. // Design Name:
  8. // Module Name: led_twinkle
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //////////////////////////////////////////////////////////////////////////////////


  21. //****************************************Copyright (c)***********************************//
  22. //原子哥在线教学平台:www.yuanzige.com
  23. //技术支持:www.openedv.com
  24. //淘宝店铺:http://openedv.taobao.com
  25. //关注微信公众平台微信号:"正点原子",免费获取ZYNQ & FPGA & STM32 & LINUX资料。
  26. //版权所有,盗版必究。
  27. //Copyright(C) 正点原子 2018-2028
  28. //All rights reserved
  29. //----------------------------------------------------------------------------------------
  30. // File name:           led_twinkle
  31. // Last modified Date:  2019/4/14 10:55:56
  32. // Last Version:        V1.0
  33. // Descriptions:        LED灯闪烁
  34. //----------------------------------------------------------------------------------------
  35. // Created by:          正点原子
  36. // Created date:        2019/4/14 10:55:56
  37. // Version:             V1.0
  38. // Descriptions:        The original version
  39. //
  40. //----------------------------------------------------------------------------------------
  41. //****************************************************************************************//

  42. module led_twinkle(
  43.     input          clk_n,  //系统时钟
  44.     input          rst_n,  //系统复位,低电平有效

  45.     output  reg  led,         //LED灯
  46.     output  reg  led2
  47. );

  48. //reg define
  49. reg  [25:0]  cnt ;
  50. reg  [31:0]  led2_cnt;

  51. //*****************************************************
  52. //**                    main code
  53. //*****************************************************

  54. //对计数器的值进行判断,以输出LED的状态
  55. //assign led = (cnt < 26'd2500_0000) ? 1'b0 : 1'b1 ;
  56. //assign led = (cnt < 26'd5)         ? 2'b01 : 2'b10 ;  //仅用于仿真

  57. //计数器在0~5000_000之间进行计数
  58. always [url=home.php?mod=space&uid=95564]@[/url] (posedge clk_n or negedge rst_n) begin
  59.     if(!rst_n) begin
  60.         cnt <= 26'd0;
  61.         led2_cnt <= 32'd0;
  62.         led <= 1'b0;
  63.         led2 <= 1'b1;
  64.     end
  65. //    else if(cnt < 26'd5000_0000) begin
  66.   else if(cnt < 26'd10) begin  //仅用于仿真
  67.         cnt <= cnt + 1'b1;
  68.             led <= led;
  69.     end
  70.     else begin
  71.         cnt <= 26'd0;
  72.         led <= ~led;
  73.     end
  74. end

  75. always @(posedge clk_n) begin
  76. //        if(led2_cnt < 32'd5000_0000) begin
  77.         if(led2_cnt < 32'd10) begin
  78.                 led2_cnt <= led2_cnt + 1'b1;
  79.                 led2 <= led2;
  80.         end
  81.         else begin
  82.                 led2 <= ~led2;
  83.                 led2_cnt <= 32'd0;
  84.         end       
  85. end


  86. endmodule
复制代码
这个程序是从LED例子里面改的,程序下载到板子后LED能闪烁,但LED2不能闪烁,一直亮,仿真LED和LED2的电平都能正常翻转,高手帮我看看问题出在哪里了,谢谢

最佳答案

查看完整内容[请看2#楼]

首先程序里面就有一处错误,同一个变量是不能在不同的always块里面赋值的,否则会造成错误,led2和led2_cnt就在不同的always块里面多次赋值了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
249
金钱
249
注册时间
2020-4-22
在线时间
73 小时
发表于 2020-6-21 14:19:17 | 显示全部楼层
首先程序里面就有一处错误,同一个变量是不能在不同的always块里面赋值的,否则会造成错误,led2和led2_cnt就在不同的always块里面多次赋值了
回复

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2016-11-1
在线时间
22 小时
发表于 2020-6-22 10:00:25 | 显示全部楼层
把第一个进程里的led2,led2_cnt相关的语句去掉。
回复

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-6-21
在线时间
19 小时
 楼主| 发表于 2020-6-22 23:55:34 | 显示全部楼层
陈乔恩 发表于 2020-6-22 14:13
首先程序里面就有一处错误,同一个变量是不能在不同的always块里面赋值的,否则会造成错误,led2和led2_cnt ...

我修改一下试试
回复

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-6-21
在线时间
19 小时
 楼主| 发表于 2020-6-23 00:21:42 | 显示全部楼层
爱上在路上 发表于 2020-6-22 10:00
把第一个进程里的led2,led2_cnt相关的语句去掉。

虽然你是第二个回答的,但是你说出了修改的原因,分给你吧
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 11:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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