FPGA中与时序有关的概念

一、时序分析

时序分析是对整个时序进行分析的操作。作用就是了解设计的时序性能,一般而言就是最大时钟频率。时钟频率越高,设计的工作速度越快(忽略设计实现方法的不同导致的效率提升)。为了提高时钟频率,有一份完整的时序分析报告是必不可少的。

在quartus中的Timequest中,时序分析报告一般包括以下几方面的内容:

(1)最大时钟频率

这个参数只有在时序违规的情况下才会有,如果满足时序收敛的条件,这个参数则没有体现。

(2)全局时钟频率和相关时钟频率

这部分的报告是说明当前设计的时序分析的时钟约束。quartus中在没有特别声明或者使用PLL时,默认是1000M的时钟约束。一般而言,这个值是会产生时序违规的,所以可以通过第一次的时序分析报告来确认当前的设计的最大时钟频率。在后期的时序约束操作中,也可以通过这个页面查看约束的全局时钟和相关时钟。

(3)建立保持时间

这里会给出建立时间和保持时间的时序违规路径。可以根据时序余量的大小可以判断出关键路径,进而确认改进方法。一般来说,建立时间的违规会比较多,保持时间违规多出现在跨时钟域的情况下。路径,是连接时序和设计的桥梁。如果想要确认某个设计的局部时序,就需要通过路径锁定设计区域。路径,简单理解就是一个寄存器到另外一个寄存器传输数据的情况。

(4)最小脉冲宽度

这个参数是受制于FPGA的触发器单元的。触发器读取上升沿和下降沿需要时间,且处于电压稳定的考虑,也是需要时钟脉冲维持一段时间的。这个参数一般因器件而改变,不大受设计的影响(特殊手法除外)。

(5)其他参数

实际上,时序报告还会报告一些其他的参数:如输入延时,输出延时等,这些参数一般不和设计挂钩,只有在和PCB板时完成设计时,才会考虑这部分的问题。还有一些是根据环境做出的约束修正的参数。这部分的报告需要在具体的设计中加入。个人感觉可以将时序分析报告作为一个特殊的仿真,参数越详细,就越符合实际需求。

二、时序约束

时序约束,是约束的一种。在FPGA设计中,一般就有两种约束,管脚约束和时序约束。时序约束,目标是保证时序收敛。一般有两种情况:知道设计的时序要求和优化设计。这两种时序约束的方法是不一致的。对于已知时序要求的设计,可以将需要的时序要求做成时序约束,然后时序分析报告,然后约束加分析循环直至时序收敛。时序优化则是在时序不满足的状况下修改设计,将关键路径逐步优化,直至达到满意的程度。

具体的方法需要在每个实际的项目中学习,不过可以按照这两个情况初步确认分析的流程。

三、时序收敛

时序收敛,就是时序符合设计的要求的时序。这个概念对应的就是所有路径都存在时序余量。

FPGA中与时序有关的概念的更多相关文章

  1. FPGA中改善时序性能的方法_advanced FPGA design

    本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一 ...

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

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

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

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

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

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

  5. 【黑金原创教程】【TimeQuest】【第一章】TimeQuest 静态时序分析模型的概念

      声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/ ...

  6. FPGA中的delay与latency

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

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

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

  8. FPGA中RAM使用探索

    FPGA中RAM的使用探索.以4bitX4为例,数据位宽为4为,深度为4. 第一种方式,直接调用4bitX4的RAM.编写控制逻辑对齐进行读写. quartus ii 下的编译,资源消耗情况. 85C ...

  9. 低成本FPGA中实现动态相位调整

    在FPGA中,动态相位调整(DPA)主要是实现LVDS接口接收时对时钟和数据通道的相位补偿,以达到正确接收的目的.ALTERA的高端FPGA,如STRATIX(r) 系列中自带有DPA电路,但低端的F ...

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

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

随机推荐

  1. Zabbix 配置笔记

    Zabbix Server 安装参考 https://www.cnblogs.com/clsn/p/7885990.html 安装脚本 #!/bin/bash #clsn #设置解析 注意:网络条件较 ...

  2. 【Unity3D】发射(Raycast)物理射线(Ray)

    1 前言 ​ 碰撞体组件Collider 中介绍了 2 个碰撞体之间的碰撞检测,本文将介绍物理射线与碰撞体之间的碰撞检测.物理射线由 Ray 定义,通过 Physics.Raycast / Physi ...

  3. Java并发编程实例--3.打断一个线程

    一般来讲一个java程序如果运行着多个线程,那么只有在这些线程都运行完毕后才会终止. 但有时候,我们需要去结束某个线程或者取消某个任务.此时就用到了Java线程的打断机制,即interruption. ...

  4. win32 - service的创建

    参考这篇教程:Simple Windows Service in C++ 安装service需要在管理员权限下运行cmd,并输入下面的命令行 C:\>sc create "My Sam ...

  5. 硬件开发笔记(五): 硬件开发基本流程,制作一个USB转RS232的模块(四):创建CON连接器件封装并关联原理图元器件

    前言   有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的.为了更好的表述封装设计过程,本文描述了一个创建CON标准连接件封装,创建 ...

  6. vue运行时报错Error from chokidar

    原文博客地址 Error from chokidar (/home/youyou/文档/vue/vuetask01/node_modules/lodash): Error: ENOSPC: Syste ...

  7. java个人博客

    效果浏览 首页 详情页 Aboutme 后台管理 管理/添加博客 添加分类 管理员管理 友情链接 访问地址 前台地址http://localhost 后台地址:http://localhost/adm ...

  8. Django之第三方平台QQ授权登录的实现

    接入指南:https://wiki.connect.qq.com/成为开发者 准备工作 成为开发者 首先要有一个开发者账号,https://connect.qq.com/ 登录后点击用户头像,修改个人 ...

  9. 记录一个错误:Traceback (most recent call last): from pip._internal.cli.main import main ImportError: No module named pip._internal.cli.main

    问题描述 在安装yaml时得到报错如下 root@ag-virtual-machine:/home/ag/test_script# pip install pyyaml Traceback (most ...

  10. 【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?

    问题描述 在App Service for Linux的环境中,我们能通过SSH进入到Container的环境中,并且可以通过在kudu站点的URL后面添加 /newui 打开一个适用于Linux环境 ...