完善资料让更多小伙伴认识你,还能领取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 恩,好啦,谢啦 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
NVMe高速传输之摆脱XDMA设计50:主要功能测试结果与分析2 nvmePCIe高速存储
252 浏览 0 评论
NVMe高速传输之摆脱XDMA设计49:主要功能测试结果与分析1
1501 浏览 0 评论
907 浏览 0 评论
855 浏览 0 评论
658 浏览 0 评论
4427 浏览 63 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 08:20 , Processed in 0.711565 second(s), Total 91, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2515