完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
程序是一个跑马灯的编程,其中有一点看不懂下面是整个程序
/*跑马灯实验:利用计数器轮流点亮LED灯,实现各种动态效果。 */ module ledwater(clk,rst,dataout); input clk,rst; output[11:0] dataout; reg[11:0] dataout; reg[22:0] cnt; always@(posedge clk or negedge rst) begin if(!rst) begin cnt<=0; dataout<=12'b111110_011111;//为0的bit位代表要点亮的LED的位置 end else begin cnt<=cnt+1; if(cnt==23'h7fffff) begin dataout[4:0]<=dataout[5:1]; dataout[5]<=dataout[0]; dataout[11:7]<=dataout[10:6]; dataout[6]<=dataout[11]; end end end endmodule 上面红色的是实现移位功能,不是太理解,它是怎么实现的;难道是 dataout[4:0]<=dataout[5:1]; 实现功能: dataout[1]状态给dataout[0],然后dataout[2]状态给dataout[1], dataout[3]状态给dataout[2],dataout[4]状态给dataout[3],dataout[5]状态给dataout[4]. dataout[5]<=dataout[0]; 实现功能: 实现dataout[0]状态给dataout[5]; 下面两句也是同个道理。 二极管是 低电平亮 有几个疑问就是 1 为什么分开写,不直接写出 dataout[10:0]<=dataout:11:1]; dataout[11]<=dataout[0];(我用的板子是两排二极管,每排6个) 2 程序一开始也没写出第一位是0状态,其余是1状态,然后就开始循环移位。 希望大神可以帮帮忙,ths!!
|
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
894 浏览 0 评论
基本FPGA或者树莓派或者其它微处理器(尽量压缩成本且完成项目)DFB激光器稳频
1635 浏览 1 评论
2733 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1241 浏览 0 评论
3886 浏览 1 评论
2354 浏览 58 评论
6212 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-9 02:37 , Processed in 0.483929 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191