完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
以前写过一篇文章如何处理未分配的管脚文章。
GSM教你使用ISE将未使用的管脚变成高阻态 很多人不以为然。 写一个听来的故事,给大家提提醒 一波三折——危险的“未分配”引脚 *第一折。半个月前,美国的同事对当前的一个工程进行了编译,并提交二进制文件 (FPGA配置文件)给软件工程师进行集成。结果该二进制文件导致了整个系统的崩溃:FPGA二进制文件 刚下载完毕,整个系统就不工作了。这一事件导致了美国FPGA工程师一整天的停工和系统恢复。Kevin给 出的分析结果是,FPGA给出的中断信号有问题,该信号经过CPLD转发到CPU后导致CPU反复跳入中断, 造成系统崩溃。后来,因为经过重新编译的二进制文件没有引发类似现象,该问题就被当作是一个偶然事 件被忽略了。 第二折。上周的某一天,在我们这边,类似的现象“终于”也发生了。由于时差的关系,我们没能得到美国软 件工程师的及时支持。眼瞅着手上仅有的两个系统陷入瘫痪,工作不能继续,没办法,只能自己硬着头皮调试 一下看看。系统崩溃后,嵌入式Linux操作系统的响应异常缓慢,通过网络登陆无法进行调试和控制。幸好还 有串口调试台,通过串口可以看到系统反复打印出对总线上特定地址范围的数据写入失败。由于该现象发生在 FPGA文件下载完成后,我通过在系统启动后FPGA下载前杀掉相关进程的方法阻止了系统的崩溃:只要不下载 FPGA文件,或者替换为旧文件,系统就不会崩溃。 接下来,我试图找出FPGA引发系统崩溃的原因。中断信号引发系统崩溃的说法首先被排除了,原因是FPGA的 中断产生逻辑电路相当标准,不可能产生随机的错误行为。问题缩小到FPGA连接到CPU的双向数据总线上, 这里是除中断外唯一一个由FPGA驱动到CPU的逻辑电路。我的推论是,由于该FPGA工程没有对CPU相关的输 入输出引脚进行时序约束,两次编译会导致双向数据总线的输出使能信号的响应差异,这一差异进一步影响了 FPGA驱动双向数据总线的速度差异,在某些情况下,FPGA或早或晚地驱动了总线,引发了总线驱动冲突,导 致CPU对总线上其它设备的访问失败。经过对所有CPU相关的信号进行时序约束后,编译的二进制文件没有引 发系统崩溃。 第三折。问题并没有这样得到解决。两天后,在又一次对该工程进行编译后,一模一样的问题又出现了。去 除我先前给工程施加的时序约束后,问题反而没有了。不加约束会错,加了约束也会错,看来约束并没有作用 到问题的本质上。唯一可以得到确认的结论是:两次FPGA编译的结果是有差异的,特定电路的编译结果并没 有得到时序约束的有效控制;问题随机出现,但是表现一致。 这一次,为了定位导致问题的具体逻辑电路,我必须对出问题的编译结果进行分析和实验。二进制文件是 最终的编译结果,时序分析报告也是编译结果,但是这两个结果要么不可分析,要么包含了太多的信息而无法 分析。我唯一可以进行分析和实验的对象就是布局布线(P&R)之后的底层网表数据。 通过RTL视图,我逐个定位了CPU相关引脚在RTL视图中的位置。修改特定LE的对外连接和内部逻辑关系,我把 所有可能驱动CPU的相关逻辑都关闭了:中断信号被禁止了,双向数据总线的使能被禁止了。我在不影响所有其 他逻辑的功能和时序特性的情况下,得到了一个完全不会驱动CPU总线相关信号的FPGA二进制文件。出乎意料的 是,该二进制文件下载后,系统依然崩溃。 到了这一步,我找遍了“路灯下所有能找的地方”,只能向其他方向“胡乱”摸索了。我尝试了给来自 CPU的控制输入信号,包括所有的地址线,增加上拉电阻的方法,也没有成功。 经过了类似的一系列摸索,最终我在PlanAhead视图中发现了蹊跷:在该工程中竟然存在没有分配布局位 置的输出引脚,而这些输出引脚在该项目中并没有被实际的输入逻辑驱动,这些引脚被工具缺省地连接 到了逻辑“0”上。通过比较成功和失败两次编译结果中给出的最终引脚分配报告,我发现,这些没有得到 位置约束的引脚竟然可能随机出现在任意的空闲引脚上。 通过进一步分析,在导致系统崩溃的编译结果中我最终找到了答案:一个没有逻辑驱动,也忘了分配布局 位置的输出引脚被工具随机分配到了FPGA没有用到(也没有位置约束)的一根CPU地址输入线上,这根地 址线就被短路到了“0”电平上,进而导致CPU外部总线上特定地址范围不能被CPU访问到,最终引发了系统崩溃。
|
|
相关推荐
9 个讨论
|
|
|
经验分享,共同成长
|
|
|
|
|
|
|
|
|
好贴,学习了~!
|
|
|
|
|
|
|
|
|
好文,很有必要看一下
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
NVMe高速传输之摆脱XDMA设计50:主要功能测试结果与分析2 nvmePCIe高速存储
252 浏览 0 评论
NVMe高速传输之摆脱XDMA设计49:主要功能测试结果与分析1
1501 浏览 0 评论
907 浏览 0 评论
855 浏览 0 评论
658 浏览 0 评论
4427 浏览 63 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 12:39 , Processed in 0.618539 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1333