将scl分频

多个scl后一个高脉冲,脉冲宽度一个scl脉冲。

always @ ( posedge MCLK or negedge RST_N )

begin

 if (rClkCount == 24) //如果有24个上升沿了之后执行
            begin
                I2CCLK <= ~I2CCLK;//进行了24分频
                rClkCount <= 16'h0;
            end

I2CCLK_0 <= I2CCLK;
        I2CCLK_1 <= I2CCLK_0;//实现的结果是I2CCLK中的内容到了I2CCLK_0中去,I2CCLK_0中的内容到了I2CCLK_1中去。

end

wire I2C = (I2CCLK_1 == 1'b0) & (I2CCLK_0 == 1'b1);//第25个mclk的时候I2C变成1,下一个时钟的上升沿又会变回0

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/otaku-lip/p/4765047.html