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

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

3天内不再提示

FPGA时序的基本概念,RTL项目的设计探索

e9Zb_gh_8734352 来源:未知 作者:李倩 2018-10-31 15:21 次阅读

对于FPGA而言,时序收敛是一个很重要的概念。在我看来,时序约束是必要的,但不是在最重要的,我们应该在设计初始就考虑到时序问题,而不是完全的靠约束来获得一个好的结果。

在军事和航空领域,工程师面临的挑战越来越严峻,例如延迟要求、带宽要求、在极端气温下使应用达标,以及紧迫的工程进度。在更高的抽象层级上工作,设计会更加清晰简洁,报错和纠错也会更少。但是,这个方法一般会以牺牲性能为代价。要想在 FPGA 设计中实现高性能,需要手动优化 RTL 代码。而在 C 到 RTL 开发环境中直接生成的RTL代码,往往是不达标的.

1. FPGA时序的基本概念

FPGA器件的需求取决于系统和上下游(upstream and downstrem)设备。我们的设计需要和其他的devices进行数据的交互,其他的devices可能是FPGA外部的芯片,可能是FPGA内部的硬核。

对于FPGA design来说,必须要关注在指定要求下,它能否正常工作。这个正常工作包括同步时序电路的工作频率,以及输入输出设备的时序要求。在FPGA design内部,都是同步时序电路,各处的延时等都能够估计出来,但是FPGA内部并不知道外部的设备的时序关系。所以,Timing constraints包括:

输入路径(Input paths )

寄存器-寄存器路径(Register-to-register paths )

输出路径(Output paths )

例外(Path specific exceptions )

这正好对应了上图中三个部分,Path specific exceptions 暂时不提。

Input paths对应的是OFFSET IN约束,即输入数据和时钟之间的相位关系。针对不同的数据输入方式(系统同步和源同步,SDR和DDR)有不同的分析结果。

Register-to-register paths 对应的是整个FPGA design的工作时钟。如果只有一个时钟,那么只需要指定输入的频率即可。如果有多个时钟,这些时钟是通过DCM,MMCM,PLL生成的,那么显然ISE知道这些时钟之间的频率、相位关系,所以也不需要我们指定。如果这些不同的时钟是通过不同的引脚输入的,ISE不知道其相位关系,所以指定其中一个为主时钟,需要指定其间的相位关系。

Output paths对应的是OFFSET OUT 约束,和OFFSET IN约束很类似,不过方向相反。

2.找到合适的 FPGA 工具设置

尽管工程师们很清楚已有 FPGA 工具的参数设置,但是很多时候并没有完全把这些设置的功能发挥出来。一般而言,这些设置只有在设计无法达到时序要求的时候才会用到。而且,对于已经达到性能目标的设计来说,如果好好利用这些设置,性能再提升10%-50%也是完全有可能的。难点在于,各种 FPGA 工具一般会有30-70个综合和布局布线的设置选项,从这些选项中选择合适的那一组设置组合如同大海捞针。幸好,目前已经有些工具可以控制并运行设计探索,而且整套流程是自动化的,也十分严谨。

最后的一个难题,是计算资源的匮乏。传统的嵌入式应用都是在单一电脑上设计的,但是运行多个编译需要更多的计算能力,这样就会牺牲更多的时间。如果可以并行运行编译的话,那么周转时间就会短很多。

3.优化高层次设计

市面上已经有工具可以将设计性能提升50%并且不改变 RTL 代码了。如下图所展示的是设计探索非常好的一个例子:在视频处理的设计中,进行 Sobel Filter Implementation。该设计的目标器件为一个 FPGA 搭载双核 Arm® Cortex®-A9 MPCore™。

该设计的时钟周期为5.00ns或者200MHz。根据时序预估,它的时序还差506ps,也就是据目标速率还差10%或181MHz,如下图

Intime在不改变 C++代码的情况下,工程师把设计输出为 RTL 代码。通过使用一种探索工具,工程师打开项目(xpr),然后并行运行不同 FPGA 工具参数的编译来优化设计。

在两轮优化,15次编译之后,该设计达到了性能目标,200MHz,而且没有修改源代码。如下图:

这个案例并不是说这种优化只能在高层次设计中进行。其实,只要是RTL代码都有可能提升性能。

4.RTL 项目的设计探索

软件无线电 (SDR) 是另一个可以从时序收敛工具中获益的应用。在这个案例中,参考设计直接用 RTL 代码创建。这是一个高性能,高集成度的射频 (RF) 捷变收发器 (Agile Transceiver),为3G和4G基站的应用而设计。该设备把一个拥有灵活混合信号基带单元的射频前端 (RF Front End),和集成频率合成器 (integrated frequency synthesizers)相结合,再把处理器加上一个可配置的数字界面。

开始的时钟周期是4ns 或250MHz,并且参考设计默认时序达标。为了让这个设计时序失败,工程师把时钟周期设置成激进的2ns,新的目标速率为500MHz。在这种情况下,设计时序离达标就会差246ps,并以445MHz 运行。

在同样的情况下,不改变RTL,该设计可以通过探索多种 FPGA 工具参数来优化。优化过程为三轮,60次编译。

结果显示,最终 WNS 从-246ps 提升到-0.051ps,提升了79.2%,相当于时钟周期为487MHz 以及9.4%的最大频率提升。如下图:

