2 FPGA时序约束理论篇之时序路径与时序模型
时序路径
典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。
对于所有的时序路径,我们都要明确其起点和终点,这4类时序路径的起点和终点分别如下表。
时序路径 | 起点 | 终点 | 应用约束 |
---|---|---|---|
①输入端口到FPGA内部第一级触发器的路径 | ChipA/clk | rega/D | set_input_delay |
②FPGA内部触发器之间的路径 | rega/clk | regb/D | create_clock |
③FPGA内部末级触发器到输出端口的路径 | regb/clk | ChipB/D | set_output_delay |
④FPGA输入端口到输出端口的路径 | 输入端口 | 输出端口 | set_max_delay |
这4类路径中,我们最为关心是②的同步时序路径,也就是FPGA内部的时序逻辑。
时序模型
典型的时序模型如下图所示,一个完整的时序路径包括源时钟路径、数据路径和目的时钟路径,也可以表示为触发器+组合逻辑+触发器的模型。
该时序模型的要求为(公式1)
Tclk ≥ Tco + Tlogic + Trouting + Tsetup - Tskew
其中,Tco为发端寄存器时钟到输出时间;Tlogic为组合逻辑延迟;Trouting为两级寄存器之间的布线延迟;Tsetup为收端寄存器建立时间;Tskew为两级寄存器的时钟歪斜,其值等于时钟同边沿到达两个寄存器时钟端口的时间差;Tclk为系统所能达到的最小时钟周期。
这里我们多说一下这个Tskew,skew分为两种,positive skew和negative skew,其中positive skew见下图,这相当于增加了后一级寄存器的触发时间。
但对于negative skew,则相当于减少了后一级寄存器的触发时间,如下图所示。
当系统稳定后,都会是positive skew的状态,但即便是positive skew,综合工具在计算时序时,也不会把多出来的Tskew算进去。
用下面这个图来表示时序关系就更加容易理解了。为什么要减去Tskew,下面这个图也更加直观。
发送端寄存器产生的数据,数据经过Tco、Tlogic、Trouting后到达接收端,同时还要给接收端留出Tsetup的时间。而时钟延迟了Tskew的时间,因此有:
(公式2)
Tdata\_path + Tsetup <= Tskew + Tclk
对于同步设计Tskew可忽略(认为其值为0),因为FPGA中的时钟树会尽量保证到每个寄存器的延迟相同。
公式中提到了建立时间,那保持时间在什么地方体现呢?
保持时间比较难理解,它的意思是reg1的输出不能太快到达reg2,这是为了防止采到的新数据太快而冲掉了原来的数据。保持时间约束的是同一个时钟边沿,而不是对下一个时钟边沿的约束。
reg2在边沿2时刻刚刚捕获reg1在边沿1时刻发出的数据,若reg1在边沿2时刻发出的数据过快到达reg2,则会冲掉前面的数据。因此保持时间约束的是同一个边沿。
在时钟沿到达之后,数据要保持Thold的时间,因此,要满足:(公式3)
Tdata\_path = Tco + Tlogic + Trouting ≥ Tskew + Thold
这两个公式是FPGA的面试和笔试中经常问到的问题,因为这种问题能反映出应聘者对时序的理解。
在公式1中,Tco跟Tsu一样,也取决于芯片工艺,因此,一旦芯片型号选定就只能通过Tlogic和Trouting来改善Tclk。其中,Tlogic和代码风格有很大关系,Trouting和布局布线的策略有很大关系。
关于时序约束的基本理论就讲这么多,下面讲具体的约束。
个人网站:http://www.technomania.cn/
微信公众号:Quant_Times
Reading_Times
FPGA时序约束教程所有文章:
1 FPGA时序约束理论篇之建立保持时间
2 FPGA时序约束理论篇之时序路径与时序模型
3 FPGA时序约束理论篇之IO约束
4 FPGA时序约束理论篇之时钟周期约束
5 FPGA时序约束理论篇之两种时序例外
6 FPGA时序约束理论篇之xdc约束优先级
7 FPGA时序约束实战篇之梳理时钟树
8 FPGA时序约束实战篇之主时钟约束
9 FPGA时序约束实战篇之衍生时钟约束
10 FPGA时序约束实战篇之延迟约束
11 FPGA时序约束实战篇之伪路径约束
12 FPGA时序约束实战篇之多周期路径约束
13 FPGA时序约束之Vivado辅助工具
14 FPGA时序约束之Tcl命令的对象及属性
2 FPGA时序约束理论篇之时序路径与时序模型相关推荐
- 3 FPGA时序约束理论篇之IO约束
I/O约束 I/O约束是必须要用的约束,又包括管脚约束和延迟约束. 管脚约束 管脚约束就是指管脚分配,我们要指定管脚的PACKAGE_PIN和IOSTANDARD两个属性的值,前者指定了管脚的 ...
- 1 FPGA时序约束理论篇之建立保持时间
读万卷书–时序约束理论篇 周期约束理论 首先来看什么是时序约束,泛泛来说,就是我们告诉软件(Vivado.ISE等)从哪个pin输入信号,输入信号要延迟多长时间,时钟周期是多少,让软件PAR(Pl ...
- 5 FPGA时序约束理论篇之两种时序例外
两种时序例外 多周期路径 上面我们讲的是时钟周期约束,默认按照单周期关系来分析数据路径,即数据的发起沿和捕获沿是最邻近的一对时钟沿.如下图所示. 默认情况下,保持时间的检查是以建立时间的检查为 ...
- 4 FPGA时序约束理论篇之时钟周期约束
时钟周期约束 时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束. 下面我们讲一些Vivado中时钟约束指令. 1. Create_cloc ...
- 6 FPGA时序约束理论篇之xdc约束优先级
xdc约束优先级 在xdc文件中,按约束的先后顺序依次被执行,因此,针对同一个时钟的不同约束,只有最后一条约束生效. 虽然执行顺序是从前到后,但优先级却不同:就像四则运算一样,±x÷都是按照从 ...
- FPGA时序约束理论篇之IO约束
参考来源–知乎–张大侠 I/O约束 I/O约束是必须要用的约束,又包括管脚约束和延迟约束. 管脚约束 管脚约束就是指管脚分配,我们要指定管脚的PACKAGE_PIN和IOSTANDARD两个属性的值, ...
- FPGA时序约束篇之时序分析与时序约束的作用
FPGA时序约束篇之时序分析与时序约束的作用 一.写在前面 二.名词解释 三.举个栗子 3.1 降低时钟频率 3.2 提升时钟频率 END 一.写在前面 在每个初学者学习FPGA设计时,都会听前辈 ...
- FPGA时序约束理论之时钟周期约束(5)
1. 时钟周期约束:对时钟的周期进行约束. 2. vivado中时钟约束指令: create_clock 使用create_clock来创建时钟周期约束,使用方法: create_clock -nam ...
- FPGA时序约束理论(基于Vivado)
引言 FPGA的时序约束是非常重要的,它在FPGA的综合和实现过程中扮演了一个非常重要的角色.最近在公众号中看到了一系列关于FPGA时序约束相关的内容,觉得写的非常好,非常全面,深入浅出 ...
最新文章
- CF375D Tree and Queries(dsu on tree)
- 谁说被吃是鸡的宿命?这只鸡长了个价值三个诺奖的肿瘤
- python动态图-Python图像处理之gif动态图的解析与合成操作详解
- [渝粤教育] 中国地质大学 微积分(一) 复习题 (2)
- jieba分词,构建词典
- python对象保存在哪_Python – 在本地保存请求或BeautifulSoup对象
- Keras 开发你的第一个 Python 深度学习项目
- java持续集成soapui_接口自动化测试持续集成--Soapui接口测试
- matlab找异步电机,基于Matlab的异步电动机仿真
- 微信公众号跳转小程序,详细教程
- Beyond compare vs kdiff3
- Spring ldap ODM
- 190115_Vue下路由History mode导致页面无法渲染的原因
- CSS的特殊性 (specificity)
- OA系统八:用户登录一:基于LayUI框架开发登录页;
- 【转载】电子通信、嵌入式工程师的面试指南
- 微信域名防屏蔽跳转系统-微信域名防拦截技术
- 快速云:了解混合云连接最佳做法
- ipa在线安装搭建_HBuilder如何打包ipa文件?如何获取苹果证书?
- 《高数》基本初等函数 反对幂三指 (二)
热门文章
- SQL初学者如何安装MySQL和破解版Navicat搭建SQL练习环境
- 视觉SLAM⑫----建图(未完)
- Windows沾滞键设置
- java唯一订单号_java web在高并发和分布式下实现订单号生成唯一的解决方案
- quartz cron表达式在线生成
- 3Dmax和blender渲染线稿
- python获取电脑有线/无线网卡MAC地址信息
- [渝粤教育] 中国地质大学 互换性与测量技术 复习题 (2)
- 医学百科医院全部信息爬取(转)
- pc端vue登录如何调用软键盘_使用vue实现简单键盘的示例(支持移动端和pc端)