注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
logitech66的个人空间 https://home.eeworld.com.cn/space-uid-479145.html [收藏] [复制] [分享] [RSS]
日志

坚持

已有 369 次阅读2015-10-16 21:12

  今天解决了一下之前自己抄写书上的流水灯实验,不得不说一个流水灯真的也存在很多问题,之前按照书上抄写的编译之后发现效果完全不对,结果也不知道问题出在哪里,今天仔细看了一下程序,发现对程序中的延时不是很理解,经过研究弄明白了。书上的晶振和我板子上的是不一样的。

晶振为50MHz,一个周期为1/50MHz,需要延时时间为X,需要的周期为m*1/50MHz=x,所以需要的周期数就是50MHz*X,单位为秒。

延时函数为:

 

parameter T100MS = 23'd5_000_000;  //定义一个常量,就是上面算出的需要100MS所需要的周期数,其长度为222<5_000_000<223

    reg [22:0]Count1; //定义一个寄存器,用来计数,长度为23

    

    always @ ( posedge CLK or negedge RSTn )

    if( !RSTn ) //复位键如果为0,置0

        Count1 <= 23'd0;

    else if( Count1 == T100MS ) //初始化,当计数计满时,重新置数

        Count1 <= 23'd0;

    else

        Count1 <= Count1 + 1'b1; //若没计满,每次加一个周期


不知道为什么改过了时间后还是不好使然后使用例程是可以的,然后将例程复制粘贴到我的工程中还是那个现象。。。怎么回事?。。。有毒。。。

 

 

 

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章