当前位置: 首页 > news >正文

【FPGA】时序约束与分析

设计约束


设计约束所处环节:

约束输入

分析实现结果

设计优化

设计约束分类:

物理约束:I/O接口约束(例如引脚分配、电平标准设定等物理属性的约束)、布局约束、布线约束以及配置约束

时序约束:设计FPGA内部的各种逻辑或走线的延时,反映系统的频率和速度的约束

时序约束的目的:让FPGA编译工具合理地调配FPGA内部有限的布局布线资源,尽可能地满足设计者设定的所有时序要求(主要是将走线、逻辑电路等产生的延时限制在指定的范围内)

时序约束的定义

设计者根据实际的系统功能,通过时序约束的方式提出时序要求;FPGA编译工具根据设计者的时序要求,进行布局布线;编译完成后,FPGA编译工具还需要针对布局布线的结果,套用特定的时序模型(FPGA器件厂商能够使用这样的模型,对FPGA布局布线后的每一个逻辑电路和走线计算出延时信息),给出最终的时序分析和报告;设计者通过查看时序报告,确认布局布线后的时序结果是否满足设计要求

时序过约束和时序欠约束

没有任何设计约束的工程,编译器的工作就如同“脱缰的野马”般漫无目的且随意任性;

任何的时序过约束(over-constraining,时序约束过于严格,超过实际设计的要求)或时序欠约束(under-constraining,时序约束过于松散,低于实际设计的要求),都可能导致时序难以收敛(即难以达到设计要求)。因此,为了达到特定应用的设计要求,设计者必须设定合适的时序约束

设计约束实例

设计需求:din1<10ns , din2<10ns , din3<20ns , din4<20ns

没有时序约束的情况(可能满足,也可能不满足,不确定)

合理的时序约束

时序欠约束(din1和din2欠约束):din1<20ns , din2<20ns , din3<20ns , din4<20ns

din1或din2若被分配到>10ns的两条普通走线,则时序违规

时序过约束(din3和din4过约束):din1<10ns , din2<10ns , din3<10ns , din4<10ns

受到实际资源限制,时序报告总是时序违规(Fail)

基于Vivado的时序约束方法

时序约束基本步骤

.xdc   引脚分配

Edit Constraints Sets...

Make active

右键constrs_2,选择Add Sources...,add or create constraints

at7_pins  物理约束、引脚约束

at7_timing  时序约束

Vivado界面

SYNTHESIS

Run Synthesis

Constraints Wizard ,Define Target(存到哪个文件),再次点击Constraints Wizard,识别时钟,Frequency(MHz)可以设置,或使用默认

Edit Timing Constraints,Timing Constraints,Period(ns)时钟周期

切换xdc保存文件,右键要保存的文件,Set as Target Constraint File,此时该文件后面就会出现(target)

Vivado也提供xdc约束脚本模版:

PROJECT MANAGER

Setting

Language Templates

时钟与时钟偏差

时序逻辑:输出在时钟沿的触发下才能更新输入的变化

组合逻辑:无需时钟沿的触发,输出立刻更新输入的变化

主要差异:

组合逻辑的输出与输入直接相关,时序逻辑的输出和原有状态也有关

组合逻辑立即反应当前输入状态,时序逻辑还必须在时钟上升沿触发后输出新值

组合逻辑容易出现竞争、冒险现象(组合逻辑中,同一信号经不同的路径传输后,到达电路中的某一会合点的时间有先有后,这种现象称为逻辑竞争,而因此产生输出干扰脉冲的现象称为冒险),时序逻辑一般不会出现竞争、冒险现象

组合逻辑的时序较难保证,时序逻辑更容易达到时序收敛,时序逻辑更可控

组合逻辑只适合简单的电路,时序逻辑能够胜任大规模的逻辑电路

基本时钟模型

Tclk为一个时钟周期(单位:秒,FPGA的时钟周期一般为纳秒级别,即ns)

