0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA布局及资源优化

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-01-07 10:15 次阅读

1.项目需求

FPGA :V7-690T两片

Resource:两片FPGA通过X12 gth互联;每片FPGA使用48路serdes走光口与板外连接;每片FPGA使用SIROx4通过VPX与外界互联;每片FPGA使用PCIE X8与板上CPU Intel XEON互联;每片FPGA使用20对LVDS互联;CPLD控制FPGA上电时序/CPU启动/FPGA加载;每片FPGA挂载2路4GB DDR3。

2.FPGA架构设计问题

我们知道,FPGA片上分布着各种资源,如时钟,serdes,RAM,LUT,IO等。在进行FPGA规划时候,应当需要知道项目设计需求,以及需求各模块之间的数据交织情况,这样可以避免后续FPGA RTL设计出现时序很难优化的情况。

对应这个情况,举一个简单的例子。如果一个FPGA工程中含有一个PCIE和一个DDR接口,并且,需要用到PCIE与外部设备进行大量数据块上传和下载方面的传输。那么DDR作为PCIE的一个缓存接口,最优的方案是在FPGA内部对PCIE接口和DDR接口尽量靠近放置。这样FPGA RTL设计的时候时序很容易达到最优。在V7-690T FPGA中,可以将PCIE放置的最优位置如下图。

e942e6f4-5079-11eb-8b86-12bb97331649.jpg

同时,我们也知道,在V7-690 FPGA中,DDR通常可以放置的位置可以是BANK34/35/36和BANK36/37/38。这时综合上述两个条件,我们可以得到最优放置PCIE和DDR的位置。使得FPGA内部编译通过率或者说时序最好。

下面是两种不同放置方式得到的example design编译结果图。

e9a2dc1c-5079-11eb-8b86-12bb97331649.jpg

3.前期碰到的问题

1).时钟优化

在管脚验证的时候,本人将各个功能模块都用XILINX FPGA的IP生成 example design并集成到一个工程下面,但是发现上面提出的功能集成下来FPGA的BUFG资源远远不够。下图是FPGA example design各模块BUFG资源需求情况。因此做了一些资源优化。

a.前期验证中,发现SRIO是消耗BUFG资源最多的IP,因此能省出最多的BUFG。

b.DDR也消耗比较多时钟,这个项目一个FPGA用到两个DDR控制器,也能省出比较多BUFG。

2).PCIE不是在所有serdes下都能放的,对V7-690,需要放置在特殊的SERDES处,这样,实际PCIE 程序编译时候,这个特殊的serdes里PCIE 特殊资源离得最近,编译出来的时序报告是最好的。如若不然,需要设置PCIE IP内部特殊参数,才能使得PCIE DEV被CPU看到,也就是PCIE link上。

3).DDR布局也要参考数据是如何在FPGA内部交织的,劲量靠近会用到大数据流量的模块放置,这样后期设计时序会好很多。

4)FPGA功耗估计问题。

这个可以在XILINX官网下载一个XPE Excel表格,很实用的,用一两次就熟悉了。但是本人认为这个工具对很多人也有个缺点,就是实际并不知道以后自己的代码各种资源消耗有多少。所以可能评估不太准。

本人是用example design工程查看编译报告得出。当涉及到调整温度啊电流啊啥的时候,在vivado下需要打开implementation的结果后才可以改动电流/温度的值进行评估的。

3.FPGA PCB布线时会遇到调整线序的问题。

1)这要根据项目需求看调整后的布局是否满足项目需求,调整好后一定要原理图工程师给出最新的原理图,最后FPGA根据新布局重新验证管脚等。千万不要口口相传丢失了信息

2)DDR换线序可以参照XILINX的MIG手册,仔细核对的。

e9dad9f0-5079-11eb-8b86-12bb97331649.jpg

3) DDR PCB布线所需的管脚延时信息,可以通过新建一个空白工程,在空白工程的tcl下输入如下命令:

link_design -part xc7k160tfbg676

write_csv flight_time

4.CPLD调试

1)CPLD控制FPGA上电顺序,XILINX又一个check list,各位可以根据check list表格对硬件板卡进行关键信号测量确认,对上电时序进行控制等。

2)对FPGA的配置控制也可以月底 xilinx ug470等。

e9f97fa4-5079-11eb-8b86-12bb97331649.png

责任编辑:xj

