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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4400|回复: 9

[求助] i2c验证问题

[复制链接]
发表于 2019-5-20 16:03:18 | 显示全部楼层 |阅读模式

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

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

x
我都FPGA板子是Cyclone IV E,在I2C验证时遇到了几个问题,有没有大神能指导下
1.在modelsim仿真时,进行读操作时,由于sda为inout信号,导致在转换时产生毛刺,会被寄存器读到,从而产生一个不定态,然后就无法读写寄存器,我此时在sda端口加了个1ns的延时,这样能正常读写了,但是我用gate-level仿真时,又出现了相同的情况,这样该怎么解决比较好?
2.我仿真时sda是延后于scl,烧写板子,用通用I2C测试时sda和scl是同步的,这样会多采一个'1',我用Timequest timing analyzer建立了一个post-map,然后读取sdc,再更新时序,最后编译写入后,但是有时候有延时,有时候还是同步都,我的sdc如下:
create_clock -period 2000 -name CLK [get_ports scl]

set_input_delay -clock CLK -max 1200 [get_ports sda]

set_input_delay -clock CLK -min 500 [get_ports sda]

是步骤有问题,还是设置的有问题
3.我用signaltap抓信号时发现明明设置下降沿触发的寄存器,有时候上升沿也会触发,这一般是由什么引起的?

发表于 2019-5-20 18:06:50 | 显示全部楼层
I2C,居然要这么复杂?输入输出,3态直接搞定了,逻辑错了吧!
 楼主| 发表于 2019-5-21 09:25:46 | 显示全部楼层


chindis 发表于 2019-5-20 18:06
I2C,居然要这么复杂?输入输出,3态直接搞定了,逻辑错了吧!


逻辑没问题,你有没有遇到过下降沿触发的寄存器偶尔会有上升沿也触发的情况
发表于 2019-5-21 09:38:44 | 显示全部楼层
估計會這樣是因為毛刺的關係, 畢竟你用SignalTap來調適, 而SignalTap本身的解析度會強烈依賴系統時鐘. 比如說你設定的SignalTap是使用50MHz的時鐘, 依據Nyquist Rate, 40ns以下的pulse都抓不到.
发表于 2019-5-21 10:04:56 | 显示全部楼层
I2C,居然要这么复杂?输入输出,3态直接搞定了,逻辑错了吧!
 楼主| 发表于 2019-5-21 11:03:22 | 显示全部楼层


hyperpicc 发表于 2019-5-21 09:38
估計會這樣是因為毛刺的關係, 畢竟你用SignalTap來調適, 而SignalTap本身的解析度會強烈依賴系統時鐘. 比如 ...


我现在signaltap是用500K采的,没有看到毛刺,用示波器查看时也没看到毛刺,示波器应该是100MHz的吧,这有什么办法去避免这个毛刺吗?scl是从电脑串口输出都,经过板子直接链接到了FPGA板子上,我之前io standard设置都是2.5V,但是改成3.3V LVCMOS也不行
PS:我时钟约束设置有什么问题吗?想让sda滞后于scl
 楼主| 发表于 2019-5-21 11:04:42 | 显示全部楼层


scofieldswq 发表于 2019-5-21 10:04
I2C,居然要这么复杂?输入输出,3态直接搞定了,逻辑错了吧!


逻辑没问题,在vcs上仿真没问题,在modelsim上仿真就各种问题,请问下我时钟约束加的有什么问题吗?想让sda滞后于scl
发表于 2019-5-21 14:48:57 | 显示全部楼层


wq2020wdm 发表于 2019-5-21 11:04
逻辑没问题,在vcs上仿真没问题,在modelsim上仿真就各种问题,请问下我时钟约束加的有什么问题吗?想让s ...


说你设计有问题,你还没明白呢,你做的这个I2C应该速率不高吧,用一个高时钟去控制sda和scl,比如说8分频,scl在第3个clock翻转,sda在第1个clock保持,是不是就不用你那么复杂的时序约束了!时钟也能采到数据的有效位置了!换个思路就好了,为什么非得去整那么多的时序约束呢?好的约束是在设计中体现的,而不是约束才能让你的设计变好
发表于 2019-5-21 16:02:43 | 显示全部楼层


scofieldswq 发表于 2019-5-21 10:04
I2C,居然要这么复杂?输入输出,3态直接搞定了,逻辑错了吧!


你干嘛老是抄我的回复
发表于 2020-2-26 17:29:13 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 13:29 , Processed in 0.022556 second(s), 8 queries , Gzip On, Redis On.

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