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

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

3天内不再提示

Vivado时序问题分析

FPGA通信小白成长之路 来源:FPGA通信小白成长之路 2024-01-05 10:18 次阅读

某年某月某日...

有些时候在写完代码之后呢,Vivado时序报红,Timing一栏有很多时序问题。

这种时候我们往往会想,明明用的时钟频率不算高,整个片子的资源用的也不算特别多,为什么会有这么多时序问题呢?

先说结论:

代码习惯不好,代码风格太差。

时序问题,很明显,是跟时钟息息相关的,对于某一个操作时钟,一旦其频率确定,其对于路径之间的最小时间要求也随之确定。

在写完代码后,随着资源使用的确定,布局布线的深入,则某些信号之间的路径延迟也随之确定,由于FPGA芯片中各个资源的原始布局都是确定的,那么对于资源的选取则至关重要,合理的资源选取将决定时序的优劣。

资源选取来源于哪里呢,最直观的就是代码。

下面分情况说明:

1,report methodology

在综合后,就可以report methodology,查看时钟存在的隐患,争取在设计前期就解决问题。

2,时钟约束

约束好主时钟对应的周期,管脚,除了特殊情况需要进行过约束外,一般管脚的时钟频率是多少就约多少。

3,跨时钟处理

对于跨时钟域的复位信号、单bit信号、多bit信号、数组等,使用xpm原语进行处理,或者用目标时钟信号打几拍

4,抓信号别跨时钟

抓取信号时,除了set up debug外,使用ila时,别跨时钟抓信号

5,Ram设置

Ram的设置中,最好勾选含有register的选项,有助于时序优化,ram避免直接级联,同时例化多个相同ram时对于ram输入作防优化处理

6,流水寄存器

一个信号用于多个状态的控制,或者状态机中,控制较为复杂,一个信号位宽较大,反复使用,也最好多使用几级寄存器进行流水,也就是常说的,没事多打两拍

7,Set false path

在使用Set false path时,不到万不得已,不对两个时钟域的信号进行整个Set false,而是只对单个信号进行set false,哪里冒出来了,就对哪里进行set false。

这样就可以防止某些确实存在的时序问题、需要改代码来解决的时序问题被隐藏,以免在调试的

后期,引起各种莫名其妙的问题,且不知道怎么去查。

8,set_max_delay

善于使用set_max_delay、set_min_delay、set_multicycle_p。

9,重定时(retiming)

感兴趣可去了解。

因此,在时序报红,也就是有时序问题时,需要从时序问题的本质出发,即是什么导致了时序问题。比如,RAM直接级联,判断条件过于复杂,跨时钟处理不合理,状态机过于复杂,信号位宽太大,相同信号驱动模块过多等。

另外,应尽可能少用时序例外约束,同时在使用时序例外约束时要使约束对象足够准确,这样一方面可以避免因为对象不匹配导致过多约束或遗漏约束的情形,另一方面也能有效缩短编译时间。

总之,代码风格在很大程度上决定了时序性能的好坏,决定了所写模块能达到的时钟频率上限。实现同样的功能,有些人写的代码处理时钟可以到100多MHz,而有些人可以到400多MHz。

审核编辑:汤梓红

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

    关注

    5

    文章

    387

    浏览量

    37324
  • 代码
    +关注

    关注

    30

    文章

    4786

    浏览量

    68548
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66495

原文标题:Vivado-时序问题随笔-1

