常用约束语句说明

关于Fmax

     上述是实现Fmax的计算公式,clock skew delay的计算如下图,

就是两个时钟的差值。到头来,影响Fmax的值的大小就是组合逻辑,而Fmax是针对最差劲的节点给出的最高频率,而且Tsu会影响Fmax的大小。

那么提高Fmax可以通过两种方法解决:(1)将两个时序逻辑之间的大组合逻辑分为两个小的逻辑,即采用流水线设计方法 ;(可以在组合逻辑的两端加上寄存器,这样可以增加时序余量) ;(2)更改时序约束或者更改一些综合或者实现选项,让开发工具去解决问题,如下图进行相关设置。

如下图是一个实现乘法器的操作,那么我们可以将有40ns压力的组合逻辑分成多个小的的模块,即流水线形式,这样可以提高数据的吞吐量。

关于PLL约束

首先altera内部的PLL之间是相互关联的,在对PLL进行约束时,derive pll clocks是驱动所有的PLL的输出.

上述是与pll相关的时序约束,其中只要设定约束,就可以实现自动对PLL的输出时钟信号进行约束。

用于交互时钟,内部时钟,和IO接口的不确定时间的自动检测,一般只用在FPGA芯片中,一般此命令需要加入到时序约束中。

此部分也是非常的重要的部分,其中report all summaries 是把所有情况列出来,report top failing paths 是列出所有违规的路径,此路径默认深度是200,可以手动去更改,report all core timings是列出所有核心的路径,默认是1000,如果需要可以去更改。

对于PLL的输出时钟,分为有数据交换和无数据交换两部分。对于无数据交换,约束比较简单,set false path加上PLL的输出时钟名称,约定PLL的输出时钟之间无数据交换。

关于供源时钟

如上图所示,供源时钟就是从FPGA中的fpga_clk输入,然后经过某个管脚直接输出,然后供给ic1和ic2来实现,还是fpga_clk的时钟频率。

对于上图是FPGA和某IC之间的通信,这种情况是建立不了时序约束的,他们没有彼此的独立时钟源,反而观之下图可以实现与内部寄存器相类似的约束功能

延迟源分析

对于延迟方面,分为内部和外部延迟,如图1所示。图2是内部延迟,寄存器之间的一些延迟也是属于内部延迟,外部延迟如图3所示

图1延迟分析

图2 内部延迟

图3 外部延迟

输入输出延迟分析

IC2FPGA模型来讲的。参照下图:

与其相关的公式:

set max/min delay

对于上一节需要计算时钟偏斜,所以需要计算延时的最大值和最小值,即set max/min delay的参数设置。这个参数的设置具体需要根据实例中先估计一个大概值,然后再精确,留足余量。

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

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

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

密码:fgtb

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. FPGA中竞争冒险问题的研究

    什么是竞争冒险? 1 引言     现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能. FPGA可以替代其他PLD或者各种中小规模数 ...

  8. FPGA基础入门篇(四) 边沿检测电路

    FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...

  9. 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH

    目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...

随机推荐

  1. 【转】linux-系统启动流程详解

    第二十章.启动流程.模块管理与 Loader 最近升级日期:2009/09/14 1. Linux 的启动流程分析 1.1 启动流程一览 1.2 BIOS, boot loader 与 kernel ...

  2. 【maven】解决Missing artifact jdk.tools:jdk.tools:jar:1.6

    解决在pom.xml文件中出现的Missing artifact jdk.tools:jdk.tools:jar:1.6问题, <dependency> <groupId>jd ...

  3. SQL Server附加数据库文件出错

    场景: 新装一台数据库服务器,装好后,附加数据库时出错.附加前的数据库架构没有在新服务器上安装.新服务器上只有默认dbo架构. 解决: 以windows身份验证登录,附加正常. 错误码可能为5120. ...

  4. [dts]DTS实例分析

    此篇源文件arch/arm/boot/dts/imx6sx.dtsi 1. dts和dtsi完成的功能 以下是两段较为常见的dtsi和dts代码 uart5: serial@021f4000 { co ...

  5. Haroopad 写 markdown文本

    很好用,推荐大家都来用. http://www.csdn.net/article/2014-05-05/2819623

  6. JavaScript中Eval()函数的使用

    Eval()常用的几种形式 1.我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了. function output(a, b) { var tmpa, ...

  7. Redis几个认识误区(转)

    此文的作者是新浪微博平台架构师杨卫华(timyang)大师,如果关注了新浪一些牛人微博的同学应该知道,timyang前段时间正在对Redis进行一些研究和测试,也分享出了不少成果.下面一篇文章相信是t ...

  8. android的m、mm、mmm编译命令

    android的m.mm.mmm编译命令的使用 android源码目录下的build/envsetup.sh文件,描述编译的命令 - m:       Makes from the top of th ...

  9. python(5)字符串处理 (sub,replace,find,index,upper,strip,split,sub翻页

    一,sub和replace的用法 re.sub 函数进行以正则表达式为基础的替换工作 re.sub替换到目标字符串中的a,b或者c,并全部替换 另加上sub翻页操作: re.sub('start=\d ...

  10. BloomFilter–大规模数据处理利器(转)

    BloomFilter–大规模数据处理利器 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求1 ...