将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

你可能感兴趣的:(SCL,分频)