IIC协议原理以及主机、从机Verilog实现

1.原理以及主机实现

原理可参考【接口时序】6、IIC总线的原理与Verilog实现,原理讲的很详细,其中也给出了IIC主机的实现思路以及Verilog,包括写数据与读数据的过程,分为两个module。但没有给出从机的Verilog实现,因此我按照其思路设计了相应的从机且为一个module内实现主机的写数据与读数据请求,另外我也将主机的写数据与读数据的合并为一个module。

iic_master.v :IIC主机,可实现写数据与读数据请求的时序。

iic_slave.v :IIC从机,可实现接收主机的写数据与读数据请求的时序。

iic_sim.v  :IIC仿真testbench,仿真需要注意的是inout端口sda需要在此文件内实现,单独放到主机或者从机文件中都会出错(一直是x)assign io_sda = sda_mode ? sda_reg: sda_reg_slave;//inout

2.IIC从机的实现

需要先看懂【接口时序】6、IIC总线的原理与Verilog实现

其实按照主机的思路依葫芦画瓢可以有个大概,主要注意几点

1.从机的scl边沿检测,原理很简单,reg一下并保存,01就是上升沿,10下降沿

assign scl_neg = (scl_r == 2
  • 21
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值