always @(posedge osc_clk) begin
if(!rst_en)
begin
rst_count <= rst_count + 1'd1;
if(rst_count >= 20'b1111_1111_1111_1111_1110) //上电延时一段时间后,检测外部 led_en 是否拉高,拉高,则开始工作
begin
rst_count <= 0;
if(led_en)
rst_en <= 1;
end
end
end
always @(posedge osc_clk ) begin
if(!rst_en)
begin
temp_led <= 20'b0000_0000_0000_0000_0000;
end
else
begin
if(temp_work == 0) //因为 led_en 是锁存信号, 下降沿改变数据, 上升沿锁存
begin
if(!led_en) //检测下降沿
temp_work <= 1;
end
else if(temp_work == 1) //检测上升沿
begin
if(led_en)
begin
temp_bcd <= #20 bcd_code; //显示解码的BCD数据
case (temp_bcd)
5'd0: temp_led <= 20'b0101_1100_1100_0000_0000;
5'd1: temp_led <= 20'b0001_1101_0101_1011_1111;
5'd2: temp_led <= 20'b1100_0001_0011_1100_0000;
5'd3: temp_led <= 20'b0100_0001_1001_1110_0010;
5'd4: temp_led <= 20'b0000_0100_0000_0011_1111;