原文标题:FPGA布局及资源优化(开发随笔)

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1624

    文章

    21597

    浏览量

    601015
  • cpld
    +关注

    关注

    32

    文章

    1246

    浏览量

    169128
  • 时钟
    +关注

    关注

    10

    文章

    1710

    浏览量

    131243

原文标题:FPGA布局及资源优化(开发随笔)

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何优化FPGA设计的性能

    优化FPGA(现场可编程门阵列)设计的性能是一个复杂而多维的任务,涉及多个方面和步骤。以下是一些关键的优化策略: 一、明确性能指标 确定需求 :首先,需要明确FPGA设计的性能指标,包
    的头像 发表于 10-25 09:23 110次阅读

    优化 FPGA HLS 设计

    优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕获设计,从而
    发表于 08-16 19:56

    FPGA学习笔记-关于FPGA资源

    FPGA的学习。 在学习中才发现,FPGA远不是门电路那么简单。FPGA中有各种需要的资源,比如门电路、存储单元、片内RAM、嵌入式乘法器、PLL、IO引脚等。等于是说,可以根据需求,
    发表于 05-22 18:27

    FPGA布局布线优化策略(五)

    对设计者很通常的情况是花费几天或几周的时间围绕一个设计来满足时序,甚至多半利用上面描述的自动种子变化,只面对可以起伏通过已有布局的小改变和时序特性完全改变。
    发表于 04-01 12:35 574次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>布局</b>布线<b class='flag-5'>优化</b>策略(五)

    FPGA布局布线优化技术

    寄存器排序是布局工具把多位寄存器的相邻位分组放进单个逻辑元件所利用的方法。大多数基于单元的逻辑元件有不止一个触发器,因此,相邻位放置在一起,时序可以被优化
    发表于 03-29 11:30 320次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>布局</b>布线<b class='flag-5'>优化</b>技术

    FPGA布局布线优化进阶篇

    逻辑复制在布局过程的早期发生,为了扇出到其他逻辑元件的结构,这些元件不可以(由于任何理由)存在于相同的近邻。
    发表于 03-27 12:26 774次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>布局</b>布线<b class='flag-5'>优化</b>进阶篇

    FPGA布局布线优化方案

    调整电压和温度设置不要求FPGA 实现任何改变,可以提供一个方便的手段增量地改善最坏条件的性能。
    发表于 03-26 14:32 938次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>布局</b>布线<b class='flag-5'>优化</b>方案

    FPGA资源使用如何评估

    请问FPGA资源使用如何评估?
    发表于 02-22 09:55

    FPGA资源与AISC对应关系

    情况下,FPGA可以被用作ASIC的原型验证平台,帮助设计师验证和优化ASIC的设计。然而,由于FPGA的灵活性和可重构性,它的资源使用效率通常低于专门为特定任务
    发表于 02-22 09:52

    FPGA好的学习资源有哪些

    FPGA学习好的资源有哪些?从入门到精通,大家可以分享一起学习呀
    发表于 01-28 17:00

    FPGA实现原理

    布局加载到实际的FPGA上。这个过程通常通过向FPGA发送一个特定的二进制文件来完成。一旦FPGA被正确地编程,它就可以开始执行所设计的功能。 FP
    发表于 01-26 10:03

    FPGA基本开发设计流程

    FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。FPGA的开发流程一般包括功能定义、设计输入、功能仿真、综合优化、综合后仿真、实现与
    发表于 12-31 21:15

    fpga布局布线算法加速

    任务是将逻辑元件与连接线路进行合理的布局和布线,以实现性能优化和电路连接的可靠性。然而,FPGA布局布线的过程通常是一项繁琐且耗时的任务,因此加速
    的头像 发表于 12-20 09:55 714次阅读

    如何优化晶振布局与连接?

    如何优化晶振布局与连接 晶振是电子设备中常见的元件之一,用于提供时钟信号和稳定的频率参考。在进行晶振布局和连接时,需要考虑一系列的因素以确保其工作稳定可靠。本文将详细介绍如何优化晶振
    的头像 发表于 12-18 14:09 767次阅读

    基于FPGA的神经振荡器设计及优化

    电子发烧友网站提供《基于FPGA的神经振荡器设计及优化.pdf》资料免费下载
    发表于 11-10 09:39 0次下载
    基于<b class='flag-5'>FPGA</b>的神经振荡器设计及<b class='flag-5'>优化</b>