如何有效的利用 FPGA 的资源,管脚分配也是必须考虑的一个重要问题。一般较好的方法是在综合过程中通过时序的一些约束让对应的工具自动分配,但是从研发的时间段上来考虑这种方法往往是不可取的,RTL验证与验证板设计必须是同步进行的,在验证代码出来时验证的单板也必须设计完毕,也就是管脚的分配也必须在设计代码出来之前完成。所以,管脚的分配更多的将是依赖人,而非工具,这个时候就更需要考虑各方面的因素。
1、 FPGA 所承载逻辑的信号流向。IC 验证中所选用的 FPGA 一般逻辑容量都非常大,外部的管脚数量也相当的丰富,这个时候就必须考虑到PCB 设计时的布线的难度,如果管脚的分配不合理,那么有可能在PCB 设计时出现大量的交叉的信号线,这给布线带来很大的困难,甚至走不通,或者是即便是布线走通了,也有可能由于外部的延时过大而不满足时序方面的要求。
2、 掌握 FPGA 内部 BANK 的分配的情况。现在 FPGA 内部都分成几个区域,每个区域中可用的 I/O 管脚数量各不相同,这可以在设计中查阅相关的手册。
3、 掌握所选 FPGA 每个 BANK 所支持的 I/O 标准。
4、 关注特殊信号的管脚的分配,在分配时钟时,根据时钟的多少分配的策略差别很大,也需要重点关注,这需要查阅相应的手册看哪些时钟分别能到达哪些区域,一般的时钟都是差分时钟,这个时候如果所用的不是差分时钟就需要注意 P 端与 N 端一般不能同时分配给不同的时钟信号。
5、 兼顾信号完整性的考虑。
由于在分配中常常会出现总线分配的情况,同时大量的总线又有可能常常是同时翻转,这样就会带来了一系列信号完整性的问题,所以管脚分配时大量同时翻转的信号尽量分开。