奋斗的小孩 发表于 2016-7-9 21:06:53

任意分频器

module frequency_divider_mealy_fsm1s(clk_in, rst, clk_out);

        parameter HW = 3;        //输出时钟高电平宽度
        parameter LW = 2;        //输出时钟低电平宽度
       
        input clk_in;
        input rst;
        output clk_out;
       
        `define s0 1'b0        //显式状态机
        `define s1 1'b1
       
        reg clk_out;
        reg count;
        reg state;
       
        always @ (posedge clk_in)       
        begin
                if (!rst)                        //同步复位
                        begin
                                clk_out <= 1'b0;
                                count <= 0;
                                state <= `s0;
                        end
                else
                        case (state)
                                `s0        :        if (count < LW-1)
                                                                begin
                                                                        count <= count + 1;
                                                                        state <= `s0;                //显式状态
                                                                end
                                                        else
                                                                begin
                                                                        count <= 0;
                                                                        clk_out <= 1'b1;
                                                                        state <= `s1;
                                                                end
                                                               
                                `s1        :        if (count < HW-1)
                                                                begin
                                                                        count <= count + 1;
                                                                        state <= `s1;                //显式状态
                                                                end
                                                        else
                                                                begin
                                                                        count <= 0;
                                                                        clk_out <= 1'b0;
                                                                        state <= `s0;
                                                                end
                        endcase
        end

endmodule

奋斗的小孩 发表于 2016-7-9 21:07:43

大家敬请关注百度贴吧“奋斗的小孩fpga之旅”,都是关于fpga学习知识的贴吧·····有问题大家一起探讨!!

zxopenljx 发表于 2019-4-25 09:22:32

任意分频器

月影星痕 发表于 2019-7-30 09:16:18

任意分频器
页: [1]
查看完整版本: 任意分频器