FPGA的IO选择——最短路径原则

时间:2024-03-22 18:29:08

关于FPGA的IO选择,前段时间在教科书上了解到这样一个说法:

一个优秀的FPGA IO布局设计应将用于传输高速多位宽信号的IO口(估计是指600MT/s以上)布置在芯片左右侧的Bank内;而将传输低速控制信号的IO口(如:AD/DA、DDS、PWM、普通SPI、URAT和开关量信号等)布置在芯片上下侧的Bank内。

这是因为在FPGA内BRAM和DSP乘加器都是自上而下呈条带状分布的,在水平方向上进行数据的传输和处理可以实现布线的“最短路径”,从而获得最低的延迟,提高设计的时序性能。

           FPGA的IO选择——最短路径原则

                                                       图 1 Spartan-6 LX16 FPGA内部资源布局

FPGA的IO选择——最短路径原则

                                                        图 2 从IO到内部逻辑数据流动的最短路径示意图

查阅数据手册找到引脚分布图,又在Bank 0和Bank 2上发现了一系列特殊的多用途引脚,D0~15和A0~15,但经过进一步查阅后发现此类引脚和上述数据传输应用无关,而是专门用于上电后配置FPGA的地址和数据引脚。

                                     FPGA的IO选择——最短路径原则

                                                                  图 3 Spartan-6 GSC234封装的引脚分布

                         FPGA的IO选择——最短路径原则

在Alinx开发板教程的SPI Flash实验中,FPGA与Flash的SPI总线连接IO的就选用了位于Bank2的多功能IO(D0~D15)。而由于SPI是串行总线,只用到了4个数据IO口。

继续探讨,在教程的AD/DA试验中,又只用了FPGA位于Bank2的普通IO输出50MHZ的数据,驱动DA芯片输出100KHz的正弦信号。此外,还发现ISE提供的DDS IP核仅支持正弦信号的输出,无法满足PQMSAM的需求!最后,即便是在具有高速传输要求的并串转换LVDS试验中,也只是调用了Bank2的普通IO进行串行数据的输出!

然而,在DDR3的教程中,其调用的MIG IP核则又使用了Bank 1和Bank 3上的大量普通IO口进行数据的传输。由此可见,即便是普通的IO也具有足够高的速度(从MIG配置中可了解到,IO总线的时钟最高可达333.33MHz)(表 1而关于MIG对Bank的选择,想必也是因为在这两个Bank附近存在MCB模块,而同时也考虑了前文所述的“最短路径”原则吧!

                                                  FPGA的IO选择——最短路径原则

                                                                           图 4 MGI IP核的Bank选择

                                        FPGA的IO选择——最短路径原则

                                                                    图 5 MGI IP核的DDR3接口IO约束

                                                                     表 1 DDR SDRAM速率性能对比

                         FPGA的IO选择——最短路径原则