5.让性能更进一步

随着科学技术的发展,电子器件会变得越来越复杂,要求也越来越高,这是大势所趋。新的 FPGA 软件科技和方法会帮助我们提升质量、效率,满足我们的需求。尽管 FPGA 设计的潜能尚未完全被了解,但工具参数的探索可以减少高层次设计的性能牺牲,从而保证项目完成地又快又好。工程师们会在使用工具探索 FPGA 设计参数选项上,越来越熟练。这些工具也会在设计中大放异彩。

有需要试用intime软件者,请加群提交申请即可。

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

    关注

    1602

    文章

    21301

    浏览量

    593092
  • 芯片
    +关注

    关注

    446

    文章

    47732

    浏览量

    409024
  • 寄存器
    +关注

    关注

    30

    文章

    5025

    浏览量

    117699

原文标题:Intime在军事航空项目中大放异彩

文章出处:【微信号:gh_873435264fd4,微信公众号:FPGA技术联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    时序分析中的一些基本概念

    时序分析是FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    发表于 10-21 09:28 1383次阅读

    Fpga Cpld的基本概念

    Fpga Cpld的基本概念
    发表于 08-20 17:14

    FPGA功耗的基本概念,如何降低FPGA功耗?

    FPGA功耗的基本概念,如何降低FPGA功耗?IGLOO能够做到如此低的功耗是因为什么?
    发表于 04-30 06:08

    时序分析中的一些基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    发表于 02-11 19:08 3980次阅读
    <b class='flag-5'>时序</b>分析中的一些<b class='flag-5'>基本概念</b>

    时序分析基本概念介绍——时序库Lib,除了这些你还想知道什么?

    时序分析基本概念介绍——时序库Lib。用于描述物理单元的时序和功耗信息的重要库文件。lib库是最基本的时序库,通常文件很大,分为两个部分。
    的头像 发表于 12-15 17:11 1.1w次阅读
    <b class='flag-5'>时序</b>分析<b class='flag-5'>基本概念</b>介绍——<b class='flag-5'>时序</b>库Lib,除了这些你还想知道什么?

    详细介绍时序基本概念Timing arc

    时序分析基本概念介绍——Timing Arc
    的头像 发表于 01-02 09:29 2.4w次阅读
    详细介绍<b class='flag-5'>时序</b><b class='flag-5'>基本概念</b>Timing arc

    时序分析和时序约束的基本概念详细说明

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    发表于 01-08 16:57 28次下载
    <b class='flag-5'>时序</b>分析和<b class='flag-5'>时序</b>约束的<b class='flag-5'>基本概念</b>详细说明

    时序设计基本概念之collection

    今天我们要介绍的时序分析基本概念是collection。代表的是一个集合,类似指针。在数字后端工具中,我们可以通过命令get_*来寻找想要的Object。这些get_*命令返回的就是collection。不同类型的object对应不同的get命令。
    的头像 发表于 11-26 10:30 3331次阅读

    FPGA设计中时序分析的基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    的头像 发表于 03-18 11:07 2132次阅读

    静态时序分析的基本概念和方法

    向量和动态仿真 。本文将介绍静态时序分析的基本概念和方法,包括时序约束,时序路径,时序裕量,setup检查和hold检查等。
    的头像 发表于 06-28 09:38 797次阅读
    静态<b class='flag-5'>时序</b>分析的<b class='flag-5'>基本概念</b>和方法

    介绍时序分析的基本概念lookup table

    今天要介绍的时序分析基本概念是lookup table。中文全称时序查找表。
    的头像 发表于 07-03 14:30 752次阅读
    介绍<b class='flag-5'>时序</b>分析的<b class='flag-5'>基本概念</b>lookup table

    介绍时序分析基本概念MMMC

    今天我们要介绍的时序分析基本概念是MMMC分析(MCMM)。全称是multi-mode, multi-corner, 多模式多端角分析模式。这是在先进工艺下必须要使用的一种时序分析模式。
    的头像 发表于 07-04 15:40 1588次阅读
    介绍<b class='flag-5'>时序</b>分析<b class='flag-5'>基本概念</b>MMMC

    时序分析Slew/Transition基本概念介绍

    今天要介绍的时序分析基本概念是Slew,信号转换时间,也被称为transition time。
    的头像 发表于 07-05 14:50 1675次阅读
    <b class='flag-5'>时序</b>分析Slew/Transition<b class='flag-5'>基本概念</b>介绍

    时序分析基本概念介绍—Timing Arc

    今天我们要介绍的时序基本概念是Timing arc,中文名时序弧。这是timing计算最基本的组成元素,在昨天的lib库介绍中,大部分时序信息都以Timing arc呈现。
    的头像 发表于 07-06 15:00 1562次阅读
    <b class='flag-5'>时序</b>分析<b class='flag-5'>基本概念</b>介绍—Timing Arc

    时序分析基本概念介绍—花一样的“模式”

    今天要介绍的时序基本概念是Mode(模式). 这是Multiple Scenario环境下Sign off的一个重要概念。芯片的设计模式包括最基本的功能function模式,以及各种各样相关的测试模式。
    的头像 发表于 07-10 17:21 1970次阅读
    <b class='flag-5'>时序</b>分析<b class='flag-5'>基本概念</b>介绍—花一样的“模式”