时序约束实例详解

本篇博客结合之前的内容,然后实打实的做一个约束实例,通过本实例读者应该会实用timequest去分析相关的实例。本实例以VGA实验为基础,介绍如何去做时序约束。

首先VGA这种情况属于供源时钟情况,不明白供源时钟的可以参看之前博客讲解。首先查看ADV7123的数据手册,查看其时序图。如下图所示,是建立时间和保持时间要求。

下图是时序图,可见t1和t2在时钟上升沿的位置,数据在时钟的上升沿进行采集。

对于VGA实验来说,FPGA是发送端,ADV7123是接收端,如果传输的速率比较高的话,数据和时钟上升沿的严格对齐就要依靠PLL产生可调相位的时钟信号来保证,不过对于对于25MHz时钟通过较好的时序约束和分析后,则不必动用PLL。

接下来需要产生虚拟时钟,对于reg2reg路径的分析,其时钟都是FPGA内部,不用产生虚拟时钟,但是对于pin2reg或者reg2pin这种情况,需要产生一个虚拟时钟,作为pin端的时钟来分析时序。如下图中的标注所示。

所以ADV7123和FPGA进行时钟相关的信号就是ADV7123的驱动时钟,明白这个信号之后,需要设置其虚拟时钟约束,如下图所示。

由于FPGA是相对于ADV7123为输出ADV7123所需要的信号,所以需要设置输出延迟约束。这一部分结合上一篇博客的分析,首先需要计算FPGA到ADV7123芯片的延迟,这一部分主要是PCB上面的信号走线延时。所以需要结合PCB走线来估计延迟时间。

打开altium designer,然后查看VGA模块的走线长度如下图1所示,长度大约是11.589mm。

图1 VGA模块走线长度

在FPGA核心板(笔者设计的一款学习板)上面的lcd_dclk的走线长度如下图2所示。长度大约是41.4mm。

图2 核心板走线长度

根据上述的计算,所以lcd_dclk总得走线长度 = 52.989mm。

同样的道理,数据走线长度如下图3所示,此走线长度是VGA模块上面的长度,长度大约在7.72~43.152mm,那么对于核心板上面的走线模块长度如图4所示,大概长度约为28.65 ~ 53.32mm,总的长度为36.37mm~96.472mm,根据0.17ns/25.4mm,lcd_clk走线延迟0.35ns,数据总线延迟0.24ns~0.646ns。

图3 各信号走线延迟

图4 核心板各信号走线延迟

若是不考虑时钟偏移,那么进行时序分析得到的余量如图5所示。

图5 建立和保持余量

上述是计算完了FPGA到外部IC的延迟,但是还有时钟偏斜没有计算,那么需要用到set max/min delay 命令,对于lcd_dclk先估计一个范围,如0~5ns即可,这个范围肯定是满足要求,但是可能会不能够留有更多的余量。然后在将有时钟偏移的延迟时间代入set output delay的表达式中,此处利用公式将lcd_dclk 最大延迟设为3ns,lcd_dclk最小延迟设为1ns,那么考虑时钟偏斜的输出最大值 = 0.646 + 0.2 -3 = -2.154ns;输出最小值 = 0.24 - 1.5 - 1 = -2.26ns;

图6是约束后的建立余量和保持余量,可以看到满足时序要求,并保有很大的时序余量。

图6 建立余量和保持余量

//=======================================================================

更多详细的资料下载可以登录笔者百度网盘:

网址:http://pan.baidu.com/s/1bnwLaqF

密码:fgtb

//=======================================================================

