FPGA时序约束--基础理论篇

2023-10-26

FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保持时间。

时序约束可以让VIvado和Quartus等FPGA开发软件,在布线时检测综合出来的逻辑电路是否满足这个时序要求,并生成时序报告。

目录

一、建立/保持时间

1、基本概念

2、时钟抖动

3、时钟偏差

二、时序路径

三、时序模型

四、总结


一、建立/保持时间

1、基本概念

设定时序约束的目的就是为了满足建立时间和保持时间,所以理解“建立时间和保持时间”这两个概念非常重要。

建立时间:在时钟上升沿到来之前,输入信号需要提前一个最小时间里“预先准备好”,这个最小时间量就是建立时间;

保持时间:在时钟上升沿到来之后,输入信号必须保持一个最小时间量“不能变化”,这样这个最小时间量就是保持时间。

只有满足建立时间和保持时间,这样才能准确捕获到这个输入信号,下一级电路逻辑才能正常接收到正确的信号。

建立和保持时间是由FPGA芯片器件特性决定,也就是制程工艺决定的,以Xilinx FPGA K7芯片为例,setup time为0.04ns,hold time为0.2ns,具体可以查对应芯片手册的setup time和hold time。

2、时钟抖动

实际的时钟信号是存在时钟抖动的,时钟抖动( Clock Jitter)是实际时钟存在随着时间积累的、时而超前、时而滞后的偏移,如下图所示。

3、时钟偏差

时钟偏差(Clock Skew)表示在同一个时钟域内时钟信号到达各个寄存器用时的差异。时钟信号在FPGA芯片中也是需要走线的,所以也存在布线延迟。

​时钟的不确定性,就是由时钟抖动和时钟偏差组成的。

二、时序路径

时序路径是指从FPGA输入到输出的所有逻辑路径组成的路径。当存在时序路径时,需要考虑时序约束以确保正确的逻辑功能和时序性能。

时序路径中的关键元素包括:

(1) 路径起点(即时钟触发器输入端口)

(2)路径终点(即输出端口的寄存器或查找表单元)

(3)逻辑电路和逻辑器件

​有了这些元素,就可以构建完整的时序路径。在实践中,我们可以使用FPGA工具来分析、优化和修复时序路径。

时序路径对于设计的正确性和时序性能来说都是非常重要的。为了最大程度地提高性能并避免瓶颈,我们必须对时序路径进行详细的分析和优化。

三、时序模型

一个基本的时序路径包括源时钟路径、数据路径和目的时钟路径,如下图所示:

​各部分对应的延时计算如下图所示:

​时序约束的公式为:Tclk ≥ Tco + Tlogic + Trouting + Tsetup - Tskew

说明:Tclk表示系统时钟周期;Tco表示发送端寄存器时钟到输出时间;Tlogic表示组合逻辑延迟时间;Trouting为两级寄存器之间的布线延迟;Tsetup为接收端寄存器的建立时间;Tskew为时钟偏差。

Tlogic与我们写的HDL代码有直接关系,Trouting是FPGA开发软件综合布线根据FPGA内部资源情况进行布线产生的延时。

四、总结

本文介绍了FPGA时序约束的基础理论知识,希望通过阅读本文,大家能够更好地理解时序约束原理,并在实际工作中运用这些原理提高设计效率和准确性。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

