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

FPGA时序约束与分析 --- 时序约束概述

本系列参考文献 — FPGA时序与约束分析-吴厚航

FPGA从综合到实现需要的过程如下:synth_design -> opt_design -> place-design -> phys_opt_design -> route_design

1、时序约束的理解
2、时序约束的基本路径
3、时序约束的步骤
4、时序约束的主要方法
5、查看相关时序信息

1、时序约束的理解

FPGA的设计约束分为物理约束和时序约束:

  • 物理约束主要包括 I/O 接口约束,布局约束,布线约束以及配置约束。其中 I/O 接口约束主要为引脚分配、电平标准设定等物理属性的约束。
  • 时序约束是涉及FPGA内部的各种逻辑或走线的延时,反应系统的频率和速度的约束。

FPGA实现时序约束与分析的流程可以定义为:

  1. 提出时序要求:设计者根据实际的系统功能,通过时序约束的方式提出时序要求;
  2. 根据要求布线:FPGA编译工具根据设计者的时序要求,进行布局布线;
  3. 给出时序报告:编译完成后,FPGA编译工具针对布局布线的结果,套用特定的时序模型给出最终的时序分析和报告。
  4. 根据报告修改时序设计:设计者通过查看时需报告,确定布局布线后的时序结果是否满足者及要求。

时序约束中的欠约束和过约束:

  • 欠约束:约束的过松,约束要求比实际要求低;
  • 过约束:约束的过紧,约束要求比实际要求高。

2、时序约束的基本路径

时序约束所覆盖的时序路径主要有一下4类:

  1. reg2reg,FPGA内部寄存器之间的时序路径;
  2. pin2reg,输入引脚到FPGA内部寄存器的时序路径;
  3. reg2pin,FPGA内部寄存器到输出引脚的时序路径;
  4. pin2pin,输入引脚到输出引脚之间的时序路径(不通过寄存器)。
    在这里插入图片描述

3、时序约束的步骤

时序约束通常分为4个主要步骤:时钟约束 —> 输入/输出接口约束 —> 时钟分组和跨时钟约束 —> 时序例外约束。在这里插入图片描述

4、时序约束的主要方法

注意: 时序约束辅助工具或者相关的TCL命令,都必须在 open synthesis design / open implemention design 后才能有效运行。

(1)、GUI

  时序约束编辑器: 可以按照左边的Clocks分组添加时钟约束,需要自己搜索要添加的时钟。
在这里插入图片描述

在这里插入图片描述

  时序约束向导: 按照 primary clocks/generated clocks等时钟顺序一页一页显示添加约束,会显示当前需要添加约束的部分时钟(只显示get_port,pins和nets不显示)以及已经约束的时钟。
在这里插入图片描述

(2)、手动输入约束

在.xdc文件中进行编辑。在 vivado 的 Language Templates 中,有基本语法模板。

5、查看相关时序信息

(1)识别设计时钟
  查看所有时钟:report_clock_networks(TCL),打印已约束和未约束的所有时钟。
  时序确认报告: check_timing(TCL),打印工程基本信息以及12条check timming。这12条报告中,可以确认当前工程的时序约束状态,明确有多少路径目前没有被约束。
(2)查看时钟信息:
  查看已约束时钟的详细信息: report_clocks(TCL)打印包含时钟周期在内的的所有时钟信息。
  查看是否有 unsafe 时钟:report_clock_interaction(TCL) 或 Implentation- Report Clock Interaction(推荐)。
  查看时序约束状态:report_timing_summary (TCL)或者 Implentation- report timing summary (推荐)或者直接 open implemented design ,查看 Timing 窗口,主要查看WNS、TNS、WHS、THS、WPWS、TPWS这6个参数,参数具体含义及标红报错修改方法见后续文章。

相关文章:

FPGA时序约束与分析 --- 时序约束概述

本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下:synth_design -> opt_design -> place-design -> phys_opt_design -> route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法…...

2022——寒假总结

文章目录背景报名摸索结果总结背景 大一上学期,刚上大学没有尽快适应,什么都没有学到。 因为疫情,所以平时的测试以及期末都是线上进行的,就没怎么认真学,网课直接划水。 我的生活与学习很不平衡,还热衷于参…...

C++11 Lambda表达式

文章首发公众号:iDoitnow 为什么引入Lambda Lambda表达式是一个可以内联在我们代码中的函数,我们可以将他传递给另外一个函数。在没有引入Lambda表达式之前,当我们遇到需要对多个数据,按照同一规则进行操作的时候,创建…...

冰湖灾害遥感监测评价与模拟分析

查看原文>>>mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247582638&idx1&sna22a1697b16a5edc2b74cb1ccf011689&chksm9be29cbeac9515a8227460103ae1b9f280af688eab0ce5a43448f9fa7c9cab820c389fcdc031&token10630879&langzh_CN#rd【专家简介…...

