奋斗的小孩 发表于 2016-7-12 09:23:24

测试方波的频率计

module pinlvji (clk, rst_n, wave, zhankongbi, pinlv);

        input clk;
        input rst_n;
        input wave;
       
        output reg zhankongbi;
        output reg pinlv;
       
        reg t_low_count;
        reg t_high_count;
       
        reg t_low;
        reg t_high;
       
        reg state;
       
        always @ (*)
                begin
                        zhankongbi = 100*t_high/(t_high + t_low);
                        pinlv = 1_000_000_000/(t_high*10 + t_low*10);
                end
       
        always @ (posedge clk)
                begin
                        if (rst_n == 0)
                                begin
                                        t_low <= 0;
                                        t_high <= 0;
                                        t_low_count <= 0;
                                        t_high_count <= 0;
                                        state <= 0;
                                end
                        else
                                begin
                                        case (state)
                                                0 : begin
                                                                if (wave == 1)
                                                                        begin
                                                                                t_high_count <= t_high_count + 1;
                                                                                state <= 0;
                                                                        end
                                                                else
                                                                        begin
                                                                                t_high <= t_high_count;
                                                                                t_high_count <= 0;
                                                                                state <= 1;
                                                                        end
                                                        end
                                               
                                                1 : begin
                                                                if (wave == 0)
                                                                        begin
                                                                                t_low_count <= t_low_count + 1;
                                                                                state <= 1;
                                                                        end
                                                                else
                                                                        begin
                                                                                t_low_count <= 0;
                                                                                t_low <= t_low_count;
                                                                                state <= 0;
                                                                        end
                                                        end
                                       
                                                default : state <= 0;
                                               
                                        endcase
                                end
                end


endmodule

奋斗的小孩 发表于 2016-7-12 09:24:01

有什么问题,留言或者联系奋斗的小孩QQ:746833924

辉煌 发表于 2016-9-8 13:43:02

测试方波的频率计

zxopen08 发表于 2016-9-18 15:31:56

测试方波的频率计

辉煌 发表于 2016-9-20 15:19:43

测试方波的频率计

4798345 发表于 2017-3-11 09:13:00

感谢楼主分享

fpga_feixiang 发表于 2023-11-21 14:18:56

6                        
页: [1]
查看完整版本: 测试方波的频率计