FPGA中的时序分析(四)
常用约束语句说明
关于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中的时序分析(四)的更多相关文章
- FPGA中的时序分析(一)
谈及此部分,多多少少有一定的难度,笔者写下这篇文章,差不多是在学习FPGA一年之后的成果,尽管当时也是看过类似的文章,但是都没有引起笔者注意,笔者现在再对此知识进行梳理,也发现了有很多不少的收获.笔者 ...
- FPGA中的时序分析(五)
时序约束实例详解 本篇博客结合之前的内容,然后实打实的做一个约束实例,通过本实例读者应该会实用timequest去分析相关的实例.本实例以VGA实验为基础,介绍如何去做时序约束. 首先VGA这种情况属 ...
- FPGA中的时序分析(三)
验证公式正确性 前两篇博客提及了关于时序的建立余量和保持余量的计算.结合实际情况,验证公式的运算正确性.结合之前博客提及的LED实验,看一下建立余量和保持余量是否都合格. 建立余量 图1是最大时钟 ...
- FPGA中的时序分析(二)
使用Timequest 笔者对Altera较熟悉,这里以quartus ii中的timequest作为讲解. Timequest分析时序的核心,也就是在于延迟因数的计算.那么建立约束文件,去告诉tim ...
- 【转】关于FPGA中建立时间和保持时间的探讨
时钟是整个电路最重要.最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错:因而明确FPGA设计中决定系统时钟的因素,尽 ...
- 【转载】FPGA 中的latch 锁存器
以下这篇文章讲述了锁存器的一些概念和注意事项.原文标题及链接: FPGA 中的latch 锁存器 - 快乐至永远上的博客 - 与非博客 - 与网 http://www.eefocus.com/liuy ...
- FPGA中竞争冒险问题的研究
什么是竞争冒险? 1 引言 现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能. FPGA可以替代其他PLD或者各种中小规模数 ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...
随机推荐
- SSH_框架整合4--添加员工信息
SSH_框架整合4--添加员工信息 一. 1 index.jsp:添加:<a href="emp-input">添加员工向信息:Add Employees' Infor ...
- python之pexpect模块
最近在看<Python自动化运维技术与最佳实战>这本书,学到了一个运维中用到的模块:pexpect 下面是其定义: Pexpect 是一个用来启动子程序并对其进行自动控制的 Python ...
- jQuery-webcam(.NET)实现WEB摄像头监控
jQuery-webcam是一个非常好用的摄像头监控工具,DEMO可官方下载地址http://www.xarg.org/project/jquery-webcam-plugin/ 1.下载解压后,jq ...
- Screen-后台运行
文章转自:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html 本来想搜集资料写一个的,结果发现该博主已经总结的很好,条理清晰. ...
- apache配置常用模块
需要加载的模块列表 LoadModule php5_module modules/libphp5.so LoadModule actions_module modules/mod_actions.so ...
- psutil模块安装指南(win与linux)
1.windows下psutil模块安装: https://pypi.python.org/packages/3.4/p/psutil/ 下载符合版本的软件包下载,然后安装即可. 2.ubuntu下载 ...
- JAVA 边界布局管理器
//边界布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian1 extends JFrame{ //定义组件 JBut ...
- 全文检索引擎Solr系列——solr入门
下载4.8.0版本,下载地址:http://archive.apache.org/dist/lucene/solr/4.8.0/ 解压后,得到文件夹视图如下: 解压缩solr,在example目录有s ...
- 词典对象 NSDictionary与NSMutableDictionary
做过Java语言或者 C语言开发的朋友应该很清楚关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便,是一种非常常用的数据结构.在Objecti ...
- English article1
1. Midlife for many is a time of transition, a time of questioning and a time of change, not just ph ...