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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2536|回复: 8

[求助] 遇到一个奇怪的问题,求解答!

[复制链接]
发表于 2013-8-28 21:29:20 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 newaysoft 于 2013-8-28 21:35 编辑

我用FPGA驱动LCD1602,按手册,每次写LCD之前,要读LCD忙信号,我把读到的忙信号放变量K 里,供状态机判断(如果K为高,就说明LCD忙,然后状态机停留在本状态,直到K为低).现在遇到个奇怪的问题:向LCD连续写数据,很快LCD就不再有任何显示了,必须复位或者重启才能正常,所以怀疑是K导致,我就把这个变量K引出来放在空余管脚上,想观察状态,结果,程序没做任何改动情况下,再怎么连续发数据,LCD都能正常显示了,接着我又把K从管脚上取消掉,问题就又依旧了,实在很奇怪,你们曾遇到过类似问题吗?有可能是什么导致的呢?
发表于 2013-8-29 10:26:37 | 显示全部楼层
变量K是什么类型?REG,WIRE?驱动它的信号来源是怎样的?有没有高阻态?
 楼主| 发表于 2013-8-29 13:13:00 | 显示全部楼层
是REG类型,奇怪的是,为什么把这个信号引导出到管脚后,就没再出错了,很想知道因为什么导致这个问题
发表于 2013-8-29 13:49:37 | 显示全部楼层
这个信号综合后应被优化掉了,不存在这个寄存器了。
但是如此你放它到输出PIN,这个寄存器会被保留。 或者你设个保持它不被优化的约束,估计上板也会正常。
总的来说,你代码写得可能健壮性不够才导致问题,不介意的话把相关代码放上来看看。
发表于 2013-8-29 13:59:11 | 显示全部楼层
上代码呗
 楼主| 发表于 2013-8-29 15:05:04 | 显示全部楼层
本帖最后由 newaysoft 于 2013-8-29 15:43 编辑

在RTL VIEWER 里有K,没有被优化掉,同时LCD是能够正常显示的,只有当连续不断(间隔大约100MS)给LCD写数据,才会显示出错,如果间隔时间比较长,LCD还是能正常显示的,无意间我吧分析综合设置里的最优技术,从平衡修改为区域,问题解决了!无论发多快数据,LCD都能正常显示.把K引出来,也是因为改变了chip planner,才正常的.

平衡优化时的 chip planner
b.png


区域优化时的 chip planner
Z.png


这个问题是否就是时序导致的呢?
发表于 2013-8-29 17:01:35 | 显示全部楼层
时钟频率是多少?有timing slack报告吗?
这个问题更多像是状态机健壮性不够,进入了死状态,这方面好好看看。
发表于 2013-9-3 10:38:31 | 显示全部楼层
时序问题的可能性很大
发表于 2014-12-18 00:28:51 | 显示全部楼层
不应该是用时序约束控制让编译器自己去布局布线的么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 15:21 , Processed in 0.024024 second(s), 9 queries , Gzip On, Redis On.

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