时钟的倒数1/Tclk即为时钟频率(单位:Hz,FPGA的时钟频率一般为MHz级别,1MHz=1,000,000Hz)

T1为高脉冲时间宽度,T2为低脉冲时间宽度,Tclk=T1+T2

时钟信号的高脉冲宽度与周期之比T1/Tclk即该时钟信号的占空比

时钟频率是FPGA设计性能一个很重要的指标,但是,单纯的时钟频率并不是衡量设计性能好坏的唯一指标。FPGA设计中,还有并行结构、流水线结构等体系架构方式也是设计性能的重要影响因素。

时钟偏差

无论是来自外部晶振的时钟信号,还是在FPGA内部经过PLL产生的时钟信号,它们的周期都无法保证绝对的精准,影响时钟周期准确性的因素有很多,比如材料、工艺、温度以及各种噪声等。这些对时钟周期的准确性产生的影响导致了时钟的偏差。

在FPGA内部集成的PLL,FPGA编译工具在做时序分析时可以直接套用既有模型给出的时钟的偏差参数,作为一部分需要预留的时序余量计算在内。而外部晶振所产生的时钟信号,设计者需要指定相关的时钟偏差参数,以时序约束的方式告知FPGA编译工具

时钟主要参数


时钟精度(Frequency tolerance)、时钟温漂(Frequency versus temperature characteristic)和时钟抖动(jitter)

以SiTime公司的SiT8021系列晶振规格书为例

精度Initial Tolerance  -15~+15  ppm(part per million百万分率或百万分之几)

100MHz也就是10ns,每个时钟周期会产生的时钟偏差为+-15*10的-6次方

抖动RMS Period Jitter 75~110ps   (1皮秒=1000,000纳秒,1万亿分之一秒,10的-12次方秒)

温漂Frequency Stability

时钟抖动

晶振源固有的噪声和干扰通常会带来时钟信号的周期性的偏差,称之为始终抖动(jjitter),其单位一般是ps

FPGA时序约束分析中,也会将时钟抖动作为时钟不确定性(uncertainty)的一部分加以约束

建立时间和保持时间

建立时间(Setup Time,Tsu),是指在时钟上升沿到来之前数据必须保持稳定的时间

保持时间(Hold Time,Th),是指在时钟上升沿到来以后得数据必须保持稳定的时间

一个数据需要在时钟的上升沿被锁存,那么这个数据就必须在这个时钟上升沿的建立时间和保持时间内保持稳定;换句话说,就是在这段时间内传输的数据不能发生任何的变化

建立时间违规

保持时间违规

时序分析中路径、沿和关系的定义

数据到达路径(data arrival path),是指数据在两个寄存器间传输的实际路径,由此路径可以算出数据在两个寄存器间传输的实际时间

数据需求路径(data require path),是指为了确保稳定、可靠且有效的传输(即满足相应的建立时间和保持时间要求),数据在两个寄存器间传输的理论所需时间的计算路径

时钟启动沿和锁存沿、建立时间关系和保持时间关系

时钟启动沿:传输到源寄存器的时钟沿

时钟锁存沿:传输到目的寄存器的时钟沿

建立时间关系:

当前数据从源寄存器的时钟启动沿,经过一定的延时,最终到达目的寄存器的时钟锁存沿,保证当前数据被锁存的建立时间得到满足

启动沿从时间上看就要比锁存早一个时钟周期,即他们之间通常是相差一个时钟周期的关系

保持时间关系:

当前数据从源寄存器的时钟启动沿,经过一定的延时,最终达到目的寄存器的时钟锁存沿,保证上一个数据的保持时间得到满足

启动沿和锁存沿所分别对应的时钟其实是同一个时钟周期由时钟源传输过来的时钟信号

寄存器到寄存器的时序路径分析

时钟共同路径

系统同步接口与源同步接口

系统同步接口

