vivado实现分析与收敛技巧9-分析使用率统计数据

实现问题的常见原因之一是未考量显式和隐式物理约束。例如 管脚分配 (pinout) 在逻辑布局上变为显式物理约束。 slice( 分片 逻辑在大部分器件中都是一致的。但如下专用资源表示的是隐式物理约束 因为这些资源仅在某些位置可用, 并且会影响逻辑布局
I/O
• 千兆位收发器
DSP slice
• 块 RAM
• 时钟管理块 MMCM
• 时钟缓冲器 BUFG
在为设计的其余部分设计接口时 大量耗用这些专用资源的块可能必须围绕器件分散排列并采用物理约束布局布线。此 外, Pblock 为显式物理约束 用于为指定逻辑定义允许的布局区域。通过搭配使用以下方法来分析器件上的块资源使用率:
• 使用率报告
• 网表属性
Pblock 属性
将特定逻辑锁定到器件站点
您可将单元布局在 FPGA 上的特定位置 例如将所有 I/O 端口都布局在 AMD 7 系列 FPGA 设计上。 AMD 建议您在尝试时序收敛前完成 I/O 布局。I/O 布局可能影响 FPGA 互连结构中的单元布局。对互连结构中的其他单元进行手动布局有助于为时钟逻辑和宏布局提供一致性, 目的是提升实现运行的一致性。
固定单元和非固定单元
固定单元和非固定单元适用于已布局的单元。这两类单元用于描述 Vivado 工具查看设计中已布局的单元的方式。
对堆叠硅片互联 (SSI) 器件进行布局规划
对于堆叠硅片互联 (SSI) 器件 存在额外的注意事项。 SSI 器件是由多个以中介层相连的超级逻辑区域 (SLR) 组成的。中介层连接称为超长线路 (SLL) 。当跨 SLR 交汇时会发生延迟惩罚。构造设计、生成管脚分配和布局规划时, 请时刻留意 SLR 。将关键时序路径的逻辑单元保持在单一 SLR 从而最大限度减少 SLL 交汇。
I/O 必须与相关 I/O 接口电路布局在同一个 SLR 内。为 SSI 器件布局逻辑时 也必须仔细考量时钟布局。
判断保持修复对设计是否存在负面影响
Vivado Design Suite 布线器认为保持时间的修复优先级高于建立时间。这是因为实验室内的设计即使不满足建立时间, 只要差距较小则仍可能有效。并且始终可以选择降低时钟频率。但如果存在保持时间违例 则设计几乎不可能正常运行。
大部分情况下 布线器可在不影响建立时间的情况下满足保持时序要求。在某些情况下 主要由于设计或约束中存在的错误), 建立时间会受到显著影响。通常导致保持检查错误的原因主要是 set_multicycle_path 约束错误 未指定 -hold 。其他情况下 保持时间要求过高则是由时钟偏差过大而导致的。在此情况下 AMD 建议您复查此特定电路的时钟设置架构如果设计布局后可满足建立时序要求, 但布线后不满足建立时间 则可能出现此问题。为了修复保持时间违例 布线器
会添加布线绕行 使用 report_design_analysis 命令搭配 -show_all 选项即可查看由此所导致的路径延迟。下图显示的 report_design_analysis 报告示例中包含“ Hold Fix Detour 保持修复绕行 用于指示布线器由于保持时间修复而添加到时序路径中的延迟 (ps)
如果怀疑保持修复影响时序收敛 可使用以下任一方法来判断
方法 1 不含保持修复情况下的布线
方法 2 在失败的最差建立时间路径上运行 report_timing -min
方法 1 不含保持修复情况下的布线
1. 将布局后检查点读取到 Vivado Design Suite 中。
2. 添加约束以禁用所有保持检查
set_false_path -hold -to [all_clocks]
3. 请运行 route_design report_timing_summary
如果含保持时间检查的 WNS 与不含该检查的 WNS 之间存在明显差异 则表明保持违例可能过大 而建立路径正受到影响。
方法 2 在失败的最差建立时间路径上运行 report_timing -min
请复查该路径的保持时间以判定失败的最差建立时间路径是否是由于保持时间修复所导致的。在 Vivado IDE 右键单击并单击“Report Timing on Source to Destination 报告从源到目标的时序 。与执行建立时序分析相反 查看保持时序至关重要。获得保持时间报告后, 请验证要求 确保在路径上未添加额外延迟以满足保持时间要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言碎片知识

sizeof 1.sizeof是C语言中的一个操作符,同时也是关键字!!!! 2.sizeof的操作数可以是类型,变量或表达式 如图,第一个为什么是6?,因为先计算了3的大小,占4个字…

【模电】放大电路的组成原则

放大电路的组成原则 组成原则常用的两种共射放大电路 组成原则 通过对基本共射放大电路的简单分析可以总结出,在组成放大电路时必须遵循以下几个原则:    1. 必须根据所用放大管的类型提供直流电源,以便设置合适的静态工作点,并…

【unity3D】unity中如何查找和获取游戏物体

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity中游戏物体的查找与获取 这里写自定义目录标题 获取当前物体的基本属性查找其它物体- 通过名称查找其它物体- 通过标签查找- 通过类…

互联网Java工程师面试题·Spring Boot篇·第二弹

