在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1858|回复: 0

[求助] 问i2c 设计中的时序约束问题

[复制链接]
发表于 2012-6-8 11:57:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
i2c 协议规定, 在SCL为高期间,SDA的下降沿认为是start信号,
所以设计检测start 的code用:

always (negedge SDA or negedge SCL) (假定这里只有SCL=0做start的reset)
  if (!SCL)  start <= 0;
  else start        <= 1;

另外内部的一个ff,需要用这个start信号做reset(假定这里只有start做reset信号)

always (negedge SCL or posedge start)
  if (start)   ff1  <= 0;
  else ff1  <= a; ...


现在的问题是,ff1的reset信号start是在scl的下降沿被清0的,而ff1本身也是在scl的下降沿改变的,所有对ff1来说,需要保证他的reset 信号start的removal时间没有问题。那么pt里面应该如何约束,以及如何检查removal没有问题呢?
这里应该如何约束。
1.是否需要分别针对SDA SCL各创建一个时钟,假定SCL的频率在5m, 在SCL=1期间,SDA 从1->0 后起码50ns后,SCL才会从1->0.  如果需要创建的话,应该怎么写。
如果需要分别创建时钟,应该怎么约束这两时钟间的关系? 假定以SDA做clock的时钟域,总共就2个register: 1个是这里说的start,另外一个就是和start很类似的stop信号(在scl为高期间,SDA的上升沿认为是stop信号,且SDA起码上升50ns后,SCL才会从1->0),
是否需要设置 false_path?

先谢谢大家了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-8 04:00 , Processed in 0.017035 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表