Highcharts.Chart

Highcharts 是一个使用javascript 脚本来生成图表的工具,和jfreechart 作用类似,都用来生成各种图表,并支持图片的导出和打印。 从官网 www.highcharts.com 上下载的压缩表中的example中有各种图表的例子。 要编写生成图表的例子建议从 文…...

遍历map的几种方法

#先往map加入几个数据 Map<Integer,String> mapnew HashMap<>(); map.put(1,"美好的周一"); map.put(2,"美好的周二"); map.put(3,"美好的周三"); 1 2 3 4 方法一&#xff1a;普通的foreach循环&#xff0c…...

RocketMQ源码分析之Broker概述与同步消息发送原理与高可用设计及思考

1、Broker概述 Broker 在 RocketMQ 架构中的角色&#xff0c;就是存储消息&#xff0c;核心任务就是持久化消息&#xff0c;生产者发送消息给 Broker,消费者从 Broker 消费消息&#xff0c;其物理部署架构图如下&#xff1a; 备注&#xff1a;以上摘录自官方 RocketMQ 设计文档…...

K8s常见面试题总结

部分内容来自&#xff1a;k8s面试题大全&#xff08;持续更新中&#xff09; 目录 k8s常考面试题 1.1.什么是k8s&#xff1f; 1.2.简述Docker和Kubernetes的关系 1.3.k8s的组件有哪些&#xff0c;作用分别是什么&#xff1f; 1.4.简述kubelet的功能和作用 1.5.简述pod是…...

OpenFeign 自定义解码器Decoder 失效

问题描述 项目上开发了OpenFeign的自定义解码器&#xff0c;用来统一处理返回结果。 开发完后测试已经生效了&#xff0c;过两天后&#xff0c;这块代码没有变动的情况下&#xff0c;发现请求结果突然又不走自定义的解码器了。 代码如下 解码器 BaseResponseFeignDecoder …...

c++练习题8

1&#xff0e;在do-while循环中&#xff0c;循环由do开始&#xff0c;用while结束&#xff1b;必须注意的是&#xff1a;在while表达式后面的 不能丢&#xff0c;它表示do-while语句的结束。 A&#xff09;0 B&#xff09;1 C&#xff09;&#xff1b;…...

Python循环语句代码详解:while、for、break

目录 1 while循环 1 while循环 循环语句是程序设计中常用的语句之一。任何编程语言都有while循环&#xff0c;Python也不例外。while循环的格式如下所示。 while(表达式): … else: … while循环的执行过程&#xff1a;当循环表达式为真时&#xff0c;依次执行whi…...

vue父子组件传值不能实时更新

最近做项目&#xff0c;遇到个大坑&#xff0c;这会爬出来了&#xff0c;写个总结&#xff0c;避免下次掉坑。 vue父子组件传值不能实时更新问题&#xff0c;父组件将值传给了子组件&#xff0c;但子组件显示的值还是原来的初始值&#xff0c;并没有实时更新&#xff0c;为什么…...

2023美赛A题思路数据代码分享

文章目录赛题思路2023年美国大学生数学建模竞赛选题&论文一、关于选题二、关于论文格式三、关于论文提交四、论文提交流程注意不要手滑美赛A题思路数据代码【最新】赛题思路 (赛题出来以后第一时间在CSDN分享) 最新进度在文章最下方卡片&#xff0c;加入获取一手资源 202…...

【蓝桥杯集训·每日一题】AcWing 3768. 字符串删减

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴双指针一、题目 1、原题链接 3768. 字符串删减 2、题目描述 给定一个由 n 个小写字母构成的字符串。 现在&#xff0c;需要删掉其中的一些字母&#xff0c;使得字符串中不…...

Python|每日一练|树|深度优先搜索|数组|二分查找|链表|双指针|单选记录:填充每个节点的下一个右侧节点指针|搜索插入位置|旋转链表

1、填充每个节点的下一个右侧节点指针&#xff08;树&#xff0c;深度优先搜索&#xff09; 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node { int val; Node *left; Node *rig…...

降雨量实时监测系统压电式雨量计

压电式雨量传感器由上盖、外壳和下盖组成&#xff0c;壳体内部有压电片和电路板&#xff0c;可以固定在外径50mm立柱上和气象站横杆上。传感器采用冲击测量原理对单个雨滴重量进行测算&#xff0c;进而计算降雨量。雨滴在降落过程中受到雨滴重量和空气阻力的作用&#xff0c;到…...

滑动相关的原理以及用滤波器实现滑动相关(匹配滤波器捕获DMF)

目录滑动相关匹配滤波器捕获&#xff08;DMF&#xff09;滑动相关 滑动相关属于一种时域捕获方法&#xff0c;其具体原理是是通过本地序列与接收信号在固定窗长内滑动累加得到相关结果。 一般滑动相关算法可以用于对自相关性非常好的伪码进行同步判决。 我们首先生成一组自相关…...

