文档参考:

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等相关选项

静态时序分析之时序收敛技巧(Xilinx FPGA)相关推荐

  1. 《静态时序分析实用方法》翻译

    第1章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...

  2. 时序约束优先级_Vivado工程经验与各种时序约束技巧分享

    FOGA毕竟不是ASIC,对时序收敛的要求更加严格,本文主要介绍本人在工程中学习到的各种时序约束技巧. 首先强烈推荐阅读官方文档UG903和UG949,这是最重要的参考资料,没有之一.它提倡要在设计的 ...

  3. 翻译不是一个有效的路径_【第一章:绪论】静态时序分析圣经翻译计划

    本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19 众所周知,静态时序分析是IC工程师必备知识点,也是秋招中笔试面试的高频考点 ...

  4. 《静态时序分析实用方法》 第一章翻译

    第1章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...

  5. 数字IC设计学习笔记_静态时序分析STA_ STA基本概念

    数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...

  6. sdram 时钟相位_零基础学FPGA (二十五)必会! 从静态时序分析到SDRAM时序收敛(下篇)...

    七.SDRAM工作时钟相位偏移计算本文引用地址:http://www.eepw.com.cn/article/279083.htm 从上篇文章中我们知道,我们的数据是要经过一定的延时才会到达目标器件的 ...

  7. FPGA之道(81)静态时序分析(七)根据时序报告修改设计(基于ISE的UCF文件语法)

    文章目录 前言 根据时序报告修改设计 时序分析报告示例 待分析设计 时序约束文件 时序报告简介 报告综述 内部时钟报告 输入接口报告 输出接口报告 输出数据延迟报告 输出时钟延迟报告 同步输出综合报告 ...

  8. FPGA之道(80)静态时序分析(六)常用时序约束介绍(基于ISE的UCF文件语法)

    文章目录 前言 常用时序约束介绍 时序环境约束 分组时序约束 TNM TNM_NET TIMEGRP 常用时序约束 周期约束 输入时钟周期约束 内部时钟周期约束 关联时钟周期约束 差分时钟周期约束 输 ...

  9. FPGA开发之时序收敛10个小技巧

    1.好的代码风格 1)代码要跟器件结构相关 2)避免异步复位,异步复位同步化,全局复位局部化 3)层次的边界要加流水寄存 \quad例如:BRAM中有两级register,第一级在内部,第二级在外部s ...

最新文章

  1. python第三方库中函数调用_Python学习笔记(2)——Python的函数、模块、包和库...
  2. DPDK有关变量(二)
  3. The first curriculum design experiment report in spring 2019
  4. mysql中的rman备份_oracle数据库 rman基本备份操作
  5. SQL*Plus 系统变量之53 - TERM[OUT]
  6. 将Access数据库导入到SQLite最简单最实用的方法 -转
  7. NSString类中三个用于获取子字符串的方法:
  8. Linux登陆密码策略
  9. 腾讯无线副总李颖:腾讯QQ游戏无线平台将亮相长城会
  10. 高中低压电网光伏并网二次设计——分布式光伏电站并网市电通讯组网
  11. Python如何对图片进行缩放,旋转,翻转,添加文字以及如何截取并粘贴图像到图片中
  12. 企业自动运行系统——价格策略
  13. 爬取QQ空间说说日志、好友个人信息并进行加密
  14. (66)-- 多进程爬取腾讯招聘信息
  15. html中日期下拉选怎么设置,html中option标签(下拉列表选项)的详细介绍
  16. tms320vc5416c语言编程,TMS320VC5416与CAN总线的接口设计及软件编程
  17. C#操作Word(五)——在Word文档中插入图片
  18. vim autoformat php,Linux Vim代码格式化/美化插件vim-autoformat安装
  19. 解决Vue.directives is not a function报错
  20. 提示“The selection cannot be launched, and there are no recent launches.”

热门文章

  1. 【TARS】源码方式部署TARS
  2. ubuntu启动,提示引导丢失
  3. 【西瓜书+南瓜书】学习笔记2
  4. [java/初学者]java常用API(1)——包装类
  5. vue 解决密码框 input 中type=“password“时,浏览器会回显之前保存的用户名和密码
  6. Uglify 压缩特定规则方法名、变量
  7. C语言案例(安徽专升本常考)
  8. IPv6地址格式及分类解析
  9. openmv与stm32之间的通信学习(数字识别)
  10. win 10 无法删除系统文件的解决方法(提示:无法枚举容器中的对象 访问被拒绝)