@FPGA入门到精通获取,学习资料分享,github开源代码:“FPGA知识库

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FPGA时序约束--基础理论篇 的相关文章

  • 八段数码管动态显示(输入数据为BCD编码)

    八段数码管动态显示 输入数据为BCD编码 一 数码管概述 图1 八段共阴数码管内部等效原理图 图2 八段共阳数码管内部等效原理图 上面两图分别是对应八段共阴 共阳的数码管内部等效图 共阴是将八个LED数码管的阴极连接在一起接低 阳极segm
  • IC数字后端

    在 innovus 里面 有时候我们需要控制 tie cell 的 fanout 和 net length 来避免 tie cell 可能出现 max transition 或者 max fanout 的违例 一般来说 只要 fanout
  • TestBench编写_激励产生

    TestBench编写 激励产生 TestBench编写 激励产生 基本背景 读取函数介绍 a fopen函数使用 b fread函数使用 c fclose函数使用 实际使用 TestBench编写 激励产生 基本背景 最近遇到项目中需要对
  • 采用Vivado 配置xilinx GTX的SATA设计

    从Vivado开始 配置GTX的时候 多了一个SATA协议支持 但有些小地方还需要自己另外设置 整理了一下 分享给大家 首先打开Transceivers wizard 打开页签 线速率和参考时钟选择 在协议里面选择SATA2或者SATA3
  • 【FPGA】面试问题及答案整理合集

    面试问题及答案整理合集 1 硬件描述语言和软件编程语言的区别 2 FPGA选型问题 3 建立时间和保持时间问题 3 亚稳态问题 4 竞争和冒险问题 5 乒乓操作问题 6 同步和异步逻辑电路 7 同步复位和异步复位 8 MOORE 与 MEE
  • 【数字IC】从零开始的Verilog SPI设计

    从零开始的Verilog SPI协议设计 一 写在前面 1 1 协议标准 1 2 数字IC组件代码 1 3 设计要求 1 4 其他协议解读 1 4 1 UART协议 1 4 2 SPI协议 1 4 3 I2C协议 1 4 4 AXI协议 二
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • 【PIPE】流水线设计中的基本模块

    大概分成以下几节 1 概述及协议 2 valid forward valid超前 3 bubble collapse 消除气爆 4 input output skid 不知中文怎么说 5 pipe halt 流水停顿 6 idle pres
  • FPGA Lattice Diamond 开发环境搭建

    FPGA Lattice Diamond 开发环境搭建 Lattice Diamond 软件下载 在浏览器中输入 Lattice 的官网地址 http www latticesemi com 进入官网首页在上方选择产品系列选项 出现如下图所
  • 画时序图软件——TimeGen和Timing Designer下载

    在写实验报告的时候需要画波形图 但是手头没有很好的软件 就上网搜了一些 分享出来 这里分享的是TimeGen和Timing Designer两个软件 资源均来自网上 有侵权请联系 TimeGen使用和安装都比较简单 我发的应该里面有破解方法
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • [Verilog] Verilog 基本格式和语法

    主页 元存储博客 全文 3000 字 文章目录 1 声明格式 1 1 模块声明 1 2 输入输出声明 1 3 内部信号声明 1 4 内部逻辑声明
  • 用于 Verilog 或 SystemVerilog 的 TAP(测试任何协议)模块

    是否有 TAP 测试任何协议 http testanything org Verilog 的实现 那就太好了 因为这样我就可以使用证明来自动检查我的结果 更新 10 9 09 有人问为什么不使用断言 部分 TAP 为我提供了一些很好的报告
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • TRICONEX MA2211-100 芯片上相互连接

    TRICONEX MA2211 100 芯片上相互连接 TRICONEX MA2211 100 所有相同的组件 io的电源 处理器 和内存将需要 但是 你可以看到所有这些带存储器和处理器的OO板 针不能嵌入到一个小的单片机上 现在是 普拉克
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 如何在Altera Quartus中生成.rbf文件?

    什么是 rbf 文件以及如何在 Windows 上从 Quartus 输出文件 sof 生成它们 An RBF is a 原始二进制文件例如 它代表原始数据 这些数据将被加载到闪存中 以便在上电时初始化 FPGA A SOF is an S
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • FPGA大输入数据

    我正在尝试向 FPGA 发送 4 KB 字符串 最简单的方法是什么 是我正在使用的fpga的链接 我正在使用 Verilog 和 Quartus 您的问题的答案在很大程度上取决于将数据输入 FPGA 的内容 即使没有您需要遵守的特定协议 S
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的

