怎么检测I2C的开始条件和结束条件?

2019-07-16 06:40发布

怎么检测I2C的开始条件和结束条件?

做I2C接口时一般大家是怎样检测其开始条件和结束条件的呢?在没有其他时钟可用的情况下,以下异步设计可以接受吗?

always@ (negedge scl_i or negedge sda_i)
        if(!scl_i)                        //采用了SCL作为复位端
                start<= 1'b0;
        else if(scl_i)
                start<= 1'b1;
               
always@ (negedge scl_i or posedge sda_i)
        if(!scl_i)                        //采用了SCL作为复位端
                stop<= 1'b0;
        else if(scl_i)
                stop<= 1'b1;

一般规范的I2C设计是不是要SCL的倍频时钟呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。