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或者各种中小规模数 ...
随机推荐
- STM32F407VET6 / BLACK_F407VE开发板间隔0.5秒不断重启
有一块 STM32F407VET6 的故障开发板, 之前的问题是经常无法烧录, 必须reset之后才能连接, 具体查看这篇 STM32F407VET6烧录出现flash download failed ...
- 正则表达式(Regular Expression)详解
1 前言 正则表达式主要用于复杂文本处理,如模式匹配.格式检验.文本替换等.常用的通配符有: ^, $, *, ., , -, +, ?, &, |, (), [], {} 2 String中 ...
- let与const
let与const ES2015(ES6)新增加了两个重要的JavaScript关键字: let和const. 块级作用域 代码块内如果存在let或者const,代码块会对这些命令声明的变量从块的开始 ...
- 网站(>???<)
http://cpeditor.org/ https://csacademy.com/app/graph_editor/ https://www.cnblogs.com/zhangyi1357/p/1 ...
- Mac M1 在PyCharm中安装(支持GPU)TensorFlow 方法
本文介绍在Mac M1的PyCharm中安装TensorFlow与创建工程的方法,在2021的MacBook Pro (M1 Max处理器)验证OK. 安装TensorFlow与创建工程是在Minif ...
- .NET Core 集成微信支付签名错误
.NET Core 集成微信支付签名错误 The provided data is tagged with 'Universal' class value '16', but it should ha ...
- 【LeetCode动态规划#03】整数拆分(数学题)
整数拆分 力扣题目链接(opens new window) 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 ...
- 【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
问题描述 Java Spring Boot的代码在IDE里面跑可以连上 Azure 的 Redis服务,打包成Image放在容器里面跑,就连不上azure的redis服务,错误消息为: Unable ...
- 各类LLM模型分析比较
Large Language Model 模型对比 对于LLM模型框架主要如下3类[1]:1.autoregressive,2.autoencoding,3.encoder-decoder.主要对3类 ...
- Cookie session token 区别?
Cookie一开始为了解决登录状态的问题,token是为了对保存的数据进行加密,加密了之后cookie就保存了加密之后的密文,这个就是token,session是因为数据保存到客户端不安全,把数据保存 ...