求助:verilog驱动数码管依次点亮

菜鸟来求学 2019-04-10 11:12:08
module aa0106(clk,en,Q,codeout); input clk,en; output [5:0] codeout; output reg[2:0] Q; bb0106 bb0106(outcode,Q); cc0106 cc0106(clk,en,Q); endmodule module bb0106(clk,en,Q); input clk,en; output reg[2:0] Q; always@(posedge clk) begin if(en == 1'b1) begin if(Q < 3'd5) Q <= Q + 1'b1; else Q <= 0; end else Q <= Q; end endmodule module cc0106(codeout,Q); input [2:0] Q; output [5:0] codeout; reg[5:0] codeout; always@(Q) begin case(Q) 3'd0:codeout=6'b011111; 3'd1:codeout=6'b101111; 3'd2:codeout=6'b110111; 3'd3:codeout=6'b111011; 3'd4:codeout=6'b111101; 3'd5:codeout=6'b111110; default: codeout=6'bx; endcase end endmodule 上面是我写的代码,用计数器实现对数码管的外围依次点亮,我的是共阳级数码管,但是下载后发现输入使能en只能点亮一个,不能循环,我觉得是语法问题,求各位大佬帮助,今晚实验
...全文
353 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZYPi 2019-04-11
  • 打赏
  • 举报
回复
每一个数码管都有一个使能信号,你怎么能用一个en去控制所有数码管?而且你调用程序的输入输出也有问题
fly 100% 2019-04-11
  • 打赏
  • 举报
回复
always@(Q) 这个地方用clk 的倍频试一下
fly 100% 2019-04-11
  • 打赏
  • 举报
回复
降低一下clk 的频率试试
菜鸟来求学 2019-04-10
  • 打赏
  • 举报
回复
是不是因为case语句没有用非阻塞

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