学习pcie—20240708
学习pcie引脚分配及约束
参考:doc/FPGA_PCIe_pin_assignment.md · Dr.X.Wang/Xilinx-FPGA-PCIe-XDMA-Tutorial - Gitee.com
阅读开发板PCB原理图(schematic) ,自己编写 .xdc 进行引脚分配。以米联客7k325t为例
1.
首先我们要找到 PCIe 插口 这个元件(也就是PCIe金手指,用来插到计算机主板的PCIe插槽里)。
找到四对差分信号线,红色部分所示
找到参考时钟,黄色部分所示
找到复位信号,绿色部分所示
2.
找到fpga的引脚 原理图中没有连线,但是已经有约束文件
所以只能反着找了,正着推不出来。
这里注意以下几点:
PACKAGE_PIN
后跟着的是这个引脚对应的引脚号。- Xilinx 规定:对于差分对(包括差分时钟和差分信号),只需要约束 P 而不需要约束 N ,因此 .xdc 里没有出现
i_pcie_refclkn
、o_pcie_txn
、i_pcie_rxn
。 - TX 和 RX 是在 RC 的视角上而言的。而在 .xdc 里我们推荐使用 FPGA 的视角,与 RC 的视角相反,因此 .xdc 里的
o_pcie_txp[0]
对应的是原理图中的PCIE-RX0_P
,以此类推 …… - NetFPGA 提供了 PCIe x8 的宽度。而实际上我们可以只用更窄的 x1 和 x4,此时我们要在 .xdc 中注释掉不用的引脚。
- 例如只使用 PCIe x1 时,应该注释掉
o_pcie_txp[1~7]
和i_pcie_rxp[1~7]
;只保留o_pcie_txp[0]
和i_pcie_rxp[0]
。
- 例如只使用 PCIe x1 时,应该注释掉
- PCIe 复位信号 的
IOSTANDARD LVCMOS18
是指该引脚的电平为 1.8V CMOS 。 PCIe 的时钟和信号引脚不需要指定IOSTANDARD
- PCIe 复位信号 的
PULLUP true
是指该引脚弱上拉为高电平。这里不指定PULLUP true
应该也不影响功能,不过我还没试过。 -
对于以上 .xdc 约束文件,则 FPGA 工程的顶层 Verilog 文件的模块定义应该如下。注意:
- .xdc 中的引脚名应该和 Verilog 中保持一直。
- 对于一对差分信号, Verilog 中会出现 P 和 N 这两个信号。而不像 .xdc 中只需要约束 P 。
原文地址:https://blog.csdn.net/weixin_49574391/article/details/140269979
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!