计算机网络笔记(三)—— 数据链路层

数据链路层概述 数据链路层以帧为单位传输数据。 封装成帧&#xff1a;给网络层提供的协议数据单元添加帧头帧尾 差错检测&#xff1a;检错码封装在帧尾 可靠传输&#xff1a;尽管误码不能避免&#xff0c;但如果可以实现发送什么就接受什么&#xff0c;就叫可靠传输 封装成…...

【日常】矩阵正态分布参数检验问题

最近给凯爹做的一个苦力活&#xff0c;统计检验这个东西说实话也挺有趣&#xff0c;跟算法设计一样&#xff0c;好的检验真的是挺难设计的&#xff0c;就有近似算法的那种感觉&#xff0c;检验很难保证size和power都很理想&#xff0c;所以就要做tradeoff&#xff0c;感觉这个假…...

QML矩形(Rectangle)

Rectangle 用于绘制矩形 常见的属性&#xff1a; 填充颜色&#xff1a;纯色&#xff1a;color 渐变 &#xff1a;Gradient类 渐变的优先级大于纯色Gradient&#xff08;渐变色&#xff09;&#xff1a; 渐变由多种颜色定义&#xff0c;这些颜色将无缝混合&#xff0c…...

从‘盲猜’到‘先知’:深度解读神经RRT*如何让采样规划拥有‘大局观’

神经RRT*&#xff1a;当路径规划算法学会"思考"的范式革命 在自动驾驶汽车寻找最短路径、无人机规划避障航线的场景中&#xff0c;传统RRT算法就像一位盲人摸象的探险者——它通过随机撒点的方式探索环境&#xff0c;虽然最终能找到出路&#xff0c;却需要耗费大量时…...

GIFT高级技巧:图像组合、并行处理和性能优化的终极指南

GIFT高级技巧&#xff1a;图像组合、并行处理和性能优化的终极指南 【免费下载链接】gift Go Image Filtering Toolkit 项目地址: https://gitcode.com/gh_mirrors/gi/gift GIFT&#xff08;Go Image Filtering Toolkit&#xff09;是一个强大的Go语言图像处理库&#x…...

如何3分钟免费让GitHub界面变成中文?终极汉化指南

如何3分钟免费让GitHub界面变成中文&#xff1f;终极汉化指南 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub的英文界面…...

CANN/asc-devkit SIMD向量长度获取函数

GetVecLen 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/…...

CXPatcher:让Mac上的CrossOver性能飞升的终极指南

CXPatcher&#xff1a;让Mac上的CrossOver性能飞升的终极指南 【免费下载链接】CXPatcher A patcher to upgrade Crossover dependencies and improve compatibility 项目地址: https://gitcode.com/gh_mirrors/cx/CXPatcher 你是否曾经在Mac上尝试运行Windows游戏时感到…...

MaterialSkin 2.0终极指南:3步解锁现代化WinForms界面设计

MaterialSkin 2.0终极指南&#xff1a;3步解锁现代化WinForms界面设计 【免费下载链接】MaterialSkin Theming .NET WinForms, C# or VB.Net, to Googles Material Design Principles. 项目地址: https://gitcode.com/gh_mirrors/mat/MaterialSkin 还在为传统WinForms应…...

【Perplexity知识图谱查询实战指南】:20年专家亲授3大隐性陷阱与5步精准检索法

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity知识图谱查询的核心原理与能力边界 Perplexity 知识图谱查询并非传统关键词匹配&#xff0c;而是基于语义解析的多跳推理引擎。其核心依赖于三元组嵌入&#xff08;Triple Embedding&#xff09;与…...

独立开发者如何借助 Taotoken 以更低成本试验不同大模型效果

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助 Taotoken 以更低成本试验不同大模型效果 对于独立开发者或小微创业团队而言&#xff0c;在产品原型或功能验证…...

终极指南:如何免费搭建专业的电子实验室笔记本系统

终极指南&#xff1a;如何免费搭建专业的电子实验室笔记本系统 【免费下载链接】elabftw :notebook: eLabFTW is the most popular open source electronic lab notebook for research labs. 项目地址: https://gitcode.com/gh_mirrors/el/elabftw eLabFTW是一款功能强大…...

从STM32转战合泰HT32F52352:手把手教你用GPTM定时器搞定四路舵机PWM控制

从STM32到HT32F52352的平滑迁移&#xff1a;GPTM定时器实现四路舵机PWM控制实战 对于习惯了STM32生态的开发者而言&#xff0c;初次接触合泰HT32系列MCU时往往面临两个挑战&#xff1a;如何快速理解新芯片的架构设计&#xff0c;以及如何将已有的STM32开发经验有效迁移。HT32F…...