微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA 有时正常 有时不正常

FPGA 有时正常 有时不正常

时间:10-02 整理:3721RD 点击:
用FPGA与单片机通讯,通过SPI接口方式,FPGA作为从机,单片机的SPI方式是用IO口模拟的。刚开始用了SPI的IP核,试着测试一下,用Modelsim仿真正常,但是下载到板子上,功能则有时候行有时候不行,我发现,当系统上电后,然后断电,又迅速上电,那每次都可以,如果经过一段时间才上电上电,则又不行了。就是要迅速重新上电才行。
我的测试是这样的,用简单的LED发光来指示。比如,单片机每个几百毫秒发送0xAA,然后几百毫秒发0xBB,FPGA如果收到AA,则点亮LED,收到BB,则LED灯灭,这样,LED就一直闪烁。



    时序正常不?



    综合后,用modelsim仿真好像是可以的。不知道是不是时序约束问题?用的是50M晶振,时钟约束设置多少较好呢?

当系统上电后,然后断电,又迅速上电,那每次都可以,如果经过一段时间才上电上电,则又不行了。就是要迅速重新上电才行。
你说的什么意思?是单片机上电后,FPGA板要马上上电吗?如果是这样,二者间的同步不够健壮。刚开始的时候,FPGA那边是复位后的原始状态,比如容易接收数据,状态都对;时间积累后,因为某些原因(可能是SPI发数状态机有问题、或者接收到的数据有问题,比如数据出现移位了,10101010多移了位等),并且这种错误无法被清除,只能手工复位。
你可以用chipscope抓一下出错后的数据和SPI波形分析下看看,知道出错的表现后再定位原因。

你用单片机写程序测你的FPGA是否正确



        谢谢。现在应该可以了。问题应该是FPGA复位时间不够长。导致FPGA有了电,复位引脚早变为1了。现在改小FPGA系统电压的去耦旁路电容,然后再拉长复位时间。暂时没发现问题。



    ,佩服

复位信号要用数字逻辑展宽的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top