首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA开发PCIE (二)

FPGA开发PCIE (二)

由于最近有一个防火墙的项目要做,任务比较重,一直没时间写,请大家多多包涵。
前面大致介绍了PCIE的FPGA板卡设计的几个问题,下面介绍PCIE的链路调试。
PCIE的链路调试就是通过在FPGA中例化PCIE IP,将板卡插入计算机中看计算机是否可以找到板卡。PCIE的例化可以参考FPGA手册的PCIE Endpoint user mannal,笔者不做详细介绍,只说明几个关键点:
1 选择适合自己的PCIE local bus,Xilinx的PCIE IP支持AXI接口和非AXI接口两类,要根据自己的需要选择合适的接口;
2 为PCIE IP选择合适的参考时钟频率,如果选用主板PCIE插槽上的参考时钟那么就选择100M,如果选用FPGA外接时钟,就可以选择100M和125M两种参考时钟,根据板卡的设计选择好参考时钟,如果参考时钟不对就找不到板卡;其他的配置选择根据自己项目需要,即使有不同只会影响后面的设计,而不会影响到计算机寻找板卡;
3 根据PCIE例化工程中的参考设计写好UCF文件,就可以将设计烧写到FPGA中,进行链路调试了。
链路调试主要有三个方面的问题:第一 链路没有连接上;第二 链路部分连接上,如x4的识别为x2或者x1,x8的识别为x4或者x2或者x1,gen2的链路识别为gen1的等;第三就是链路训练一直在recovery状态。这几种情况出现的话最坏的就是电路板信号完整性问题,那样就需要我们从新设计电路板了,还有就是可能是配置不正确导致的。下面介绍具体的调试方法,至于具体问题的解决方法,需要根据调试确定问题有针对性解决。不做具体的介绍,如果大家遇到上面相关的问题,希望可以提出来大家一起研究,这样大家都会有进步。
返回列表