FPGA与外部芯片之间的通信时钟都由外部同一时钟源(系统时钟)产生时,我们称之为系统同步接口

源同步接口

FPGA与外部芯片之间的通信时钟都由源寄存器所在一侧(输出端)产生时,我们称之为源同步接口

相关文章:

【FPGA】时序约束与分析

设计约束 设计约束所处环节&#xff1a; 约束输入 分析实现结果 设计优化 设计约束分类&#xff1a; 物理约束&#xff1a;I/O接口约束&#xff08;例如引脚分配、电平标准设定等物理属性的约束&#xff09;、布局约束、布线约束以及配置约束 时序约束&#xff1a;设计FP…...

LLM的MoE由什么构成:门控网络,专家网络

LLM的MoE由什么构成:门控网络,专家网络 目录 LLM的MoE由什么构成:门控网络,专家网络专家网络门控网络MoE在联邦学习中的使用及原理专家网络 定义与特点:是一组独立的模型,每个模型都负责处理某个特定的子任务或学习输入空间的特定部分。这些专家可以是简单的线性回归模型…...

HTML-多媒体标签

除了图像&#xff0c;网页还可以放置视频和音频。 1.<video> <video>标签是一个块级元素&#xff0c;用于放置视频。如果浏览器支持加载的视频格式&#xff0c;就会显示一个播放器&#xff0c;否则显示<video>内部的子元素。 <video src"example.…...

MySQL笔记大总结20250108

Day2 1.where (1)关系运算符 select * from info where id>1; select * from info where id1; select * from info where id>1; select * from info where id!1;(2)逻辑运算符 select * from info where name"吴佩奇" and age19; select * from info wh…...

stm32week3

stm32学习 二.外设 8.TIM输出比较 OC(output compare)输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0、翻转操作&#xff0c;用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道 高级定时器的…...

uniapp 的uni.getRecorderManager() 录音功能小记

官网上明确说的是全局唯一并且只是获取对象&#xff0c;所以会导致一个问题就是&#xff0c;当你多个页面要用到这个对象的时候&#xff0c;会发现 onStop 方法会被覆盖&#xff0c;导致调用结果不是自己想要的 解决办法也简单粗暴&#xff0c;在需要用到的界面重新覆盖onStop…...

【面试题】技术场景 4、负责项目时遇到的棘手问题及解决方法

工作经验一年以上程序员必问问题 面试题概述 问题为在负责项目时遇到的棘手问题及解决方法&#xff0c;主要考察开发经验与技术水平&#xff0c;回答不佳会影响面试印象。提供四个回答方向&#xff0c;准备其中一个方向即可。 1、设计模式应用方向 以登录为例&#xff0c;未…...

RT-DETR代码详解(官方pytorch版)——参数配置(1)

前言 RT-DETR虽然是DETR系列&#xff0c;但是它的代码结构和之前的DETR系列代码不一样。 它是通过很多的yaml文件进行参数配置&#xff0c;和之前在train.py的parser argparse.ArgumentParser()去配置所有参数不同&#xff0c;所以刚开始不熟悉代码的时候可能不知道在哪儿修…...

腾讯云AI代码助手编程挑战赛-凯撒密码解码编码器

作品简介 在CTFer选手比赛做crypto的题目时&#xff0c;一些题目需要自己去解密&#xff0c;但是解密的工具大部分在线上&#xff0c;而在比赛过程中大部分又是无网环境&#xff0c;所以根据要求做了这个工具 技术架构 python语言的tk库来完成的GUI页面设计&#xff0c;通过…...

搭建docker私有化仓库Harbor

Docker私有仓库概述 Docker私有仓库介绍 Docker私有仓库是个人、组织或企业内部用于存储和管理Docker镜像的存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部…...

【Vim Masterclass 笔记09】S06L22:Vim 核心操作训练之 —— 文本的搜索、查找与替换操作(第一部分)

