2913|3

2700

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

xilinx一个最简单的闪亮led,求大神指点错误 [复制链接]

让led闪烁
module led(sys_clk,
                                sys_rstn,
                                led
                                );
input sys_clk;
input sys_rstn;
output [2:0] led;
reg         [2:0]        led;
reg        [24:0] delay_cnt;
always@(posedge sys_clk or negedge sys_rstn)
        begin
                if(!sys_rstn)
                        delay_cnt <= 25'd0;
                else
                        begin
                                if(delay_cnt == 25'd24999999)
                                        delay_cnt <= 25'd0;
                                else
                                        delay_cnt<=delay_cnt+1'b1;
                        end
        end
always@(posedge sys_clk or negedge sys_rstn)
        begin
                if(!sys_rstn)
                        led<=3'b111;
                else
                        begin
                                if(delay_cnt==25'd24999999)
                                        led<=~led;
                                else
                                        led<=led;
                        end
        end
endmodule



QQ截图20150227000314.png (131.96 KB, 下载次数: 0)

添加测试模块

添加测试模块

QQ截图20150227000324.png (124.67 KB, 下载次数: 0)

但是clk依然没有跳变

但是clk依然没有跳变
此帖出自FPGA/CPLD论坛

最新回复

`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: Liqingtao // // Create Date:    10:07:29 11/22/2016 // Design Name: // Module Name:    led // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module led(            div_clk,            rst_n,            cn            );                               //input signal;   input       div_clk;   input       rst_n;   //output signal;   output[5:0] cn;   reg [5:0]  cn;      reg  [2:0]  counter;   always@(posedge div_clk or negedge rst_n)     begin     if(!rst_n)       begin        counter   详情 回复 发表于 2017-2-28 13:05
点赞 关注
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 

回复
举报

2700

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
尼玛不容易啊

QQ截图20150227010920.png (122.47 KB, 下载次数: 1)

QQ截图20150227010920.png
此帖出自FPGA/CPLD论坛
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:Liqingtao
//

// Create Date:    09:51:48 11/22/2016

// Design Name:

// Module Name:    div

// Project Name:

// Target Devices:

// Tool versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module div(

           clk,

           rst_n,

           div_clk

           );

  //input signal;
  input    clk;
  input    rst_n;

//output signal;
  output   div_clk;

  reg [31:0] counter;
  reg        div_clk;

  always@(posedge clk or negedge rst_n)
    begin
      if(!rst_n)
        begin
          counter <= 32'd0;
          div_clk <= 1'b0;      
       end
     else begin
        if(counter==32'h17d7840)
         begin
                counter <=32'h0;
                div_clk <=~div_clk;         
              end                 
        else
               counter <= counter+1'b1;         
     end
   end

endmodule
PS:分频模块;跨时钟信号自己利用计数器进行分频容易出现亚稳态,建议使用PLL进行分/倍频;
此帖出自FPGA/CPLD论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

4
 

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer: Liqingtao

//

// Create Date:    10:07:29 11/22/2016

// Design Name:

// Module Name:    led

// Project Name:

// Target Devices:

// Tool versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module led(

           div_clk,

           rst_n,

           cn

           );

         

         

       

  //input signal;
  input       div_clk;
  input       rst_n;

  //output signal;
  output[5:0] cn;
  reg [5:0]  cn;
  
  reg  [2:0]  counter;
  always@(posedge div_clk or negedge rst_n)
    begin
    if(!rst_n)
      begin
       counter <= 3'd0;      
      end
      else begin
         if(counter==3'b110)
           begin
             counter <=3'd0;
           end
         else
         counter <=counter+1'b1;
       end
     end
  

   always@(posedge div_clk or negedge rst_n)
     begin
       if(!rst_n)
         begin
           cn  <= 6'd0;
         end
        else begin
      case(counter)
           6'b000000:
                   cn<= 6'b000000;
           6'b000001:
                   cn<= 6'b000001;
           6'b000010:
                   cn<= 6'b000011;
           6'b000011:
                   cn<= 6'b000111;
           6'b000100:
                   cn<= 6'b001111;
           6'b000101:
                   cn<= 6'b011111;
           6'b000110:
                   cn<= 6'b111111;
           default:
                   cn<= 6'b0;
          endcase
        end
      end
  //assign cn = counter;

endmodule
PS:这是LED灯闪烁的代码,这是我以前写的,现在想想还有一个更优的想法:利用移位操作符,代码更短;
led<=6'1111110;
led<={led[4:0],led[5]};
一点点小的想法,嘿嘿~~~
此帖出自FPGA/CPLD论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表