Xilinx FPGA时钟及I/O接口规划(一)

本文转载自:FPGA技术实战

注:本文由作者授权转发,如需转载请联系作者本人

引言:从本文开始,我们介绍Xilinx FPGA时钟及I/O接口规划设计。I/O和时钟规划是定义和分析FPGA和印刷电路板(PCB)之间连接的过程,并将各种互连信号分配给FPGA器件的物理管脚,正确的规划I/O端口和时钟分配会提高FPGA系统性能、减少设计迭代和缩短计开发时间。本文主要介绍时钟及I/O规划的各个阶段及流程要点。

1.1 概述

I/O和时钟规划过程会涉及PCB设计师、FPGA设计师和系统设计师,通常会关注一下几点内容:

  • 简化关键信号连接,缩短信号长度,避免信号交叉;
  • 保持输入和输出器件高速信号的完整性;
  • 选择可能与备用设备一起使用的I/O配置;
  • 确定PCB上的电源和接地信号可用性;
  • 确定PCB适当去耦的要求;
  • 确定器件编程和调试注意事项。
  • 通常,设计人员会受到非最佳引脚的阻碍,在试图满足时序和信号完整性要求时,会导致进一步延迟。通过考虑从PCB到FPGA芯片的数据流,可以快速实现最佳的引脚配置,从而减少内部和外部走线长度以及路由拥塞。I/O和时钟规划主要利用Vivado®集成设计环境(IDE)的图形用户界面(GUI)完成。

    1.2 I/O和时钟规划阶段

    图1、FPGA器件管脚布局

    Vivado Design Suite有助于在设计过程的不同阶段进行I/O和时钟规划,实现从PCB设计师和FPGA设计师之间的初始协作到完全实现设计的验证。随着设计在设计流程中的推进,更多的信息变得可用,从而实现更复杂的分析和规则检查。例如,在设计流程的早期分析使用估计数据,例如延迟信息,而对综合网表或实现的设计的分析使用实际器件和互连延迟。

    正确的I/O分配取决于FPGA的结构、PCB设计的要求以及两者之间的交互。I/O端口分配(定义PCB信号如何进入FPGA设计或输出到电路板)和时钟资源分配(定义设计中时钟树的结构)通常一起完成。例如,器件上的某些管脚用作时钟管脚是最佳的,而其他管脚对于数字控制阻抗(DCI)级联和内部电压参考(VREF)是最佳的。

    某些类型的IP,如内存IP、千兆收发器(GT)、Xilinx的高速IO IP以及PCI Express®(PCIe)和以太网接口都有与之相关的I/O端口。在开始I/O规划过程之前,必须使用Vivado Design Suite中的IP功能正确配置此IP。由于这些接口通常对时序最为关键,因此在考虑设备管脚分配时,将此IP用作起点。此外,使用此IP时,请使用RTL或综合设计。

    RTL前I/O规划

    在进行RTL设计前,可以创建一个空的I/O规划工程,以便在设计源文件可用之前启用早期器件初始I/O端口分配。使用这种方法,PCB和FPGA设计师能够就早期的引脚定义达成一致,从而消除设计周期后期与设备引脚更改相关的迭代。使用I/O规划工程,您可以:

  • 从PCB设计器导入器件和I/O端口分配,或手动创建I/O端口;
  • 导出器件和I/O端口分配,以交给PCB设计师,或在设计过程中稍后使用;
  • 解决端口定义和引脚分配后,将I/O规划工程迁移到RTL项目;
  • 根据端口定义,为顶层设计创建Verilog或VHDL模块定义。
  • 完成I/O规划工程中的端口分配后,可以将该工程迁移到RTL工程,并为顶层设计创建Verilog或VHDL模块定义。

    RTL I/O规划

    在详细的RTL工程中执行I/O规划,通过这种方法,可以选择包括Vivado IP目录中的IP核,也可以包括Vivado IP integrator中的块设计。使用IP目录,您可以自定义IP,使用时钟向导自定义时钟组件,并配置SelectIO™ 使用SelectIO界面向导连接资源。在精心设计中,Vivado工具提供基本的DRC,用于检查端口分配、I/O标准、时钟资源和其他设计细节。您可以使用精心设计完成初始I/O和时钟规划,并导出设备和I/O端口分配,以用于PCB原理图符号生成,或将约束保存在XDC文件中,以便在综合或实现期间使用。

    网表I/O规划

    还可以使用综合的网表执行I/O规划。使用这种方法,可以使用合成的RTL项目,也可以使用综合后的网表创建的网表项目。尽可能使用综合设计来执行I/O和时钟规划。Vivado工具在合成后有更多关于设计的信息,您可以使用自动I/O放置和交互式放置模式来控制I/O端口分配。还可以使用I/O规划视图布局查看设备包的物理管脚与设备上I/O组的管芯焊盘之间的关系。

    使用综合设计还可以让您在优化PCB和Xilinx®设备之间的连接时做出更明智的决定。这使您能够更好地与PCB或系统级设计器接口,从而更容易从分配IO放置的IP核(如PCIe或内存IP)合并IO放置。此外,由于所有时钟(包括生成的时钟)都是在综合后定义的,Vivado Design Suite对时钟要求和资源利用率有更大的可见性,并且可以对设计进行更彻底的验证。

    建议:为了检查时钟逻辑,Xilinx建议使用综合设计进行验证。为了检查时钟计时,Xilinx建议使用已实现的设计进行验证。

    最终I/O验证和已实施的设计

    您必须使用完全实现的设计来验证最终有效的I/O引脚和时钟配置。正确的时钟资源验证需要所有时钟的完全路由实现。可以检查实现报告中与I/O和时钟相关的消息。最后,与PCB设计师仔细检查I/O端口分配,以确保FPGA在系统级设计中得到正确定义。

    1.3 I/O和时钟规划设计流程步骤

    图2、I/O和时钟规划设计流程图

    图2左侧显示了的项目设计流程步骤。水平箭头指示项目设计流程中可以执行I/O和时钟规划的不同阶段。I/O和时钟规划设计流程中的步骤如图右侧所示。

    1) 选择器件及兼容器件

    FPGA器件选型时,根据最终设计的资源估算确定器件资源大小。根据PCB要求选择封装,例如通往存储器的关键路径。另外,还要考虑器件的兼容性,因为在设计初期,特别对于未知的算法或逻辑,难以估计资源使用,这时需要选择具有较大资源器件,考虑到后期产品上市成本,又要考虑兼容小资源器件。

    2) 选择配置、DCI级联和内部VREF

    Xilinx设备每次通电时都必须进行配置。比特流通过启用不同配置模式的特殊配置引脚加载到器件中。应用程序中使用的配置模式可能会影响设计的I/O规划。

    在开始I/O分配之前,确定和规划配置模式非常重要。配置模式不仅决定了某些管脚的可连接性,还决定了包括多功能管脚的I/O组所需的VCCO电压。

    根据I/O标准,数字控制阻抗(DCI)可以控制驱动器的输出阻抗,或为驱动器、接收器或两者添加并行终端,以匹配传输线的特性阻抗并改善信号完整性。DCI在每个I/O组中使用两个多用途参考引脚来控制驱动器的阻抗或组中所有I/O的并行端接值。

    带有差分输入缓冲器的单端I/O标准需要参考电压(VREF)。您可以使用internal_VREF约束生成内部VREF,这样就不需要在PCB上提供特定的参考电压供电轨。在7系列和UltraScale中™ 架构,这可以释放给定I/O库中的多用途VREF引脚,用于其他I/O端口分配。

    3) 配置I/O端口和时钟

    器件上的I/O端口支持多个I/O相关约束,例如电平标准、压摆率和驱动电流。配置这些端口以支持系统级设计所需的I/O标准。I/O标准定义可能会影响管脚的放置。例如,可以在单个I/O Bank中组合某些I/O标准,但不能组合其他标准。

    Xilinx器件被细分为时钟区域的列和行。时钟区域包含可配置逻辑块(CLB)、I/O组、数字信号处理(DSP)片、块随机存取存储器(RAM)、互连和相关时钟资源。每个I/O Bank都包含支持时钟的输入引脚,用于将系统或板时钟引入设备和时钟路由资源。您必须计划使用这些时钟资源,以便将设计中的时钟分布到器件上。

    建议:Xilinx建议您使用Vivado IP目录中的时钟向导来生成混合模式时钟管理器(MMCM)或锁相环(PLL)模块,以定义时钟连接。

    4) 分配DDR内存控制器I/O端口

    内存IP定义了一个使用预制控制器和物理层(PHY)的内存控制器,用于将FPGA设计与支持的外部内存设备连接。高速内存控制器以及以太网IP和PCI Express®(PCIe)技术IP都有特定的引脚要求,这是由时钟和偏移需求驱动的。

    当IP核添加到设计中时,必须定义千兆收发器(GT)、PCIe技术和7系列DDR内存IP的I/O物理引脚分配,作为IP定制的一部分。要更改I/O分配,必须在设计中重新自定义IP。

    注意:I/O规划工程不会从复杂IP(如内存控制器、PCIe或千兆收发器)的IP文件中读取物理管脚分配。

    5) 放置I/O端口

    您可以使用不同的方法将设计中的I/O端口以交互方式分配给器件上的管脚。您可以在I/O端口窗口中选择称为接口的单个I/O端口或I/O端口Bank,并将它们分配给package窗口中的package Pin或Device窗口中的I/O Pad。

    6) 运行DRC和SSN分析

    在完成I/O和时钟分配后,通过运行设计规则检查(DRC)和同步开关噪声(SSN)分析来分析设计至关重要。DRC根据一组指定的设计规则验证当前设计,并报告任何违规行为。SSN分析估计了同时切换输出可能在I/O组的其他输出端口上造成的干扰。计算和估算将I/O组特定的电气特性纳入预测中,以确定设计中潜在的噪声相关问题。

    注意:SSN分析估算旨在确定设计中潜在的噪声相关问题,而不是作为最终设计签核标准。

    建议:Xilinx建议您在综合之后、实施之前以及实施之后运行DRC和SSN分析。这使您能够在设计周期的早期发现问题。

    7) 实施设计

    在生成比特流以配置Xilinx器件之前,必须实现该设计。在实现过中,Vivado工具将设计元素放置在器件资源上,布线设计网络,并进行优化以降低功耗和时序收敛。

    8) 生成PCB数据(XDC、CSV、IBIS)

    I/O和时钟规划是一个迭代过程,包括PCB或系统设计师与FPGA设计师之间的信息交换。它可以从使用从CSV文件导入的目标设备引脚从PCB输入开始。完成I/O和时钟规划流程中的步骤后,可以使用逗号分隔值(CSV)文件和I/O缓冲区信息规范(IBIS)模型返回引脚,以及用于信号完整性分析的设备模型。

    1.4 小结

    时钟和I/O规划是否合理、正确,对于产品的性能及开发周期有着非常重要的作用。在FPGA电路板及RTL逻辑设计早期进行规划,也是Xilinx快速开发方法学极力推荐的。下一篇博文,我们介绍如何进行FPGA器件的配置,配置方案对时钟及I/O Bank电压标准产生影响。

    最新文章

    最新文章