FPGA中与时序有关的概念
FPGA中与时序有关的概念
一、时序分析
时序分析是对整个时序进行分析的操作。作用就是了解设计的时序性能,一般而言就是最大时钟频率。时钟频率越高,设计的工作速度越快(忽略设计实现方法的不同导致的效率提升)。为了提高时钟频率,有一份完整的时序分析报告是必不可少的。
在quartus中的Timequest中,时序分析报告一般包括以下几方面的内容:
(1)最大时钟频率
这个参数只有在时序违规的情况下才会有,如果满足时序收敛的条件,这个参数则没有体现。
(2)全局时钟频率和相关时钟频率
这部分的报告是说明当前设计的时序分析的时钟约束。quartus中在没有特别声明或者使用PLL时,默认是1000M的时钟约束。一般而言,这个值是会产生时序违规的,所以可以通过第一次的时序分析报告来确认当前的设计的最大时钟频率。在后期的时序约束操作中,也可以通过这个页面查看约束的全局时钟和相关时钟。
(3)建立保持时间
这里会给出建立时间和保持时间的时序违规路径。可以根据时序余量的大小可以判断出关键路径,进而确认改进方法。一般来说,建立时间的违规会比较多,保持时间违规多出现在跨时钟域的情况下。路径,是连接时序和设计的桥梁。如果想要确认某个设计的局部时序,就需要通过路径锁定设计区域。路径,简单理解就是一个寄存器到另外一个寄存器传输数据的情况。
(4)最小脉冲宽度
这个参数是受制于FPGA的触发器单元的。触发器读取上升沿和下降沿需要时间,且处于电压稳定的考虑,也是需要时钟脉冲维持一段时间的。这个参数一般因器件而改变,不大受设计的影响(特殊手法除外)。
(5)其他参数
实际上,时序报告还会报告一些其他的参数:如输入延时,输出延时等,这些参数一般不和设计挂钩,只有在和PCB板时完成设计时,才会考虑这部分的问题。还有一些是根据环境做出的约束修正的参数。这部分的报告需要在具体的设计中加入。个人感觉可以将时序分析报告作为一个特殊的仿真,参数越详细,就越符合实际需求。
二、时序约束
时序约束,是约束的一种。在FPGA设计中,一般就有两种约束,管脚约束和时序约束。时序约束,目标是保证时序收敛。一般有两种情况:知道设计的时序要求和优化设计。这两种时序约束的方法是不一致的。对于已知时序要求的设计,可以将需要的时序要求做成时序约束,然后时序分析报告,然后约束加分析循环直至时序收敛。时序优化则是在时序不满足的状况下修改设计,将关键路径逐步优化,直至达到满意的程度。
具体的方法需要在每个实际的项目中学习,不过可以按照这两个情况初步确认分析的流程。
三、时序收敛
时序收敛,就是时序符合设计的要求的时序。这个概念对应的就是所有路径都存在时序余量。
FPGA中与时序有关的概念的更多相关文章
- FPGA中改善时序性能的方法_advanced FPGA design
本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一 ...
- 【转】关于FPGA中建立时间和保持时间的探讨
时钟是整个电路最重要.最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错:因而明确FPGA设计中决定系统时钟的因素,尽 ...
- 【转载】FPGA 中的latch 锁存器
以下这篇文章讲述了锁存器的一些概念和注意事项.原文标题及链接: FPGA 中的latch 锁存器 - 快乐至永远上的博客 - 与非博客 - 与网 http://www.eefocus.com/liuy ...
- FPGA中的时序分析(一)
谈及此部分,多多少少有一定的难度,笔者写下这篇文章,差不多是在学习FPGA一年之后的成果,尽管当时也是看过类似的文章,但是都没有引起笔者注意,笔者现在再对此知识进行梳理,也发现了有很多不少的收获.笔者 ...
- 【黑金原创教程】【TimeQuest】【第一章】TimeQuest 静态时序分析模型的概念
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/ ...
- FPGA中的delay与latency
delay和latency都有延迟的意义,在FPGA中二者又有具体的区别. latency出现在时序逻辑电路中,表示数据从输入到输出有效经过的时间,通常以时钟周期为单位. delay出现在组合逻辑电路 ...
- FPGA中的时序分析(四)
常用约束语句说明 关于Fmax 上述是实现Fmax的计算公式,clock skew delay的计算如下图, 就是两个时钟的差值.到头来,影响Fmax的值的大小就是组合逻辑,而Fmax是针对 ...
- FPGA中RAM使用探索
FPGA中RAM的使用探索.以4bitX4为例,数据位宽为4为,深度为4. 第一种方式,直接调用4bitX4的RAM.编写控制逻辑对齐进行读写. quartus ii 下的编译,资源消耗情况. 85C ...
- 低成本FPGA中实现动态相位调整
在FPGA中,动态相位调整(DPA)主要是实现LVDS接口接收时对时钟和数据通道的相位补偿,以达到正确接收的目的.ALTERA的高端FPGA,如STRATIX(r) 系列中自带有DPA电路,但低端的F ...
- FPGA中竞争冒险问题的研究
什么是竞争冒险? 1 引言 现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能. FPGA可以替代其他PLD或者各种中小规模数 ...
随机推荐
- java 从零开始手写 redis(十)缓存淘汰算法 LFU 最少使用频次
前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...
- Laravel入坑指南(3)——模板
各位小伙伴有缘聚到这里,说明对于Laravel的路由和控制器已经有点了解了. 会写业务逻辑之后,如何把结果漂亮地展示出来,就是我们要解决的问题.(前后端分离的同学,请自动忽略)在MVC的世界里,漂亮的 ...
- Java设计模式-观察者模式Observer
介绍 观察者模式是行为设计模式之一.当您对对象的状态感兴趣并希望在任何更改时得到通知时,观察者设计模式非常有用.在观察者模式中,观察另一个对象状态的对象被称为观察者,而被观察的对象则被称为主体. 优点 ...
- nginx中使用perl脚本来定制一些请求转发等等
http://t.zoukankan.com/carriezhangyan-p-9359708.html https://blog.csdn.net/weixin_28917223/article/d ...
- ChainMap合并字典
在python中,我们有两个字典需要合并的时候,可以使用字典的update方法 a = {'a': 1, 'b': 2} b = {'x': 3, 'y': 4} a.update(b) print( ...
- .NET Core 引发的异常:“sqlsugar.sqlsugarexception” 位于 system.private.corelib.dll 中
运行一个.NET Core 项目 报错:引发的异常:"sqlsugar.sqlsugarexception" 位于 system.private.corelib.dll 中 . 我 ...
- webservice之jersey简单实用
前言 项目中更需要使用到webservice,具体的是使用jersey.那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结w ...
- NET项目&DLL反编译&MSSQL监控&VS搜索&注入&上传
知识点 1.NET普通源码&编译源码 2.DLL反编译&后缀文件&指向 3.代码审计-SQL注入&文件上传 ASPX文件 -> CS ASPX.CS DLL反编译 ...
- HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!
写在开头 在<耗时2天,写完HashMap>这篇文章中,我们提到关于HashMap线程不安全的问题,主要存在如下3点风险: 风险1: put的时候导致元素丢失:如两个线程同时put,且ke ...
- MySQL联接表总结笔记
SQL最强的的工呢过之一就是能够在护具检索查询的执行中联结表,联结表利用SQL的select能执行的最重要的操作,很好的理解联结及其语法学习SQL的一个重要的组成部分. 在能够有效的使用联结前,必须了 ...