FPGA中的时序分析(五)的更多相关文章

  1. FPGA中的时序分析(一)

    谈及此部分,多多少少有一定的难度,笔者写下这篇文章,差不多是在学习FPGA一年之后的成果,尽管当时也是看过类似的文章,但是都没有引起笔者注意,笔者现在再对此知识进行梳理,也发现了有很多不少的收获.笔者 ...

  2. FPGA中的时序分析(四)

    常用约束语句说明 关于Fmax      上述是实现Fmax的计算公式,clock skew delay的计算如下图, 就是两个时钟的差值.到头来,影响Fmax的值的大小就是组合逻辑,而Fmax是针对 ...

  3. FPGA中的时序分析(三)

    验证公式正确性   前两篇博客提及了关于时序的建立余量和保持余量的计算.结合实际情况,验证公式的运算正确性.结合之前博客提及的LED实验,看一下建立余量和保持余量是否都合格. 建立余量 图1是最大时钟 ...

  4. FPGA中的时序分析(二)

    使用Timequest 笔者对Altera较熟悉,这里以quartus ii中的timequest作为讲解. Timequest分析时序的核心,也就是在于延迟因数的计算.那么建立约束文件,去告诉tim ...

  5. 【转载】FPGA 中的latch 锁存器

    以下这篇文章讲述了锁存器的一些概念和注意事项.原文标题及链接: FPGA 中的latch 锁存器 - 快乐至永远上的博客 - 与非博客 - 与网 http://www.eefocus.com/liuy ...

  6. 【转】关于FPGA中建立时间和保持时间的探讨

      时钟是整个电路最重要.最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错:因而明确FPGA设计中决定系统时钟的因素,尽 ...

  7. 巧用FPGA中资源

    随着FPGA的广泛应用,所含的资源也越来越丰富,从基本的逻辑单元.DSP资源和RAM块,甚至CPU硬核都能集成在一块芯片中.在做FPGA设计时,如果针对FPGA中资源进行HDL代码编写,对设计的资源利 ...

  8. Android中Button的五种监听事件

    简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activ ...

  9. FPGA中的delay与latency

    delay和latency都有延迟的意义,在FPGA中二者又有具体的区别. latency出现在时序逻辑电路中,表示数据从输入到输出有效经过的时间,通常以时钟周期为单位. delay出现在组合逻辑电路 ...

随机推荐

  1. Python 的并发编程

    这篇文章将讲解 Python 并发编程的基本操作.并发和并行是对孪生兄弟,概念经常混淆.并发是指能够多任务处理,并行则是是能够同时多任务处理.Erlang 之父 Joe Armstrong 有一张非常 ...

  2. HTML5学习笔记(二十四):DOM扩展

    DOM扩展 DOM标准扩展最开始都是来自各个浏览器的自定义扩展DOM的功能,后被收录为标准的DOM相关API. 本笔记只记录被各大浏览器支持的标准扩展,对于特定浏览器的专有扩展不讨论. 选择符API ...

  3. git mergetool 解决冲突的问题

    git mergetool http://blog.csdn.net/u012150179/article/details/14047183

  4. 不忘初心,回归本质 .net core

    static void Main(string[] args) { ; object j = i;//装箱 就是把值类型转换成引用类型 int k = (int)j;//拆箱 就是把引用类型转换成值类 ...

  5. windows 定时任务:schtasks,定时关闭网易云音乐

    大部分属于转载和粘贴. 使用命令:schtasks windows 定时任务   使用样例: 每天定时关闭网易云音乐: 每天22:20关闭网易云音乐: schtasks /create /tn &qu ...

  6. C#对DataTable里数据筛选排序的方法

    在日常开发过程中,有一个DataTable集合,里面有很多字段,现在要求针对某一列进行排序,如果该列为数字的话,进行ASC即可实现,但是该字段类型为string,此时排序就有点不正确了 protect ...

  7. linux下保护视力、定时强制锁定软件: Workrave

    超负荷地工作会累坏身体的,而且效率也不高,所以工作一段时间就应该休息一下.长时间在电脑前一动不动,很容易患上“重复性劳损”,即 Repetitive Strain Injury (RSI).具体现象大 ...

  8. ssh 地址

    structs2http://struts.apache.org/download.cgi spring hibernate http://hibernate.org/orm/downloads/

  9. iosg给父类view添加透明度子类也变得透明

    用如下方式给父类view设置透明度不要使用alpha设置 self.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponen ...

  10. 基于jQuery经典扫雷游戏源码

    分享一款基于jQuery经典扫雷游戏源码.这是一款网页版扫雷小游戏特效代码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <center> <h1>j ...