如何使用PlanAhead/Adept加速管脚排布
原文:在排布FPGA管脚生成ucf文件的过程中,当FPGA管脚较多的时候,手工排布管脚不仅效率低,而且很容易出错。借助PlanAhead和Adept等工具,可以很方便快速的实现管脚排布。特别是当需要排布的管脚有一定的规律或者需要满足一些条件时,使用工具进行管脚排布具有很明显的优势。
当大量管脚需要分配时,首先需要将这些管脚分配到指定的区域内,如将同一条总线的管脚分配在同一个bank里面,将同一个接口所有管脚分配在几个连续的bank里面等等。因此,首先可以准备一个ucf,然后将需要分配的管脚录入,只指明线网名字和电平标准。然后在PlanAhead里面建立一个进行IO Planning的工程,导入这个ucf。如果导入的是一个已经排布好的管脚,需要重新排布,可以选中所有管脚,去除现有排布;如果有差分信号线,首先将差分信号线的P和N绑定。然后指定所选bank里面的禁用管脚,将指定的管脚组(如一条总线)放入此bank中,使用的命令是place IO port in an IO bank。对于放置在同一个bank中的不同类型信号,如普通数据总线和时钟输入信号,可以先将该bank的所有时钟功能管脚、VREF管脚、VRP/VRN功能都先禁止掉,然后把数据总线排布下去,然后打开被禁用的是时钟功能管脚,再将时钟功能管脚自动排布下去。按照此方法,依次将所有的管脚放入指定区域。此时,所有管脚都已经按一定的顺序规则的排布在各个bank里面,如一条位宽为36bits的总线,总线内各个管脚按编号从小到大一次排布在芯片的连续36个管脚位置;如果是差分信号,则P/N对分别放置在bank的一对P/N管脚上。 完成此过程以后,将管脚排布结果导出到ucf里面,然后再将ucf导入到Adept中,进行小范围内的调整。在Adept界面中,可以看到一个bank中各种管脚的类型,现在需要做的,是在bank范围内做微调。具体而言,如果随路时钟输入没有走时钟管脚,则需要将随路时钟输入放置在SRCC或MRCC管脚上,如果本bank有管脚电平标准需要用到VREF和DCI,则必须把VREF和VRP/VRN管脚保留,不能用作用户管脚。这些操作只需在Adept界面执行简单的粘贴复制命令就能完成,不容易引入书写错误,而且只需花费少量的时间就可完成。当这些细节调整做好以后,就可以将结果再次导出到ucf中,此时ucf中管脚排布按照bank整齐的排列,在同一个bank中也是按顺序排布。在此ucf的基础上,稍作整理,就产生了最终可用的ucf文件。
评论