标题:克 服 FPGA I/O 引脚分配挑战 转2010-03-06 15:07:45对于需要在PCB板上使用大规模F2GA器件的设计人员来说I/O引脚分配是必须面对的众多挑战之一由 于众多原因,许多设计人员发表为大型FPGA器件和高级BGA封装确定I/O引脚配置或布局方案越来越困 难但是组合运用多种智能I/O规划工具,能够使引脚分配过程变得更轻松在PCB上定义FPGA器件的I/O引脚布局是一项艰巨的设计挑战,即可能帮助设计快速完成,也有可 能造成设计失败在此过程中必须平衡FPGA和PCB两方面的要求,同时还要并行完成两者的设计如 果仅仅针对PCB或FPGA进行引脚布局优化,那么可能在另一方面引起设计问题为了解引脚分配所引起的后果,需要以可视化形式显示出PCB布局和FPGA物理器件引脚,以及内部 FPGA I/O点和相关资源不幸的是,到今天为止还没有单个工具或方法能够同时满足所有这些协同设计 需求然而,可以结合不同的技术和策略来优化引脚规划流程并积极采用Xilinx PinAhead技术等新协同设计 工具来发展出一套有效的引脚分配和布局方法赛灵思公司在ISE软件设计套件10.1版中包含了 PinAhead。
赛灵思公司开发了一种规则驱动的方法首先根据PCB和FPGA设计要求定义一套初始引脚布局,这 样利用与最终版本非常接近的引脚布局设计小组就可以尽可能早地开始各自的设计流程 如果在设计流程 的后期由于PCB布线或内部FPGA性能问题而需要进行调整,在采用这一方法晨这些问题通常也已经局部 化了,只需要在PCB或FPGA设计中进行很小的设计修改步骤 1: 评估设计参数那么,从哪里开始呢?首先应当尽早制定I/O分配策略但没有优化工具或完整的网表,完成这一任 务可能很困难首先,让我们先回答几个问题来确定PCB物理参数和限制:* PCB 板有几层、走线宽度以及过孔尺寸多大?* PCB参数对可使用的FPGA封装类型(如BGA)有限制吗?* PCB上有没有FPGA必须使用的固定接口位置?其它芯片、连接器或布局限制?* 哪些高速接口需要特别关注?能否将布局策略可视化,从而保证最短互连?你会发现画一张PCB布局图很有帮助PCB布局图上应当包括所有主要元器件以及关键接口和总线, 从而可以帮助确定最佳的FPGA引脚分配请注意将元器件画在PCB板的实际安装面上标注出需要特 别关注的接口,如高速总线和差分对(图1)。
下一步,检查FPGA器件的布局来了解芯片上的物理资源所在列出设计中使用的不同电压和时钟, 开始隔离设计需要的接口然后确定设计是否使用特殊的I/O接口资源,如千兆收发器(GT)、BUFR、 IODELAY以及数字时钟管理器这些资源可能需要将有关的I/O引脚布署得尽量互相靠近现在需要确定设计中使用的PowerPC、DSP48和RAM16等FPGA资源的位置将连接到I/O组的任 何相关I/O尽量置于尽相关资源最近的地方然后看一下能否将某些I/O信号组合到接口,这对于引脚分 配很有帮助最后,确定FPGA的配置模式图1 PCB连接图步骤 2: 定义引脚布局要求一旦了解了主要的FPGA接口并创建了物理布局的原型,就可以定义引脚布局了有些设计人员喜欢 使用包含所有I/O信号数据表来保持与引脚的对应你可以按电压、时钟、接口或总线对它们进行分组 这一方法确实非常有用,因为它可帮助你将信号组合成组,从而在分配引脚时可以按组进行 这一阶段, 你还会发现为了实现最优PCB布线,有些关键接口必须置于器件的某个边,或者利用外部物理引脚在考虑到FPGA和PCB要求并确定了主要的接口位置以后,下一步是根据所有这些条件将引脚分配给 I/O 组。
这也是真正开始工作的地方 在当前的设计流程中,引脚分配时一项耗费时间的任务,在解决任 何性能和信号完整性问题的过程中可能会涉及许多尝试和错误 传统上,设计人员都是徒手画图来完成这 项任务的,因为EDA和芯片供应商没有提供帮助设计人员将FPGA和PCB引脚布局可视化的工具但现在赛灵思公司提供了相应的工具在ISE Foundation软件工具10.1版本中包含的PlanAhead Lite 是PlanAhead设计、分析和平面布局工具的简化版其中包括的针对PCB和FPGA设计的PinAhead的 工具使得 I/O 引脚配置更为容易这里我们不打算详细介绍该工具的所有细节,而只是看一下如何将其用于I/O引脚分配如果你希望 了解 PinAhead 的更详细信息,包括视频展示和教程,请访问 步骤3:利用PinAhead进行引脚分配PinAhead环境提供了一组不同的视图利用这些视图可以帮助完成I/O端口信息与物理封装引脚或裸 片I/O盘(Pad)的对应和分配(图2)PinAhead的图形环境与PlanAhead类似,在器件视图中清晰地显示出芯片上的I/O盘和相关资源,并 在封装视图中显示出物理器件引脚。
视图同时显示出I/O端口和物理引脚信息,这样可以通过交叉选取来 试探逻辑设计和物理器件资源的对应你可以在没有设计网表的情况下使用PinAhead来尝试器件资源,或者直接开始I/O引脚规划流程封 装引脚视图(“Package Pins” view)根据器件数据表列出了器件封装技术参数,因此大多数情况下在进行引脚 配置时都不再需要去参考器件数据手册封装引脚视图以列表形式对I/O组(bank)进行了分类,因此可以 同时在器件和封装视图中交叉选择和高亮显示I/O组视频清晰显示出物理引脚位置和裸片中的I/O盘的 关系,从而简化了 I/O组的优化选择封装引脚视频还显示了 I/O组中每一引脚的信息你可以利用PinAhead接口从头开始创建I/O端口,也可以从CSV格式数据表、HDL源文件头或综合 后的网络和UCF格式约束文件中导入I/O端口I/O端口视图(“I/O Ports” view)显示出设计中定义的所有 I/O 端口信号,总线文件夹则显示分组的总线和差分对信号你可以按不同方式对封装引脚和I/O端口视图进行排序可以切换列表视图显示基于分类的列表或全 部列表,或者点击鼠标对封装引脚视图进行排序,显示所有可用的全局时钟或地区时钟引脚。
同时还可以 将信息导出到CSV格式数据表,做为引脚配置的出发点PinAhead还提供了一个界面,支持有选择地禁止PinAhead将I/O端口分配给某些I/O引脚、I/O引脚 组或I/O组可以在封装引脚、器件或封装视图中选择和禁止引脚例如,你可以对封装引脚视图(PackagePins view)排序并禁止所有VREF引脚PinAhead允许将相关的I/O端口和总线组合为“接口”(inteRFace)这样组合使你可以将相关I/O端口 做为单个实体处理,从而简化了 I/O端口管理和分配任务接口组合功能可以更容易地可视化显示和管理 与特定逻辑接口相关联的所有信号可方便地在设计间拷贝接口,或者利用接口组合生成特定接口的PCB原理图符号组合后的接口在 I/O端口视图中以可扩展文件夹的形式出现,通过在视图中选择I/O端口并将其拖动到接口文件夹,可以将 额外的 I/O 端口添加到接口组合中当创建I/O端口时,可将其分配到封装引脚或I/O盘(pad)在此之前,最好先检查一下I/O端口的最 初PCB互连草图并与PCB设计人员协商,了解布放不同I/O端口接口的相关位置和其它需考虑的因素适 当的总线顺序和边缘距离有PCB布线非常有帮助,可以大大节约设计时间。
通过将单个引脚、总线和接口拖动到器件或封装视图,可以将它们分配到I/O引脚利用不同的分配 模式,可以将引脚组分配给选定的I/O引脚可用的模式包括“Place I/O Ports in an I/O Bank,” “Place I/O Ports in Area,” 以及 “Place I/O Ports Sequentially.”每种模式提供了将I/O端口分配到引脚的不同分配方式利用这些模式,可以通过鼠标光标处弹出的 窗口了解你所分配的端口数量信息直到分配了所有选定I/O端口之前,这一模式一直保持器件视图(Device view)以图形方式显示所有时钟区域和时钟相关的逻辑对象,从而使时钟相关的I/O分 配更容易、更直观选择一个时钟区将会显示所有I/O组、时钟相关的资源以及与其相关的器件资源PlanAhead软件试图保证你在引脚分配时始终符合规则在你的指引下,PlanAhead工具将差分以端 口分配给适当的引脚对当交互式指定I/O端口时,工具会运行规则检查(DRC)来保证布局是合乎规则的工具缺省设置运行在交互 DRC 模式,当然你也可以选择关闭这一模式 工具会检查电压冲突、 VREF 引脚或I/O标准冲突,以及位于GT器件附近的噪声敏感引脚。
当发现错误或问题时,工具会显示一条提 示信息(Tooltip),告诉你为什么不能够将某个I/O端口分配给特定的引脚通过激活PinAhead的“Autoplace”命令,还可以让其自动分配所有或任何选择的I/O端口到封装引脚 Autoplace 命令将会遵守所有 I/O 标准和差分对规则,并正确布署全局时钟引脚 该命令还会尝试尽量将 I/O 端 口组合为接口 (inteRFace)器件视图(Device view)以图形方式显示所有时钟区域和时钟相关的逻辑对象,从而使时钟相关的I/O分配更容易、更直观选择一个时钟区将会显示所有I/O组、时钟相关的资源以及与其相关的器件资源通 过可用资源与其物理关系的探索,区域时钟规划过程变得更容易还可利用 PinAhead 布局设计中其它与 I/O 相关的逻辑,如 BUFG、BUFR、IODELAY、 IDELAYCTRL 和DCM利用PlanAhead中的“Find”命令,可以方便地定位这些对象和布放点要想有选择地察看的扩 展逻辑和逻辑连接,请使用工具中的原理图视图(“Schematic” view)通过在PlanAhead软件中的某个视图中选择特定的I/O相关逻辑并将其拖动到器件视图(Device view) 中的选定位置,就可以锁定其布局。
PlanAhead软件将会自动判断,仅允许将有关逻辑放在合适的位置在拖动设计中的逻辑对象时,动 态光标会显示出适当的布局位置步骤4:为最终核签(Sign-Off)运行DRC和WASSO一旦完成引脚分配,就可利用PinAhead丰富的DRC规则来进行核签前的DRC检查,保证在运行 PlanAhead软件实施工具前设计是无错的工具中的众多I/O和时钟相关规则可保证I/O布局是合法的可 利用 PlanAhead 的 DRC 对话框来选择相应的规则如果工具发现违反规则的情况,将会显示带有错误信息的DRC结果表选择相应的错误信息可以更 进一步入地了解有关情况PlanAhead还提供了加权平均同步转换输出(WASSO)分析功能,可帮助识别引脚分配引起的潜在信号 完整性问题为工具提供PCB设计的寄生参数特性,PlanAhead软件将会分析不同的I/O组以及其近邻, 并报告每一 I/O组的利用情况和状态步骤5:导出I/O引脚分配数据你可以将I/O端口列表和封装引脚信息从PlanAhead软件导出为CSV格式文件、HDL头或UCF文件 CSV文件包括有关器件封装引脚的所有信息,以及与设计相关的I/O引脚分配和配置。
列表中的封装引脚 部分是数据表中定义I/O端口的很好起点你还可以利用该数据表自动生成设计小组开始PCB布局所需要的PCB原理图符号然而,有时这些 符号对于原理图来说太长了,可能需要将它们缩短为几个符号利用PinAhead中的创建的接口组可以快 速做到这一点以原理图符号形式提供这些I/O引脚配置为PCB设计人员开始PCB布局提供了很好的基础因为如 果在引脚分配的最初就考虑到PCB接口,那么最很可能与最终的引脚配置比较接近如果确实需要改变引脚来方便布线,那么改变也比较容易,因为需要改变的引脚可能已经在I/O组内 了这种方法不会对FPGA设计造成太大的影响通过在PCB和FPGA设计人员之间传递修改过的引脚布局数据表或 UCF 文件,可以保证两个部分之间的任何修改是同步的为防止信号噪声以及支持某些FPGA功能,你还可能希望将未用的引脚或特定配置的引脚连接到VCC 或GND赛灵思目前正在致力于在PinAhead的下一版本中提供这一功能通过一个界面方便FPGA设计 人员指导此类引脚,并在输出的CSV数据表中包含相应的引脚连接这样PCB设计人员就可以更容易识 别相关引脚并正确连接之未来,随着FPGA集成更复杂的功能以及使用更先进的封装,发展可靠的FPGA和PCB引脚布局方法 势在必行。
PinAhead Lite 在帮助实现基于协同设计理念的引脚布局策略方面已经能够提供很大帮助,但我 们仍然已经在致力于改进这一工具以帮助设计人员更好地应对引脚布局方面的挑战。