静态时序分析之时序收敛技巧(Xilinx FPGA)
文档参考:
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章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...
- 时序约束优先级_Vivado工程经验与各种时序约束技巧分享
FOGA毕竟不是ASIC,对时序收敛的要求更加严格,本文主要介绍本人在工程中学习到的各种时序约束技巧. 首先强烈推荐阅读官方文档UG903和UG949,这是最重要的参考资料,没有之一.它提倡要在设计的 ...
- 翻译不是一个有效的路径_【第一章:绪论】静态时序分析圣经翻译计划
本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19 众所周知,静态时序分析是IC工程师必备知识点,也是秋招中笔试面试的高频考点 ...
- 《静态时序分析实用方法》 第一章翻译
第1章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...
- 数字IC设计学习笔记_静态时序分析STA_ STA基本概念
数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...
- sdram 时钟相位_零基础学FPGA (二十五)必会! 从静态时序分析到SDRAM时序收敛(下篇)...
七.SDRAM工作时钟相位偏移计算本文引用地址:http://www.eepw.com.cn/article/279083.htm 从上篇文章中我们知道,我们的数据是要经过一定的延时才会到达目标器件的 ...
- FPGA之道(81)静态时序分析(七)根据时序报告修改设计(基于ISE的UCF文件语法)
文章目录 前言 根据时序报告修改设计 时序分析报告示例 待分析设计 时序约束文件 时序报告简介 报告综述 内部时钟报告 输入接口报告 输出接口报告 输出数据延迟报告 输出时钟延迟报告 同步输出综合报告 ...
- FPGA之道(80)静态时序分析(六)常用时序约束介绍(基于ISE的UCF文件语法)
文章目录 前言 常用时序约束介绍 时序环境约束 分组时序约束 TNM TNM_NET TIMEGRP 常用时序约束 周期约束 输入时钟周期约束 内部时钟周期约束 关联时钟周期约束 差分时钟周期约束 输 ...
- FPGA开发之时序收敛10个小技巧
1.好的代码风格 1)代码要跟器件结构相关 2)避免异步复位,异步复位同步化,全局复位局部化 3)层次的边界要加流水寄存 \quad例如:BRAM中有两级register,第一级在内部,第二级在外部s ...
最新文章
- python第三方库中函数调用_Python学习笔记(2)——Python的函数、模块、包和库...
- DPDK有关变量(二)
- The first curriculum design experiment report in spring 2019
- mysql中的rman备份_oracle数据库 rman基本备份操作
- SQL*Plus 系统变量之53 - TERM[OUT]
- 将Access数据库导入到SQLite最简单最实用的方法 -转
- NSString类中三个用于获取子字符串的方法:
- Linux登陆密码策略
- 腾讯无线副总李颖:腾讯QQ游戏无线平台将亮相长城会
- 高中低压电网光伏并网二次设计——分布式光伏电站并网市电通讯组网
- Python如何对图片进行缩放,旋转,翻转,添加文字以及如何截取并粘贴图像到图片中
- 企业自动运行系统——价格策略
- 爬取QQ空间说说日志、好友个人信息并进行加密
- (66)-- 多进程爬取腾讯招聘信息
- html中日期下拉选怎么设置,html中option标签(下拉列表选项)的详细介绍
- tms320vc5416c语言编程,TMS320VC5416与CAN总线的接口设计及软件编程
- C#操作Word(五)——在Word文档中插入图片
- vim autoformat php,Linux Vim代码格式化/美化插件vim-autoformat安装
- 解决Vue.directives is not a function报错
- 提示“The selection cannot be launched, and there are no recent launches.”
热门文章
- 【TARS】源码方式部署TARS
- ubuntu启动,提示引导丢失
- 【西瓜书+南瓜书】学习笔记2
- [java/初学者]java常用API(1)——包装类
- vue 解决密码框 input 中type=“password“时,浏览器会回显之前保存的用户名和密码
- Uglify 压缩特定规则方法名、变量
- C语言案例(安徽专升本常考)
- IPv6地址格式及分类解析
- openmv与stm32之间的通信学习(数字识别)
- win 10 无法删除系统文件的解决方法(提示:无法枚举容器中的对象 访问被拒绝)