《FPGA布局及资源优化.docx》由会员分享,可在线阅读,更多相关《FPGA布局及资源优化.docx(5页珍藏版)》请在第一文库网上搜索。
1、FPGA布局及资源优化1项目需求FPGA:V7-690T两片Res。UrCC:两片FPGA通过X12gth互联;每片FPGA使用48路serdes走光口与板外连接;每片FPGA使用SIROX4通过VPX与外界互联;每片FPGA使用PCIEX8与板上CPUInteIXEON互联;每片FPGA使用20对1VDS互联;CP1D控制FPGA上电时序/CPU启动/FPGA加载;每片FPGA挂载2路4GBDDR3。2 .FPGA架构设计问题我们知道,FPGA片上分布着各种资源,如时钟,serdes,RAM,1UT,IO等。在进行FPGA规划时候,应当需要知道项目设计需求,以及需求各模块之间的数据交织情况,
2、这样可以避免后续FPGART1设计出现时序很难优化的情况。对应这个情况,举一个简单的例子。如果一个FPGA工程中含有一个PeIE和一个DDR接且,并且,需要用到PCIE与外部设备进行大量数据块上传和工B方面的传输。那么DDR作为PC1E的一个缓存接口,最优的方案是在FPGA内部对PeIE接口和DDR接口尽量靠近放置。这样FPGART1设计的时候时序很容易达到最优。在V7-69OTFPGA中,可以将PCIE放置的最优位置如下图。Tab1e4-10:SupportedTransceiver1ocationsfortheXC7VX690TPackageB1ock1ane01ane11ane21ane
3、31ane41ane51ane61ane7FFG1157XOYON/AXOY1X1Y23X1Y22X1Y21X1Y2OX1Y19X1Y18X1Y17X1Y16X0Y2X1Y351Y34X1Y33X1Y32X1Y31X1Y3OX1Y29X1Y28X0Y3N/AFFG1158XOYON/AXOY1X1Y23X1Y221Y21X1Y2OX1Y19X1Y18X1Y17X1Y16X0Y2X1Y35X1Y34X1Y33X1Y32X1Y31X1Y3OX1Y29X1Y28X0Y3N/AFFG1761XOYOX1Y11X1Y1OX1Y9X1Y8X1Y7X1Y6X1Y5X1Y4XOY1X1Y23X1Y22X1Y2
4、1X1Y2OX1Y19X1Y18X1Y17X1Y16X0Y2X1Y3SX1Y34X1Y33X1Y32X1Y31X1Y3OX1Y29X1Y28X0Y3N/AF1G1926XOYOX1Y11X1Y1OX1Y9X1Y8X1Y7X1Y6X1YSX1Y4XOY1X1Y23X1Y22X1Y21X1Y2OX1Y19X1Y18X1Y17X1Y16X0Y2X1Y35X1Y34X1Y33X1Y32X1Y31X1Y3OX1Y29X1Y28X0Y3N/AFFG1927XOYOX1Y11X1Y1OX1Y9X1Y81Y7X1Y6X1YSX1Y4XOY1X1Y23X1Y221Y21X1Y2OX1Y19X1Y18X1Y171
5、Y16X0Y2X1Y351Y34X1Y33X1Y32X1Y31X1Y3OX1Y29X1Y28YvFFG1930XOYON/AXOY1X1Y23X1Y22X1Y21X1Y2OX1Y19X1Y18X1Y17X1Y16X0Y2X1Y35X1Y34X1Y33X1Y32X1Y311Y3OX1Y29X1Y28X0Y3N/AE.同时,我们也知道,在V7-690FPGA中,DDR通常可以放置的位置可以是BANK34/35/36和BANK36/37/38。这时综合上述两个条件,我们可以得到最优放置PCIE和DDR的位置。使得FPGA内部编译通过率或者说时序最好。下面是两种不同放置方式得到的examp1edesi
6、gn编译结果图。3 .前期碰到的问题1) .时钟优化在管脚验证的时候,本人将各个功能模块都用X111NXFPGA的IP生成examp1edesign并集成到一个工程下面,但是发现上面提出的功能集成下来FPGA的BUFG资源远远不够。下图是FPGAexamp1edesign各模块BUFG资源需求情况。因此做了一些资源优化。a.前期验证中,发现SR1O是消耗BUFG资源最多的IP,因此能省出最多的BUFGob.DDR也消耗比较多时钟,这个项目一个FPGA用到两个DDR控制器,也能省出比较多BUFGo2) .PCIE不是在所有SerdeS下都能放的,对V7-690,需要放置在特殊的SERDES处,这
7、样,实际PCIE程序编译时候,这个特殊的SerdeS里PCIE特殊资源离得最近,编译出来的时序报告是最好的。如若不然,需要设置PCIEIP内部特殊参数,才能使得Pe1EDEV被CPU看到,也就是PCIE1inko3) .1)DR布局也要参考数据是如何在FPGA内部交织的,劲量靠近会用到大数据流量的模块放置,这样后期设计时序会好很多。4) FPGA功耗估计问题。这个可以在X11INX官网下载一个XPEEXCe1表格,很实用的,用一两次就熟悉了。但是本人认为这个工具对很多人也有个缺点,就是实际并不知道以后自己的代码各种资源消耗有多少。所以可能评估不太准。本人是用examp1edesign工程查看编
8、译报告得出。当涉及到调整温度啊地速啊啥的时候,在vivado下需要打开imp1ementation的结果后才可以改动电流/温度的值进行评估的。3. FPGA匹殳布线时会遇到调整线序的问题。D这要根据项目需求看调整后的布局是否满足项目需求,调整好后一定要原理图工程师给出最新的原理图,最后FPGA根据新布局重新验证管脚等。千万不要相传丢失了信息。2) DDR换线序可以参照X11INX的M1G手册,仔细核对的。PinSwapping Pinscanbefree1yswappedwithineachbytegroup(dataanfortheDQSpairwhichmustbeonac1ock-cap
9、ab1eDQSpaironap-npair. Bytegroups(dataandaddress/contro1)canbefree1yswapp Pinsintheaddress/contro1bytegroupscanbefree1yswapptheirbytegroups.Nootherpinswappingispermitted.3) DDRPCB布线所需的管脚延时信息,可以通过新建一个空白工程,在空白工程的tc1下输入如下命令:1ink_design-partxc7k160tfbg676writecsvf1ighttime4) CP1D调试1)CP1D控制FPGA上电顺序,X111NX又一个CheCk1ist,各位可以根据CheCk1ist表格对硬件板卡进行关键信号测量确认,对上电时序进行控制等。2)对FPGA的配置控制也可以月底xi1inxug470等。1234565.上述所讲到的SePdeSD下图可以看到,两组收发的光模块,其中一个与FPGA比较接近,SerdeS这样很正常;!在这里插入图片描述(https:/img-2019721222638376.pngSerdeS调试本人在另一篇博客进行了简单说明了,看官可以参考。上面不是很详细,等有空了本人整理整理,添加些信息。审核刘清