Page 292 - 3-2
P. 292

always@(posedge clk, negedge reset)
                    if(!reset)      begin
                            scan_cnt <= 0;
                            clk_200hz <= 1'b0;
                    end
                    else    begin
                            if(scan_cnt >= 250000) begin
                                    scan_cnt <= 0;
                                    clk_200hz <= 1'b1;
                            end
                            else    begin
                                    scan_cnt <= scan_cnt+1;
                                    clk_200hz <= 1'b0;
                            end
                    end


            // FND  선택 신호 만들기(200Hz)
            always@(posedge clk, negedge reset)
                    if(!reset)      digit <= 1'b0;
                    else begin
                            if(clk_200hz == 1'b1) digit <= (digit+1)%2;
                            else digit <= digit;
                    end


            //  숫자 자리 나누는 구문
            assign num10 = (tim/10)%10;
            assign num1 = (tim/1)%10;




            // FND  선택 신호 만들기
            always@(digit)
                    case(digit)
                    0: begin fnd_sel <= 2'b01; fnd_num <= num1; end
                    1: begin fnd_sel <= 2'b10; fnd_num <= num10; end
                    default: begin fnd_sel <= 2'b00; fnd_num <= 0; end
                    endcase


            // FND mux   회로
            always@(fnd_num)
                    case(fnd_num)
                    0: fnd_data <= 7'b100_0000;
                    1: fnd_data <= 7'b111_1001;
                    2: fnd_data <= 7'b010_0100;
                    3: fnd_data <= 7'b011_0000;
                    4: fnd_data <= 7'b001_1001;


                                                         - 292 -
   287   288   289   290   291   292   293   294   295   296   297