Xilinx FPGA学习笔记 —— Pin Planning Methodology

时间:2024-03-15 09:42:19

I/O引脚分配工作步骤

               Xilinx FPGA学习笔记 —— Pin Planning Methodology

1. 选择FPGA器件

考虑器件的资源需求,结合PCB上关键路径的位置考虑器件封装的选择。

2. 选择器件的配置模式

不同的配置模式对应了不同的配置引脚,某些配置需要用到一定数量的用户IO,串行配置模式占用少,并行配置模型占用多。而在配置完成后这些用户IO可以被用于其他功能。但是在配置过程中,必须保证这些IO不受用户其他应用的信号的干扰。

若IO引脚数量充足,最好还是不要复用这些配置用IO引脚。

3. 选择吉比特收发器(GT)引脚

GTs通常有其专用引脚,并通常与其他GTs或IO时钟域共用时钟输入引脚(CCIO)。

此外,Xilinx列出了在各个FPGA家族中一系列不建议使用的位于GTs附近的IO引脚,不恰当地使用了这些引脚将会对GTs的信号完整性造成影响。

用户可以用Clock Resources视图和Device视图来放置GTs,还需要避免某些些硬核IP会阻碍GT ( ? )。

4. 定义外部存储器接口引脚

取决于对时钟频率和延迟(偏移),高速存储器接口(如DDR2、DDR3等)对IO引脚的选择有着特定的需求。

用户可以通过Memory Interface Generator(MIG)工具来配置相应的IO引脚约束,并将这些约束添加到最终的UCF文件中。

5. 定义IP接口引脚

某些IP核(如Ethernet以及PCIe)有特定的IO引脚需求,使用CORE generator工具可以创建各类IP核并自动分配引脚。

6. 定义普通用户功能IO引脚

可以使用IO Planning视图或项目进行可视化的用户IO引脚配置。

7. 定义IO电平标准和属性

用户可选择自动IO分配功能实现自动IO分配。

需要注意“差分IO对”的存在。

可运行设计规则检查(Design Rule Check, DRC),以检查IO电平标准与IO所在的Bank属性是否冲突。

有些IO电平标准可以在一个Bank中组合使用,有些则不能。

8. 定义时钟引脚与时钟拓扑结构

使用FPGA器件上提供的专用时钟输入引脚可获得最佳的时序性能。

使用比全局时钟资源数量更少的时钟的设计通常更简单。

对于更复杂的时钟拓扑结构,用户需要输入时钟树和足够的时钟负载,以便通过布局和布线来运行早期设计并验证其功能。

复杂的时钟拓扑结构包括高速时钟计数器的设计,需要自动或手动规划资源布局来使用区域时钟资源。

9. 布局和布线设计

至此,大部分主要结构(I/O、IP和时钟)都应该定义好了。

定义的和可用的上述主要结构越多,运行DRC的结果就越精确。

该阶段需要执行以下步骤:

    > 锁定所有的IO引脚;

    > 在布局和布线以前运行一次DRC;

    > 运行布局和布线来验证当前的引脚配置方案;

      (注意,当前阶段并不需要定义完整的用户逻辑,而只需要确定和IO有关的主要结构。)

    > 对当前设计进行完全布局(Implementation)来验证IO引脚是否合法;

    > 检查 ngdbuild report和map report所列出的与IO、时钟相关的消息。

11. 噪声分析(SSN和SSO)

噪声分析的方法有SSN和SSO两种:

Xilinx FPGA学习笔记 —— Pin Planning Methodology

当出现过大的噪声干扰时,需要优化设计:

    > 使用低噪声冲击的IO电平标准;

    > 降低驱动强度;

    > 使用并行端接DCI标准;

    > 降低驱动器的级别(如:Changing the SSTL Class II to an SSTL Class I);

    > 重新定义引脚位置,远离噪声源;

    > 将下降沿引脚分散到不同的IO Bank内从而降低单个Bank电源的突变噪声;

    > 将下降沿组分散到多个同步相位上。

优化设计后:

    > 重新进行第9步:布局和布线设计

    > 重新进行第10步:噪声分析(SSN和SSO)

12. 板级考虑

需要通过专业仿真软件,利用特定FPGA器件的IBIS(Input/Output Buffer Informational Specification)或HSPICE模型进行信号完整性仿真分析。

可将FPGA器件的引脚布局导入到第三方PCB分析设计软件以设计出更好的引脚分配方案。

优化设计后:

    > 重新进行第9步:布局和布线设计

    > 重新进行第10步:噪声分析(SSN和SSO)