文章目录 S06L22 Search, Find, and Replace - Part One1 从光标位置起&#xff0c;正向定位到当前行的首个字符 b2 从光标位置起&#xff0c;反向查找某个字符3 重复上一次字符查找操作4 定位到目标字符的前一个字符5 单字符查找与 Vim 命令的组合6 跨行查找某字符串7 Vim 的增…...

GIC中断分组介绍(IMX6ull为例)

一、Cortex-A7内核中断 Cortex-A7内核具有多个中断类型&#xff0c;但其中最重要的是复位中断和IRQ&#xff08;普通中断请求&#xff09;中断。对于IMX6ULL而言&#xff0c;主要关注的是IRQ中断&#xff0c;因为外部设备和内部事件通常都会触发这类中断。 从左到右 中断控制…...

计算机网络期末复习(知识点)

概念题 在实际复习之前&#xff0c;可以看一下这个视频将网络知识串一下&#xff0c;以便更好地复习&#xff1a;【你管这破玩意叫网络&#xff1f;】 网络规模的分类 PAN&#xff08;个人区域网络&#xff09;&#xff1a;用于个人设备间的连接&#xff0c;如手机与蓝牙耳机…...

Apache XMLBeans 一个强大的 XML 数据处理框架

Apache XMLBeans 是一个用于处理 XML 数据的 Java 框架&#xff0c;它提供了一种方式将 XML Schema (XSD) 映射到 Java 类&#xff0c;从而使得开发者可以通过强类型化的 Java 对象来访问和操作 XML 文档。下面将以一个简单的案例说明如何使用 Apache XMLBeans 来解析、生成和验…...

飞凌嵌入式i.MX8M Mini核心板已支持Linux6.1

飞凌嵌入式FETMX8MM-C核心板现已支持Linux6.1系统&#xff0c;此次升级不仅使系统功能更加丰富&#xff0c;还通过全新BSP实现了内存性能的显著提升。 基于NXP i.MX8M Mini处理器设计开发的飞凌嵌入式FETMX8MM-C核心板&#xff0c;拥有4个Cortex-A53高性能核和1个Cortex-M4实时…...

【数据链电台】洛克希德·马丁(Lockheed Martin)

洛克希德马丁公司&#xff08;Lockheed Martin&#xff09;是全球领先的航空航天、国防、先进技术和安全领域的供应商之一。 公司为美军及盟国军队提供了广泛的通信系统&#xff0c;包括数据链电台和相关的通信系统。 洛克希德马丁的许多产品用于战术通信、卫星通信、电子战、…...

python关键字(保留字)用法、保留的标识符类(1)

python关键字(保留字)用法、保留的标识符类&#xff08;1&#xff09; 一、python保留字(关键字) 1.1、python关键字 以下标识符为保留字&#xff0c;或称 关键字&#xff0c;不可用于普通标识符&#xff0c;即我们不能把它们用作任何标识符名称。 python 保留字(关键字) 关键…...

Ubuntu平台虚拟机软件学习笔记

Ubuntu平台上常见虚拟机软件 VirtualBox [Download]KVM/QEMU 1. VirtualBox 1.1 查看安装版本 VBoxManage -V2. KVM/QEMU KVM: Kernel-based Virtual Machine QEMU: Quick EMUlator 通义千问&#xff1a; virt-manager 既不是QEMU也不是KVM&#xff0c;而是用于管理和创建…...

【数据库系统概论】数据库恢复技术

目录 11.1 事务的基本概念 事务的定义 事务的开始与结束 事务的ACID特性 破坏ACID特性的因素 11.2 数据库恢复概述 11.3 故障的种类 1. 事务内部的故障 2. 系统故障 3. 介质故障 4. 计算机病毒 11.4 恢复的实现技术 如何建立冗余数据 数据转储 登记日志文件 11…...

R 语言科研绘图 --- 折线图-汇总

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...