精华内容
下载资源
问答
  • 时序收敛
    千次阅读
    2020-05-21 20:12:16

    文档参考:

    ug903:vivado-using-constraints.pdf

    ug945:vivado-using-constraints-tutorial.pdf

    ug949:vivado-design-methodology.pdf

    1、 代码风格

    推荐使用Xilinx language templates的代码块,这里的代码能够综合出正确且结构简洁的电路,包括移位寄存器,乘法,复数乘法,FIR滤波器等,凡是涉及到的模块尽量使用官方写法。

    模块的输出最好是使用寄存器输出,有助于降低路径延时帮助时序收敛。

    如果并不需要优先级,尽量将If语句转化为case语句。

    2、时序改善

    2.1、建立时间问题

    Xilinx的时序报告中的Data Path Delay主要分为logic delay + route delay,一般各占比50%左右表示最优,若建立时间违例且占比严重不均匀,则需要进行优化。

    logic delay主要由逻辑级数太大或者扇出太大导致。

    一个logic level的延迟对应的是一个LUT和一个Net的延迟,对于不同的器件,不同频率的设计能容纳的logic level是不同的。

    逻辑级数太大解决方法:重定时(Retiming),典型的重定时方法就是流水线,将过于冗长的组合逻辑增加寄存器进行打拍。

    High Fanout指的是扇出,同样和器件、设计频率等有关。

    扇出太大解决方法:降低扇出最好不要在综合设置中指定,过低的扇出限制会造成设计堵塞反而不利于时序收敛,最好的方法是根据设计中时序最差路径的扇出进行针对性的优化。如果是寄存器的输出扇出很大,可以使用max_fanout属性标记寄存器声明,也可以手动复制寄存器。

    route delay主要由布线延迟导致,可以通过位置约束进行优化,或者通过第3节中的工程设置得到改善。

    2.1、保持时间问题

    保持时间问题的问题往往是异步处理的问题,比如信号的跨时钟域。

    对于一个信号的跨时钟域问题,一般使用双寄存器法。为了降低MTBF(Mean Time Between Failures,平均无障碍时间),这两个寄存器最好位于同一个slice中。可以使用tcl语言指定,如:

    set_property ASYNC_REG TRUE [get_cells [list sync0_reg sync1_reg]]
    也可以直接在代码中指定:

    (* ASYNC_REG = "TRUE" *) (* keep = "true" *)reg sync0_reg, sysnc1_reg;
    也可以参考代码模板使用XPM模板进行处理。

    信号的跨时钟域还可以使用FIFO或者握手的方法。

    3、工程设置

    通过指定不同的Synthesis和Implementation策略,还有使能Post-place Phys Opt Design和Post-route Phys Opt Design等相关选项

    更多相关内容
  • 1.FPGA时序的基本概念FPGA器件的需求取决于系统和上下游(upstream and downstrem)设备。我们的设计需要和其他的devices进行数据的交互,其他的devices可能是FPGA外部的芯片,可能是FPGA内部的硬核。 对于FPGA ...
  • 本文今天带大家学习一下 从静态时序分析到SDRAM时序收敛的时序。
  • 时序收敛.pdf

    2019-07-09 23:47:18
    在 FPGA 设计过程中,需要在编译阶段进行逻辑综合与相关时序收敛。而包括 I/O 单元结构、异步逻辑和时序约束等众多方面,都会对编译进程产生巨大影响,致使其每一轮都会在工具链中产生不同的结果。为了更好、更快地...
  • 该文档从以下几个方面进行解析: 1、Vivado基本操作流程 2、时序基本概念 3、时序基本约束和流程 4、Baselining时序约束 5、CDC时序约束 6、I/O时序 7、例外时序约束 8、时序收敛优化技术
  • 数字集成电路综合及物理设计阶段的时序收敛方案,谢扬,桑红石,时序收敛是数字集成电路设计中最重要的任务之一。随着集成电路设计进入了深亚微米时代,芯片规模不断增加,设计日趋复杂,时序收
  • xilinx vivado 高速时序收敛技术,主要从以下几方面进行解析 o 高速设计挑战 o 设计分析 o 设计指南 o 复杂性与拥塞分析
  • Xplorer时序收敛技术

    2021-01-19 23:09:31
    时序收敛(Timing Closure)指时序的不断逼近,原理是采用多次迭代(循环)的技术。因此时序收敛就是一个不断反复的过程,以确保设计中的每个路径都满足时序要求。Xplorer是Xilinx定义的,嵌入在ISE工具中时序收敛设计...
  • DDR_DDR2时序收敛分析

    2019-03-10 17:57:39
    该文档阐述了如何利用timeout对ddr进行时序收敛分析。
  • FPGA 时序收敛

    2021-01-19 22:31:12
    您编写的代码是不是虽然在仿真器中表现正常,但是在现场却断断续续出错?要不然就是有可能在您使用更高版本的工具链进行编译时,它开始出错。... 在 FPGA 设计过程中,需要在编译阶段进行逻辑综合与相关时序收敛
  • 什么是时序分析?什么是时序约束?什么又是时序收敛

    文章目录

            写在前面

            磨刀不误砍柴工

            什么是时序分析?

            什么是时序约束?

            什么是时序收敛?


    写在前面

            时序约束与分析是FGPA开发过程中一项必备的技能,同时也是设计开发中相对较难的部分。很多人一谈起FPGA开发,言必称时序约束,搞得好像不会时序分析就不会进行FPGA开发一样。

            举个例子:我以前面试某公司的硬件工程师职位,2面面试官是嵌入式软件出身的技术经理,聊天过程中偶然提到了我会点儿FPGA,结果他只问了我会不会做时序约束,得到我肯定的答复后,一口认定我的FPGA水平很高(实际半吊子水)。这样的看法虽然不够准确,但也代表了许多工程师的心声----FPGA的时序约束仍是一门较高级的技能。        

            这个专栏,我会从时序分析、时序约束和时序收敛3个方面来一起学习基于Xlinx FPGA和Vivado开发平台的FPGA时序相关内容。


    磨刀不误砍柴工

            正所谓磨刀不误砍柴工,在学习时序内容之前,有一些相关的概念有必要先学一下。

    (1)时钟 Clock

            理想的时钟模型是一个占空比为 50%且周期固定的方波。时钟是 FPGA 中同步电路逻辑运行的一个基准。如下图所示: 

    (2)时钟抖动 Clock Jitter

            理想的时钟信号是完美的放波,但是实际的方波是存在一些时钟抖动的。那么什么是时钟抖动呢? 时钟抖动, Clock Jitter,是相对于理想时钟沿,实际时钟存在不随时间积累的、时而超前、时而滞后的偏移称为时钟抖动(时钟脉冲宽度发生暂时变化,也就是 T cycle【时钟周期】或大或小)。 如下图所示: 

    (3)时钟偏差 Clock Skew

            时钟偏差,Clock Skew,是指同一个时钟域内的时钟信号到达数字电路各寄存器所用时间的差异。 时序分析的起点一般是源寄存器(reg1),终点一般是目标寄存器(reg2)。时钟
    信号也会走线,那么和其它信号的传输一样,就会有延时。下图中,时钟信号从时钟源传输到源寄存器的延时我们定义为 Tc2s,传输到目标寄存器的延时我们定义为 Tc2d。如下图所示: 

            时钟网络延时 Tskew 就是 Tc2d 与 Tc2s 之差,即 Tskew=Tc2d-Tc2s。如下图所示: 

            第一个方波是时钟源,第二个方波为时钟到达 REG1 时的波形,第三个方波为时钟到达 REG2 时的波形,从图上可以看出 Tskew 是时钟到达两个寄存器时的相位偏差。 

    (4)时钟不确定性 Clock Uncertainty 

            Clock Uncertainty ,即时钟的不确定性。时钟的不确定性主要是由 Clock Skew 和 Jitter 构成。 因此 Clock Uncertainty = Clock Skew + Clock Jitter。大家搞明白什么是 Skew和 Jitter,那么也就明白什么是 Clock Uncertainty。

            一般标准的时序约束文件中,都需要加 Clock Uncertainty 的约束,这个约束是为了让时序分析更贴近真实的电路设计。 对于 Uncertainty 的设置,每种工艺,或者每种设计来说,都不尽相同。

    (5)同步电路和异步电路

            简单来讲,FPGA 设计中寄存器全部使用一个时钟的设计是同步设计电路,FPGA 设计寄存器使用多个时钟的设计是异步设计电路。我们说的所有时序分析都是建立在同步电路的基础上的,异步电路不能做时序分析(或者说只能做伪路径约束)。

            异步电路由于使用的时钟不同,导致上游寄存器的输出数据进入下游寄存器的时间是任意的,这非常可能导致不满足下游寄存器的建立时间要求和保持时间要求,从而导致亚稳态。同样的原因,由于两者时钟不同,所以也不法建立对应的模型来分析异步电路是否能满足时序要求。

    (6)建立时间(Setup Time)和保持时间(Hold Time)

            建立时间和保持时间是寄存器的固定属性,为了能够是寄存器稳定的采样到当前D端的数据,D端数据必须满足建立时间和保持时间的要求:

    • 建立时间:Setup Time,缩写是 Tsu,即在时钟上升沿之前数据必须稳定的最短时间
    • 保持时间:Hold Time,缩写是 Th,即在时钟上升沿之后数据必须稳定的最短时间

             通俗来讲:建立时间和保持时间就是在寄存器采样窗口中输入数据必须保持不变,以免寄存器无法稳定采样。也就是说,在我寄存器的采样窗口之前你输入数据就必须要保持稳定,即输入数据不能来的太晚(建立时间);同样的,你寄存器的输入数据也必须在我寄存器的采样窗口结束后才变化,在此之前必须保持问题,即输入数据不能走的太早(保持时间)。

            建立时间和保持时间的示意图如下:

            建立时间和保持时间的概念非常重要,一定要记住。因为,我们所谓的时序分析(静态时序分析STA),简单来讲就是使用特定的模型来判断当前设计中的所有寄存器的建立时间和保持时间能否被满足。也就是说,时序分析,就是分析每个寄存器的建立时间和保持时间是不是符合要求的。


    什么是时序分析?

            时序分析主要有两种办法:

    • 静态时序分析:(static timing analysis, STA),是遍历电路存在的所有时序路径,根据给定工作条件(PVT)下的时序库.lib 文件计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足约束要求, 根据最大路径延时和最小路径延时找出违背时序约束的错误
    • 动态时序分析:(dynamic timing analysis, DTA),通常是所有的输入信号都会给一个不同时刻的激励,在 testbech(.sp 或者.v)中设置一段仿真时间,最后对仿真结果进行时序和功能分析。 这里的仿真可以是门级或者晶体管级,包括 spice 格式和 RTL 格式的网表。

            STA不需要输入向量就能穷尽所有的路径,运行速度快,占用内存小。不仅可以对芯片设计进行全面的时序功能检查,还可以利用时序分析的结果来优化设计。DTA的优点是结果精确,并且适用于更多的设计类型;缺点是速度慢,并且可能会遗漏一些关键路径。一般来讲,我们提到的时序分析都是指静态时序分析STA。

            了解了上述概念后,我们就明白了,时序分析实际上就是分析设计中每个寄存器的建立时间和保持时间能否被满足。


    什么是时序约束?

            了解了时序分析后,其实时序约束也就好理解了。简单来讲,时序约束就是你要告诉综合工具,你的标准是什么。综合工具应该如何根据你的标准来布线,以满足所以寄存器的时序要求。

            在FPGA设计中,一旦时钟频率上升,那么时钟周期就会减少。不难想象频率越高,时钟周期越小,而建立时间和保持时间的要求不变,那么对应的,满足建立时间和保持时间也会变难,因为留给信号到达的窗口变小了嘛!

            但是综合工具怎么知道你的设计要求是多少?那它怎么去约束时钟呢?所以我们开发者都告诉综合工具,我们的约束标准是什么,综合工具才可以根据这个标准去布线,从而满足我们的时序要求。

            假设信号需要从输入到输出在 FPGA 内部经过一些逻辑延时和路径延时。我们的系统要求这个信号在 FPGA 内部的延时不能超过 13ns(约束条件),而开发工具在执行过程中找到了下图所示的一些可能的布局布线方式。图中区域 1 的延迟是 5ns,区域 2 的延迟是 7ns,区域 3 的延迟是 5ns,区域 4 的延迟是 11ns。那么,怎样的布局布线能够达到我们的要求呢?仔细分析一番,发现所有路径的延时可能为 12ns(走路径 1)、16ns(走路径 3)、21ns(走路径 2 到路径 5)、17ns(走路径 2 到路径 4),只有 1 条路径能够满足要求,布局布线工具就会选择满足要求的路径 1。

            这个地方我们系统要求这个信号在 FPGA 内部的延时不能超过 13ns,是有 1 条路径可以满足要求的,那么如果系统要求这个信号在 FPGA 内部的延时不能超过 5ns,那么没有任何一条路径可以满足要求,这个就说明这个 FPGA 器件速度等级比较慢,可以选择速度等级比较快的 FPGA 器件,当然也有可能是系统要求过于苛刻(过约束)。 

            如果系统要求这个信号在 FPGA 内部的延时不能超过 18ns,那么是有 3 条路径可以满足要求的,分别是走路径 1,走路径 3,走路径 2 到路径 4 这 3 条路径,这个说明如果系统要求松,那么布局布线工具可以选择就很多,这样对布局布线工具比较友好。 时序分析的前提就是我们先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,即有约束才会有分析。如果我们不添加时序约束,那么时序分析工具就不会去分析时序和做时序收敛。也就是说,只有在对设计添加了时序约束后,系统的时序问题才有可能暴露出来。


    什么是时序收敛?

            在我们给出时序约束的标准后,综合工具会自动进行时序分析,然后出具时序报告表。如果我们的设计欠佳或者约束条件过高,导致综合工具无法实现满足我们要求的布线,这种情况下,设计是不满足时序要求的。

            通过修改设计(如减少扇出、重新布线优化、重定时、流水线切割等一系列方法)或其他方法,来使综合工具能重新实现满足我们设计要求的布线的这一设计过程,就被称为时序收敛Timing closure,同样的,当所有的时序设计要求被满足后,也可以说这一设计是时序收敛的。

            简单点讲,时序收敛就是你改作业的过程,把不及格的作业通过改、抄等手段给改到合格的过程就是时序收敛。

            好的时序是设计出来的,不是约束出来的 。好的约束必须以好的设计为前提。没有好的设计,在约束上下再大的功夫也是没有意义的。不过,通过正确的约束也可以检查设计的优劣,通过时序分析报告可以检查出设计上时序考虑不周的地方,从而加以修改。通过几次“ 分析—修改—分析” 的迭代也可以达到完善设计的目标。应该说,设计是约束的根本,约束是设计的保证,二者是相辅相成的关系。


    • 📣博客主页:wuzhikai.blog.csdn.net
    • 📣本文由 孤独的单刀 原创,首发于CSDN平台🐵
    • 📣您有任何问题,都可以在评论区和我交流📞!
    • 📣创作不易,您的支持是我持续更新的最大动力!如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!

    展开全文
  • 一种深亚微米复杂芯片物理设计的时序收敛方法.pdf
  • 还可以在Strategy中选择策略,策略种类繁多,除了Default,可以选择Performance_Explore来对时序进一步优化,如果在Place阶段时序已经收敛,但是Route阶段不收敛,可以选择Performance_NetDelay_high,来进

    vivado布局布线过程

    • 既然是应用Xilinx公司的编译器进行时序收敛,那么就需要大致了解vivado的编译过程
    • 布局布线过程可以粗略分三步,synthesis,place,route;
    • implentation如果细分,可分为7步:
      • Opt Design:优化逻辑设计,使其适应该Xilinx设备
      • Power Opt Design(可选):优化设计功耗
      • Place Design:将设计布局到对应器件
      • Post-Place Power Opt Design(可选):为了降低功耗,对布局后设计进行进一步优化
      • Post-Place Phys Opt Design(可选):根据布局结果预估布线timing,对逻辑和布局进行进一步优化,主要优化点在复制high fanout(高扇出)驱动。这一步对于时序收敛很重要,Xilinx建议对于高扇出信号用寄存器形式输出,而不是LUT,原因在于vivado会自动对高扇出寄存器信号进行复制;当然,对于wire型变量,可以通过手动添加(*max_fanout=n*)来控制扇出,但驱动能力和时序还是不如寄存器。
      • Route Design:根据布局结果进行布线
      • Post-Route Phys Opt Design(可选):根据实际布线延迟进一步优化逻辑和布局,这一步对于时序优化也有好处,但是不会优化很多,对于关键路径,大概比Route Design的结果好0.01ns左右。

    时序报告查看

    • vivado运行implementation之后,如果有时序违例问题的话,会在最后Design Runs窗口显示时序收敛失败和时序违例大小,但是这个是布线Route阶段之后的结果了,如果只看最终结果很难分析清楚时序违例的根本原因或者说根本路径,所以如果有timing问题,那么要看每一阶段报告,即synthesis之后的,Place Design之后的和Post-Place Phys Opt Design之后的,而不是只看route后的结果;
    • 另外,对于Synthesis和Place阶段的报告,主要看setup time,因为hold time影响因素一是时钟偏斜(skew),但是这个在FPGA的全局时钟树下基本是可以保证的,另一个原因是组合逻辑路径过短,但是在Route阶段布线可以更长一些,也就是说其实把逻辑单元布局很近要比很远难多了,所以我们重点要看setup time。
    • 对于不同阶段的布局布线报告查看方法,可以用vivado的File->Checkpoint的方法查看.dcp文件,文件路径和生成的.bit文件路径相同。

    违例路径查看与分析

    • 双击违例路径即可看到从源寄存器到目的寄存器之间的时序路径,包含逻辑延迟和布线延迟等,如果是组合逻辑级数过高导致的时序违例,那么多插寄存器即可,如果是布线延迟过高,则要具体分析布线延迟大的原因是什么。同样可以用F4以网表形式查看对应路径,更为直观。

    时序违例解决方法

    代码级修改

    • 修改代码是优化时序最直接有效的方法
    • 组合逻辑级数高
      • 最简单的方法就是多插寄存器,增加流水线级数,打断过长的组合逻辑路径;
    • 关键路径fanout过高
      • 尽量将高扇出信号端口以寄存器形式输出,让vivado工具帮助自动进行复制与优化;
      • 对于wire变量可以设置(*max_fanout=n*);
      • 常见的高扇出信号就是复位信号,对于复位信号的时序优化方法:
        • 对使能信号复位,对数据信号和延迟打拍信号尽量不复位;
        • 对于大型工程,可以用BUFG驱动复位信号,或者设计复位树,来对各级子模块进行复位;
        • 复位信号以寄存器形式输出,对寄存器输入输出端口时序设置不需太紧,具体方法后续会讲。
    • 布线拥塞
      • 布线拥塞主要原因是布线资源不够导致的,分为全局拥塞和局部拥塞,一方面可能是扇出信号过多,另一方面可能是局部使用逻辑资源过多,导致运用了较多的长布线资源,产生6级或以上的拥塞。对于布线拥塞的解决方法要综合考虑,可以通过删减或平衡使用较多的资源,以减少逻辑资源的方式减少拥塞;或者通过增加寄存器,多使用Device布局中较空的位置,来解决局部拥塞;或者进行物理约束,比如跨die等。
      • 如果想了解布线拥塞详情也可以参考我的这篇文章:布线拥塞理解与解决方法

    约束

    • 物理约束
      • 物理约束包括:管脚约束、逻辑资源的绝对或相对位置约束、Floorplanning约束等等
      • 对于Floorplanning约束,比如画PBlock,根据对布局布线结果和对Device视图进行分析,根据不同区域逻辑资源和布线资源紧张程度,把逻辑模块进行分散布局。比如常见的,将不同模块资源放置在不同的Die里,然后中间用laguna寄存器进行跨die处理。laguna寄存器可以参考Xilinx IP AXI4-Stream Register Slice。
      • 比如下图,根据硬核位置(比如MAC/PCIE/DDR等)和模块信号传输关系,进行物理约束和跨die处理。

    • 时序约束
      • vivado的默认时序约束是较为严格的,但是我们的设计中并非所有信号路径都需要严格控制时序,比如cpu通过DMA传输的寄存器读写值,有时我们不需要这些结果时刻正确,但是往往这些路径还都是跨时钟域信号,如果按照vivado默认约束,其布局布线会很影响整体的时序收敛,所以我们可以设置假路径(set false path),不对这条路径进行时序收敛。
      • 如果我们觉得直接设置假路径时序过于宽松,那么可以设置寄存器输入输出端口的最大最小delay,即寄存器的C端和D端等,通过这种方法使其约束较为宽松,而不是不约束。下图所示即为一种对于复位端口寄存器的约束方法。

      策略选择

    • 除了修改代码和编写约束之外,我们还可以通过vivado自带策略来进行时序优化。比如如前文所述,implementation阶段勾选上Post-Place Phys Opt Design和Post-Route Phys Opt Design。
    • 还可以在Strategy中选择策略,策略种类繁多,除了Default,可以选择Performance_Explore来对时序进一步优化,如果在Place阶段时序已经收敛,但是Route阶段不收敛,可以选择Performance_NetDelay_high,来进一步对布线资源进行优化。
    •  

    •  

    展开全文
  • 时序收敛(Timing Closure)指时序的不断逼近,原理是采用多次迭代(循环)的技术。因此时序收敛就是一个不断反复的过程,以确保设计中的每个路径都满足时序要求。Xplorer是Xilinx定义的,嵌入在ISE工具中时序收敛设计...
  • 在当今的深亚微米设计中,随着几何尺寸的缩小和密度的增加,时序收敛成为设计人员最为头痛的问题之一。针对0.13微米及以下的工艺,来自互连负载的延时所占的比例显著增加。另外,串扰信号(crosstalk)通过耦合电容...
  • 您编写的代码是不是虽然在仿真器中表现正常,但是在现场却断断续续出错?要不然就是有可能在您使用更高版本的工具链进行编译时,它开始出错。... 在 FPGA 设计过程中,需要在编译阶段进行逻辑综合与相关时序收敛
  • FPGA开发之时序收敛10个小技巧

    多人点赞 2021-08-25 22:02:48
    4)Block RAM和DRAM的选择 \quad 根据应用需求适当选择 4)流水线技术是提高系统频率的一种方法 2、精准的时序约束 \quad 精简而准确的约束是时序收敛的必要条件,Baseline基线方法是充分条件。 1)检查时序约束...

    1、好的代码风格
    1)代码要跟器件结构相关
    2)避免异步复位,异步复位同步化,全局复位局部化
    3)层次的边界要加流水寄存
    \quad 例如:BRAM中有两级register,第一级在内部,第二级在外部slice里的寄器。不同功能模块内部的寄存器要求的速度也不一样,不同位置的寄存器速度不一样。如ILOGIC中的寄存器对setup要求最高(寄存器最慢),OLOGIC中的寄存器对setup的要求最低(寄存器最快)。Slice中的寄存器速度最快,所以经常在mem,clock模块输出端增加一个slice的register。
    在这里插入图片描述
    4)Block RAM和DRAM的选择
    \quad 根据应用需求适当选择
    在这里插入图片描述
    4)流水线技术是提高系统频率的一种方法
    在这里插入图片描述
    2、精准的时序约束
    \quad 精简而准确的约束是时序收敛的必要条件,Baseline基线方法是充分条件。

    1)检查时序约束命令:
    \quad check_timing
    2)小技巧:
    \quad 如果约束过紧可以用以下命令:
    \quad set_clock_uncertainty –setup 0.3 [get_clocks my_CLK]

    3、管理高扇出网络
    \quad 高扇出网络几乎是限制FPGA设计实现更高性能的第一大障碍,所以需要严肃对待设计中的高扇出。

    1)查找最大的扇出网络命令:
    \quad Report_high_fanout_nets –load_types –max_nets 2 –timing
    2)约束高扇出网络命令
    \quad max_fanout可以限定其扇出值,让工具在实现过程中复制驱动端寄存器来优化。也可以多次物理优化phys_opt_design改善扇出。

    4、层次化设计结构
    \quad 自底向上的设计流程

    5、跨时钟域路径的设计和约束
    1)缺省模式下所有时钟域都是related
    2)同步时钟跨时钟域
    \quad 拥有相同的源和确定的相位关系
    3)异步时钟跨时钟域
    \quad 源不相同,没有确定相位关系
    \quad 简单的处理方式:双register(ASYNC_REG),FIFO,握手方式同步
    4)常用的约束命令
    \quad 时钟约束

     set_multicycle_path:多时钟路径约束
     set_clock_groups:时钟分组,等效set_false_path
     set_false_path:伪时钟路径约束
    

    \quad CDC结构问题检查

      report_cdc
      methodology_checks
    

    \quad 跨时钟域问题检查

      report_clock_interation
    

    \quad 查看时钟网络

      report_clock_networks
    

    6、少而精的物理约束
    \quad 万不得已的时候 不要手动布局LOC,如果要做也是对关键元件关键路径做。

    7、选择恰当的策略
    \quad 不同的工程包含不同的设计策略:性能、功耗、面积、流程
    \quad 可以制订自己的策略,如:利用钩子文件,在设计前设计后调Phys_opt_design

    8、共享控制信号
    1)尽量整合频率相同的时钟和时钟使能信号;
    2)在生成IP时选择“共享逻辑”功能,则可以在不同IP间尽可能的共享时钟资源;
    3)复位
    \quad a) 尽量少使用复位
    \quad b) 必须复位时采用同步复位
    \quad c) 用高电平有效复位
    \quad d) 避免异步复位
    4)常用命令
    \quad report_control_sets

    9、读懂日志和时序报告
    1)注重critical warnings 和 errors
    2)检查DRC violations
    \quad methodology_checks
    \quad timing_checks
    3)设计分析报告
    \quad Report_design_analysis(非常有用)用来报告关键路径上的潜在问题以及设计的拥塞程度。

    10、充分发挥tcl的作用

    展开全文
  • 传统的综合技术越来越不能满足当今采用 90 纳米及以下工艺... 终的结果是,所有的三种传统 FPGA 综合方法需要在前端综合与下游的布局布线工具之间进行多次耗时的设计反复,以获得时序收敛。这个问题的解决方案是一种基于
  • fpga时序收敛1

    2022-08-03 21:38:43
    fpga时序收敛1
  • MCMM技术,将工艺角和模式进行组合,对时序同时进行分析和优化,到达快速实现时序收敛的目的。该技术应用于一个80万门基于TSMC 0.152μm logic 工艺的电力网载波通信(PLC)芯片设计,设计实例表明,利用MCMM 技术...
  • 传统的综合技术越来越不能满足当今采用 ...最终的结果是,所有的三种传统 FPGA 综合方法需要在前端综合与下游的布局布线工具之间进行多次耗时的设计反复,以获得时序收敛。这个问题的解决方案是一种基于图形的独特物理
  • 传统的综合技术越来越不能满足当今采用 90 纳米及以下工艺... 最终的结果是,所有的三种传统 FPGA 综合方法需要在前端综合与下游的布局布线工具之间进行多次耗时的设计反复,以获得时序收敛。这个问题的解决方案是一种基
  • altera FPGA 时序收敛

    2018-11-04 11:30:31
    altera FPGA 时序收敛,跨时钟域时序约束,时序优化和时序收敛
  • 本文整理自Xilinx公开课:Vivado时序收敛技术。 有些知识在公开课中讲的并不是很细,因此我又对齐进行了整理,分为了几篇文章。 有很多内容也在我的时序约束课程中讲到过,都是免费课程,大家可以在我的知乎专栏上...
  • 时序收敛流程 时序收敛流程-代码风格 时序收敛流程-综合技术 时序收敛流程-管脚约束 时序收敛流程-时序约束 时序收敛流程-静态时序分析 时序收敛流程-实现技术 时序收敛流程-FloorPlanner和PACE
  • FPGA时序收敛

    2020-10-25 20:20:14
    您编写的代码是不是虽然在仿真器中表现正常,但是在现场却断断续续出错?要不然就是有可能在您使用更高版本的工具链进行编译时,它开始出错。您检查自己的测试平台,并确认测试已经做到 100% 的完全覆盖,而且所有...
  • Vivado时序收敛的方法 一个好的FPGA设计一定是包含两个层面:良好的代码风格和合理的约束。时序约束作为FPGA设计中不可或缺的一部分,已发挥着越来越重要的作用。毋庸置疑,时序约束的最终目的是实现时序收敛时序...
  • 本文整理自Xilinx公开课:Vivado时序收敛技术。 有些知识在公开课中讲的并不是很细,因此我又对齐进行了整理,分为了几篇文章。 有很多内容也在我的时序约束课程中讲到过,都是免费课程,大家可以在我的知乎专栏上...
  • 本文今天带大家学习一下 从静态时序分析到SDRAM时序收敛的时序。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,477
精华内容 2,990
关键字:

时序收敛