随机推荐

  • Android6.0软件崩溃问题

    概述 targetSdkVersion是23 在Android 6 0上运行就会遇到crash的问题 因为Android 6 0在原有的AndroidManifest xml声明权限的基础上 增加了运行时的权限 无法在AndroidMani
  • ZBrush中Tool工具的保存

    ZBrush软件的界面及操作方法与其他的三维软件完全不同 很多初学者常常会觉得有些困难 接下来我们就讲解一下ZBrush 最为基础的操作 Tool工具的保存 首先要明白什么是Tool工具 我们创建的每一个模型 以及ZBrush可以调用的模型
  • Photoshop cc2019 破解教程

    Photoshop cc2019 破解教程 内含破解器 1 下载替换文件 Photoshop exe 链接如下 链接 https pan baidu com s 11XrnXWvGsnQ7YMbIMb49Lw 提取码 t9ol 2 打开Ph
  • Nginx 学习 一(安装)

    1 从官网现在nginx wget https nginx org download nginx 1 16 1 tar gz 解压 共有如下目录文件 2 让nginx 配置文件 vim 语法高亮 原先的 复制contrib 目录下文件到当前
  • windows Server 2008 R2服务器IIS环境启用TLS 1.2

    windows Server 2008 R2服务器IIS环境启用TLS 1 2 配置TLS1 2 分为2步 添加TLS配置和禁用老的SSL版本 提供两种方法 选择其中一种就行了 手动设置 打开注册表 运行regedit 找到 HKEY LO
  • kettle转换js实现MD5加密

    Script here js文件与转换文件保存路径一样LoadScriptFile getVariable Internal Transformation Filename Directory MD5 js var pass usernam
  • python【2】python3 的CSV数据规整化1

    最近分析一套数据 是csv格式的数据 必须是python分析数据比较顺手啊 于是研究一下csv模块 由于py的版本问题 3的资料中文的很少 所以记录一下 方便以后的学习 点击打开链接 上面的链接是python官网给的文档 英语好的建议看原版
  • 回归预测

    回归预测 MATLAB实现GRNN广义回归神经网络多输入多输出预测 目录 回归预测 MATLAB实现GRNN广义回归神经网络多输入多输出预测 预测效果 基本介绍 程序设计 往期精彩 参考资料 预测效果 基本介绍 MATLAB实现GRNN广义
  • 组合特征(三)tfidf(word+article+length)

    特征拼接 拼接文章长度 1 载入特征 2 读文章长度 3 特征缩放 拼接特征 import pickle 载入特征 with open tfidf word article pkl rb as f x train y train y tes
  • 【数字 IC】从底层重新认识 D 触发器、建立时间和保持时间

    目录 1 NMOS 和 PMOS 2 MOS 管搭建逻辑门 3 锁存器和触发器 3 1 交叉耦合反相器 3 2 SR 锁存器 3 3 D 锁存器 3 4 D 触发器 4 D 触发器的建立 保持时间 1 NMOS 和 PMOS MOSFET
  • 制作镜像

    2017 03 10 一直以来 都没有自己制作过景象 这次我得自己尝试下 https docs openstack org image guide virt install html 这里是官方的教程 2017 03 11 目前实验室制作镜
  • whistle代理配置帮助文档

    背景 Android开发需要与服务器调试API接口 whistle可以帮助配置代理的方式访问测试环境 并且联调抓包也非常方便 一 安装whistle 1 下载Node js 下载地址 https nodejs org en 下载完成后安装即
  • Servlet详解(二):request和response对象

    什么是request和response request对象是服务器对浏览器请求的封装 而response是服务器对服务器响应的封装 request用来取出请求信息 而response则用来添加要返回给浏览器的信息 使用response对象设
  • SpringBoot学习:整合shiro(验证码功能和登录次数限制功能)

    项目下载地址 http download csdn NET detail aqsunkai 9805821 一 验证码 首先login jsp里增加了获取验证码图片的标签 h1 style margin left 30px 登录页面 h1
  • SQLsever用户权限管理和数据库映射

    SQL Server2005中 用户映射 里成员身份选项的意思 用户映射 public 维护所有默认权限 db owner 执行所有数据库角色活动 db accessadmin 添加和删除数据库用户 组及角色 db ddladmin 添加
  • jQuery:mouseover and Increase the Size of an Image

  • mysql+中与当前时间比较大小_Mysql中时间加减和比较大小的方法

    在Oracle中使用时间函数to date习惯了 在Oracle中时间的加减也非常简单 直接加减即可 在Mysql中时间的函数很多 非常自由 在项目中经常用到的就是时间的加减 比如60天前 Oracle中直接就是sysdate 60 Mys
  • Acwing785. 快速排序

    Acwing785 快速排序 题目描述 代码展示 题目描述 代码展示 include
  • Golang 下划线语义

    丢弃返回值 err Test 用在变量接口断言 用来判断对象是否实现了接口 package main import fmt yangxd te var Foo Dog 如果没有实现 则 会编译失败 用来判断Dog 对象是否实现了Foo 接口
  • FPGA时序约束--基础理论篇

    FPGA开发过程中 离不开时序约束 那么时序约束是什么 简单点说 FPGA芯片中的逻辑电路 从输入到输出所需要的时间 这个时间必须在设定的时钟周期内完成 更详细一点 即需要满足建立和保持时间 时序约束可以让VIvado和Quartus等FP