打印

Xilinx Virtex6 FPGA管教排布

[复制链接]
1793|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-11-8 19:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.V6芯片管脚类型
      以Virtex-6 LXT系列FPGA为例,V6芯片的用户管脚可以分为普通IO和高速SERDES IO。每个V6 LXT系列的FPGA至少包含三列普通IO和一列高速SERDES IO,某些大芯片会有最多四列普通IO。本文主要总结普通用户IO的排布。普通IO以BANK为单位分布在芯片内,每个BANK包含40个IO,芯片大小不同,包含的BANK数也不相同。三列(最多四列)普通IO根据相对于芯片中间列(时钟管理模块与FPGA 配置模块)的位置,分为左中间列、右中间列、左外侧列、右外侧列。由于V6特殊的时钟结构的缘故,左中间列和右中间列的IO BANK能跑到的时钟频率要比左外侧列以及右外侧列高。另外,在一个BANK内,40个IO组成20个差分IO对。在普通用户IO中,有一部分IO是多用途的。在每个BANK中有两个VREF、一组VRP和VRN、四个区域时钟输入管脚等多用途IO,在不作为特殊功能管脚使用时,可以用作普通用户IO。另外,在24BANK和34BANK有一些管脚是配置相关的,使用受限。整个芯片还有8对全局时钟输入管脚。
2.全局信号管脚的选择
       对于芯片内的一些全局性质的信号,如全局时钟输入、复位信号输入、重加载SPI FLASH接口、LED指示灯以及一些零散的低速信号,其特点是管脚数量少,彼此相关的一组总线IO个数不多,排布比较灵活。而且此类信号的电平都是2.5V,可以集中在同一个BANK。而对于V6芯片,由于BANK24和BANK34拥有不少多用途管脚,特别是BANK24,包括一些配置管脚,即使不作为配置管脚用,使用也是受限的,不适合排布一组很宽的总线。因此BANK24比较适合放置此类全局信号。
3.SDRAM接口类IO的排布
       当芯片内使用DDR3以及QDRII+之类的高速接口时,管脚必须严格按照相应手册来排布。如果管脚比较充裕,尽量使用CORE Generator给出的排布结果;如果管脚比较紧张,可以通过使用DCI级联之类的手段,省出管脚,然后按照排布规则,部分管脚进行调整位置。如对于DDR3,可以将数据总线以8比特为一组,再结合DQS和掩码位,作为一个整体进行移动,移动的过程要保证区域时钟输入要从专用的区域时钟输入管脚输入。并且要按照手册的要求,保留若干必要的区域时钟输入管脚供内部使用。如果不同的器件接口电平标准一致,也是可以放在同一个BANK之内的,只要每个器件的各种总线之间满足对应的要求。对于使用DCI级联的BANK,BANK之间必须是连续的。由于中间两列IO的时钟性能要比外侧的IO列好,所以优先使用中间列的IO作为DDR3以及QDRII+的管脚;如果必须使用外侧IO作为此类高速接口的管脚,CORE Generator给出的一些最基本的原则要满足,然后在降频使用。外侧IO列的时钟性能在300M以下是可以保证没有问题的。因此,对于TCAM之类的SDR接口,工作时钟小于300M,完全可以排布在外侧IO列中。
       无论是何种外挂高速芯片,基本的排布原则是:时钟控制类的作为一组,最好放置在中间列,其余总线内部尽量放在同一BANK或者同一列,且在同一个区域时钟BUFR的覆盖范围内。
3.从硬件布局上的考虑
       如果芯片外接DDR3、QDRII+之类的大面积芯片,管脚布局除了要保证芯片内部走线顺畅满足时序之外,还要保证外挂芯片在外部的合理布局。以博主曾经做过的一个项目为例,FPGA的外挂芯片包括两片DDR3 SODIMM,三片QDRII+和一片TCAM,由于DDR3 SODIMM面积较大,所以必须将两片DDR3 SODIMM分布在FPGA的上下侧。在内部分配管脚的时候,就是将两者的管脚分布排在FPGA的上下两个区域,从FPGA的封装上看,分布在芯片内部上半部分的BANK的PAD也分布在芯片外部的上半部分。同样,也需要将三片QDRII+的管脚分布在芯片内部的左右IO列,这样子在板卡上三片QDRII+芯片就也分布在FPGA的左右两侧了。

相关帖子

沙发
xjsxjtu| | 2012-11-8 20:11 | 只看该作者
错别字。脚。

使用特权

评论回复
板凳
GoldSunMonkey| | 2012-11-8 20:48 | 只看该作者
;P

使用特权

评论回复
地板
sahh| | 2012-11-10 12:03 | 只看该作者
“尽量使用CORE Generator给出的排布结果”这个说法我不是很赞同。

FPGA管脚的排布,直接影响到PCB Layout的复杂程度,不好的排布,有可能导致多2层走线层,而且效果还不一定好。

所以,在DDR3、DIMM、QDRII之类的管脚排布,合理的做法是,1、先定好信号的group,要点是group跟group之间走线尽量不要交叉。2、每个group内,有些引脚是固定不能变的,有些是可以变的,把不能变的固定好,然后可以变的,要跟PCB Layout工程师做充分沟通,来确定。

通常,一个DIMM的管脚排布,要花两三天时间,等PCB Layout那边走得差不多了,才能真正定下来。

使用特权

评论回复
5
xiao6666| | 2012-11-10 21:50 | 只看该作者
“尽量使用CORE Generator给出的排布结果”这个说法我不是很赞同。

FPGA管脚的排布,直接影响到PCB Layout的复杂程度,不好的排布,有可能导致多2层走线层,而且效果还不一定好。

所以,在DDR3、DIMM、QDRII之类的 ...
sahh 发表于 2012-11-10 12:03
嗯,你可以调整啊。

使用特权

评论回复
6
GoldSunMonkey| | 2012-11-10 22:09 | 只看该作者
“尽量使用CORE Generator给出的排布结果”这个说法我不是很赞同。

FPGA管脚的排布,直接影响到PCB Layout的复杂程度,不好的排布,有可能导致多2层走线层,而且效果还不一定好。

所以,在DDR3、DIMM、QDRII之类的 ...
sahh 发表于 2012-11-10 12:03
嗯可以调整。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