目录 8、什么是 YAML? 9、如何实现 Spring Boot 应用程序的安全性? 10、如何集成 Spring Boot 和 ActiveMQ? 11、如何使用 Spring Boot 实现分页和排序? 12、什么是 Swagger?你用 Spring Boot 实现了它吗? …

MySQL之时间戳(DateTime和TimeStamp)

MySQL之时间戳(DateTime和TimeStamp) 文章目录: MySQL之时间戳(DateTime和TimeStamp)一、DateTime类型二、TimeStamp类型三、DateTime和TimeStamp的区别 当插入数据时,需要自动记录一个时间时候&#xff0c…

【springboot】整合redis

1.前提条件:docker安装好了redis确定redis可以访问 可选软件: 2.测试代码 (1)redis依赖 org.springframework.boot spring-boot-starter-data-redis (2)配置redis (3) 注入 Resource StringRedisTemplate stringRedisTemplate; 对键进行操作 –o…

SCTransform normalization seurat

完成了前面的基础质控、过滤以及去除细胞周期的影响后,我们可以开始SCTransform normalization。 SCTransform normalization的优势: 1️⃣ 一个SCTransform函数即可替代NormalizeData, ScaleData, FindVariableFeatures三个函数;2️⃣ 对测序深度的校正…

[足式机器人]Part2 Dr. CAN学习笔记-Ch0-1矩阵的导数运算

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-Ch0-1矩阵的导数运算 1. 标量向量方程对向量求导,分母布局,分子布局1.1 标量方程对向量的导数1.2 向量方程对向量的导数 2. 案例分析,线性回归3. 矩阵求导的链…

DCDC电源的选择

https://blog.csdn.net/xiahailong90/article/details/79086490 先说结论: 高开关频率的交换式电源转换器有利也有弊,本文提到的好处包括体积更小、瞬时响应更快以及电压overshoot 和undershoot 值都更小,主要缺点则是效率降低和热量增加。 …

STK Components 二次开发-飞行器

1.创建飞机 参数帮助文档 var poitList GetTracksData(); var waypointPropagator new WaypointPropagator(m_earth, poitList); var locationPoint waypointPropagator.CreatePoint();m_aircraft new Platform {Name "MH730",LocationPoint locationPoint,Or…

独立版求职招聘平台小程序开发

小程序招聘系统开发 我们开发了一款高效、便捷的互联网招聘平台。在这里,可以轻松实现企业入驻、职位发布、在线求职、精准匹配职位和人才,以及参与招聘会等功能。目标是为求职者和企业搭建一个连接彼此的桥梁,帮助您更快地找到满意的工作&…

基于Go语言实现简易Web应用

目录 前言Go语言特点写在使用Go语言实现Web应用前面创建Web服务器声明一个结构体操作加入中间件的使用使用静态文件服务器最后 前言 在编程语言中,近几年问世的几个新语言都是非常不错的,比如Go、Python、 Rust等等。其中,Go语言(Golang)作…

线程池、及Springboot线程池实践

摘要 本文介绍了线程池基本概念、线程及线程池状态、java中线程池提交task后执行流程、Executors线程池工具类、最后介绍在springboot框架下使用线程池和定时线程池,以及task取消 线程池基本 背景 线程池 线程池是一种多线程处理形式,处理过程中将任务…

探索人工智能领域——每日20个名词详解【day8】

目录 前言 正文 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以…

使用UART和USART在STM32上进行双向通信

在本文中,我们将深入了解如何在STM32上使用UART(通用异步收发传输器)和USART(通用同步异步收发传输器)实现双向通信。UART和USART是常见的串口通信协议,通常用于与其他设备进行数据传输。我们将重点介绍如何…

01_W5500简介

目录 W5500简介: 芯片特点: 全硬件TCPIP协议栈: 引脚分布: W5500简介: W5500是一款高性价比的以太网芯片,其全球独一无二的全硬件TCPIP协议栈专利技术,解决了嵌入式以太网的接入问题,简单易用&#xff…

redis 安装在liunx安装和常用文件配置

文章目录 安装配置文件设置测试启动服务连接服务 安装 1.官网下载压缩包: https://redis.io/download/ 2.将压缩包上传到Linux环境中 解压: tar -xvf redis-xxxxx 3.liunx 需要c的环境 yum -y install gcc-c4.进入redis文件夹 make && make install5.推荐不是必须…

CPP-SCNUOJ-Problem P24. [算法课贪心] 跳跃游戏

Problem P24. [算法课贪心] 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标。 输入 输入一行数组nums 输出 输出true/fasle 样例 标准输入 2 3 1 …

spring cloud 整合Feign经行远程调用

文章目录 Feign远程调用Feign替代RestTemplate1)引入依赖2)添加注解3)编写Feign的客户端4)测试5)总结 自定义配置配置文件方式Java代码方式 Feign使用优化 Feign远程调用 先来看我们以前利用RestTemplate发起远程调用…

GORM 多对多many2many 自定义连接表

文章目录 多对多 many2many表结构搭建多对多添加多对多查询多对多的删除、更新 自定义连接表生成表结构操作案例添加文章并添加标签,并自动关联添加文章,关联已有标签给已有文章关联标签替换已有文章的标签查询文章列表,显示标签 自定义连接…