文章出处:【微信号:FPGA通信小白成长之路,微信公众号:FPGA通信小白成长之路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VIVADO时序约束及STA基础

    时序约束的目的就是告诉工具当前的时序状态,以让工具尽量优化时序并给出详细的分析报告。一般在行为仿真后、综合前即创建基本的时序约束。
    的头像 发表于 03-11 14:39 9757次阅读

    如何在Vitis中把设置信息传递到底层的Vivado

    在Vitis完成这个过程的底层,实际调用的是Vivado。Vitis会指定默认的Vivado策略来执行综合和实现的步骤。当默认的Vivado策略无法达到预期的时序要求时,我们需要在
    发表于 08-02 08:03 1337次阅读
    如何在Vitis中把设置信息传递到底层的<b class='flag-5'>Vivado</b>

    vivado时序分析与约束优化

    转自:VIVADO时序分析练习时序分析在FPGA设计中是分析工程很重要的手段,
    发表于 08-22 11:45

    可以在Vivado时序分析器工具中指定温度和电压值来估算设计时序吗?

    嗨,我们正在尝试使用Vivado工具链手动路由FPGA,并想知道应该使用什么工具来手动路由Virtex 7 FPGA。还可以在Vivado时序分析器工具中指定温度和电压值来估算设计
    发表于 10-25 15:20

    vivado时序分析相关的用户指南吗?

    嗨,您能告诉我与vivado时序分析相关的用户指南吗?谢谢
    发表于 03-16 08:14

    时序约束与时序分析 ppt教程

    时序约束与时序分析 ppt教程 本章概要:时序约束与时序分析基础常用
    发表于 05-17 16:08 0次下载

    Vivado中的静态时序分析工具Timing Report的使用与规范

    过程必须以满足XDC中的约束为目标来进行。那么: 如何验证实现后的设计有没有满足时序要求? 如何在开始布局布线前判断某些约束有没有成功设置? 如何验证约束的优先级? 这些都需要用到Vivado中的静态时序
    发表于 11-17 18:03 3.7w次阅读
    <b class='flag-5'>Vivado</b>中的静态<b class='flag-5'>时序</b><b class='flag-5'>分析</b>工具Timing Report的使用与规范

    时序约束资料包】培训课程Timing VIVADO

    维持吗? 1、Vivado基本操作流程 2、时序基本概念 3、时序基本约束和流程 4、Baselining时序约束 5、CDC时序约束 6、
    发表于 08-06 15:08 543次阅读

    关于Vivado时序分析介绍以及应用

    时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习
    发表于 09-15 16:38 6957次阅读
    关于<b class='flag-5'>Vivado</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>介绍以及应用

    Vivado报告命令的了解

    了解report_design_analysis,这是一个新的Vivado报告命令,可以独特地了解时序和复杂性特征,这些特性对于分析时序收敛问题很有价值。
    的头像 发表于 11-26 07:01 3636次阅读

    Vivado进行时序约束的两种方式

    上面我们讲的都是xdc文件的方式进行时序约束,Vivado中还提供了两种图形界面的方式,帮我们进行时序约束:时序约束编辑器(Edit Timing Constraints )和
    的头像 发表于 03-08 17:17 2w次阅读
    <b class='flag-5'>Vivado</b>进行<b class='flag-5'>时序</b>约束的两种方式

    Vivado时序案例分析之解脉冲宽度违例

    BY Hemang Divyakant Parikh 有多种类型的时序违例可归类为脉冲宽度违例。 - 最大偏差违例(详见 此处 ) - 最小周期违例(本文详解之重点)。 - 最大周期违例 - 低
    的头像 发表于 11-19 13:48 5615次阅读
    <b class='flag-5'>Vivado</b><b class='flag-5'>时序</b>案例<b class='flag-5'>分析</b>之解脉冲宽度违例

    如何读懂Vivado时序报告

    FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。
    的头像 发表于 06-23 17:44 1318次阅读
    如何读懂<b class='flag-5'>Vivado</b><b class='flag-5'>时序</b>报告

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束,Vivado添加约束的方法有3种:xdc文件、时序约束向导(Constraints Wizard)、
    的头像 发表于 06-26 15:21 4138次阅读
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>时序</b>约束呢?

    如何读懂FPGA开发过程中的Vivado时序报告?

    FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。
    发表于 06-26 15:29 1033次阅读
    如何读懂FPGA开发过程中的<b class='flag-5'>Vivado</b><b class='flag-5'>时序</b>报告?