完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
module LED(clk,reset_n,led);
input clk; input reset_n; output[3:0] led; reg[23:0] cnt; always @(posedge clk or negedge reset_n) begin if(!reset_n) cnt <= 24'b0; else cnt <= cnt + 1'b1; end reg enable_r; always @(posedge clk or negedge reset_n) begin if(!reset_n) enable_r <= 1'b0; else if (cnt == 24'hffffff) enable_r <= 1'b1; else enable_r <= 1'b0; end wire enable; assign enable = enable_r; reg[3:0] led_r; always @(posedge clk or negedge reset_n) begin if(!reset_n) led_r <= 4'b0000; else begin led_r <= 4'b0001; if(enable) led_r <= {led_r[0],led_r[3:1]}; end end wire[3:0] led; assign led = led_r; endmodule 想实现复位时全灭,不复位时流水灯为什么最后 always @(posedge clk or negedge reset_n) begin if(!reset_n) led_r <= 4'b0000; else begin led_r <= 4'b0001; if(enable) led_r <= {led_r[0],led_r[3:1]}; end end 这么写实现复位,但是不复位时只有led_r[0]亮???应该怎么实现 |
|
相关推荐
8个回答
|
|
不妨试试这个代码,不过流水灯跳转时间变为两倍了,自己可以改下
module LED(clk,reset_n,led); input clk; input reset_n; output[3:0] led; reg[23:0] cnt; wire enable; reg[3:0] led_r; wire[3:0] led; always @(posedge clk or negedge reset_n) begin if(!reset_n) cnt <= 24'b0; else if(cnt==24'hffffff) cnt <= 24'b0; else cnt <= cnt + 1'b1; end reg enable_r; always @(posedge clk or negedge reset_n) begin if(!reset_n) enable_r <= 1'b0; else if (cnt == 24'hffffff) enable_r <= ~enable_r; else enable_r <= enable_r; end assign enable = enable_r; always @(posedge enable or negedge reset_n) begin if(!reset_n) led_r <= 4'b0000; else led_r <= {led_r[2:0],led_r[3]}; end assign led = led_r; endmodule
最佳答案
|
|
|
|
我看看,。if(!reset_n)
cnt <= 24'b0; else cnt <= cnt + 1'b1; end reg enable_r; always @(posedge clk or negedge reset_n) begin if(!reset_n) enable_r <= 1'b0; else if (cnt == 24'hffffff) enable_r <= 1'b1; else enable_r <= 1'b0; |
|
|
|
其实程序不需要这么复杂的。。。。。流水灯C语言程序
|
|
|
|
你可以上百度文库,随便找一个,可以找一个左移函数,就可以了
|
|
|
|
或者可以《《这个也是可以的,看看别人的代码
|
|
|
|
|
|
|
|
这应该没错,是后边,应该是这么写吧always @(posedge clk or negedge reset_n)begin if(!reset_n) begin led_r <= 4'b0000; first<=1'b1; end else if(enable) begin if(first) begin led_r <= 4'b0001; first<=0; end else led_r <= {led_r[0],led_r[3:1]}; end end wire[3:0] led; assign led = led_r; endmodule |
|
|
|
allen102 发表于 2014-8-28 10:21 恩,好啦,谢啦 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1634 浏览 1 评论
1396 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1608 浏览 0 评论
937 浏览 0 评论
2404 浏览 0 评论
1492 浏览 37 评论
5693 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 16:08 , Processed in 0.804263 second(s), Total 56, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号