非常感谢大家的收藏,最近项目略忙,之前记录在confluence上的内容也比较零散,因此,这篇文章一定会出来的,有时间自己就开始写。写这样一篇文章进行总结也是非常有必要的
前言
本篇主要记录自己在使用Synopsys的IP DW_apb_i2c时的体会。顾名思义,这个IP是基于I2C总线协议开发的,自己作为verifer的经验不足一年,所以一开始最困扰我的问题是I2C协议和这个IP有什么关系?(听起来能提出这样的问题是挺蠢的)
对此,我的理解是,I2C协议是信息传递的一种规则,而DW_apb_i2c是基于verilog开发的满足I2C协议要求的硬件实体。网上关于I2C协议的解读已经很多了,这篇主要讲这个IP怎么使用。能够使用这个IP的前提是理解协议。
I2C协议简要回顾
这里给出一些自己看到的还不错的参考文章
对于I2C,需要掌握的基本的点:
- I2C支持的speed mode,基本的协议规则,I2C的状态机图
- start,restart条件,7/10bit address 格式要求
- I2C多master仲裁,时钟同步和时钟扩展
- Device ID
- SMBus/PMBus
这些都可以在I2C spec上找到,需反复研读,协议并不复杂
I2C的速率模式需要明确(当时大老板提问时问了这个问题)
speed mode | rate |