always @(posedge osc_clk) begin
if(!rst_en)
begin
rst_count <= rst_count + 1'd1;
if(rst_count >= 20'b1111_1111_1111_1111_1110) //上電延時(shí)一段時(shí)間后,檢測(cè)外部 led_en 是否拉高,拉高,則開(kāi)始工作
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) //因?yàn)?led_en 是鎖存信號(hào), 下降沿改變數(shù)據(jù), 上升沿鎖存
begin
if(!led_en) //檢測(cè)下降沿
temp_work <= 1;
end
else if(temp_work == 1) //檢測(cè)上升沿
begin
if(led_en)
begin
temp_bcd <= #20 bcd_code; //顯示解碼的BCD數(shù)據(jù)
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;