数电实验 彩灯控制器设计
层次设计教学:https://blog.csdn.net/m0_37652453/article/details/105326243
module yyc2018113559_2_1(clk,en,Q); //六进制计数器
input clk,en; //clk为时钟
output reg[2:0] Q;
always@(posedge clk)
begin
if(en==1'b1) //en等于1时计数
begin
if(Q<3'd5) //小于5就加1
Q<=Q+1'b1;
else //大于5进1位
Q<=0;
end
else //en为0时
Q<=Q;
end
endmodule
module yyc2018113559_2_2(X,bits); //译码器,实现同时间数码管外围依次点亮
input[2:0] X; //输入X从000到101,共6位
output reg[5:0] bits; //输出实现每段只亮一次
always@(X)
begin
case(X) //同时刻只亮一段,其余熄灭
3'd0:bits=6'b00_0001;
3'd1:bits=6'b00_0010;
3'd2:bits=6'b00_0100;
3'd3:bits=6'b00_1000;
3'd4:bits=6'b01_0000;
3'd5:bits=6'b10_0000;
default:bits=6'b00_0000;
endcase
end
endmodule