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 报告从源到目标的时序 。与执行建立时序分析相反 查看保持时序至关重要。获得保持时间报告后, 请验证要求 确保在路径上未添加额外延迟以满足保持时间要求。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React创建项目

React创建项目 提前安装好nodejs再进行下面的操作,通过node -v验证是否安装 1.设置源地址 npm config set registry https://registry.npmmirror.com/2.确认源地址 npm config get registry返回如下 https://registry.npmmirror.com/3.输入命令 npx create-re…

SQL手工注入漏洞测试(PostgreSQL数据库)-墨者

———靶场专栏——— 声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。 靶场背景: 来源: 墨者学院 简介: 安全工程师"墨者"最近在练习SQL手工注入漏洞&#…

如何使用gdb调试fork程序

代码示例 #include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<stdlib.h> #include<sys/wait.h>int main(int argc, const char* argv[]) {pid_t pid -1;int status 0;int ret -1; // 创建子进程。若创建成功&#xff0c;…

使用ES6 async awai t进行异步处理

我们往往在项目中会遇到这样的业务需求&#xff0c;就是首先先进行一个ajax请求&#xff0c;然后再进行下一个ajax请求&#xff0c;而下一个请求需要使用上一个请求得到的数据&#xff0c;请求少了还好说&#xff0c;如果多了&#xff0c;就要一层一层的嵌套&#xff0c;就好像…

Typora免费版安装教程(仅供学习)

目录 一、Typora简介二、Typora安装三、Typora补丁四、Typora使用体验五、总结 一、Typora简介 Typora是一款非常流行的Markdown编辑器&#xff0c;它能够将Markdown文本转化为漂亮的排版&#xff0c;并且支持实时预览。Typora具有简单易用的界面&#xff0c;使得用户可以轻松地…

12.04

#include <iostream>using namespace std;class Sofa { private:string sitting;double *weight; public:Sofa(){cout << "Sofa::无参构造函数" << endl;}Sofa(string s,double w):sitting(s),weight(new double(w)){cout << "Sofa::有…

docker搭建xxl-job

使用docker-compose创建并运行xxl-job 查看、下载镜像 docker search xxl-job # 结果&#xff0c;自己指定版本 xuxueli/xxl-job-admin:2.3.1创建文件夹 /usr/local/software/xxl-job/logs编排docker-compose文件 version: 2 networks:wn_docker_net:external: true servic…

Harmony Ble蓝牙App(三)特性和属性

Ble蓝牙App&#xff08;三&#xff09;特性使用 前言正文一、获取属性列表二、属性提供者三、获取特性名称四、特性提供者五、加载特性六、源码 前言 在上一篇中我们完成了连接和发现服务两个动作&#xff0c;那么再发现服务之后要做什么呢&#xff1f;发现服务只是让你知道设备…

汽车电子 -- 毫米波雷达

参看&#xff1a;自动驾驶感知——毫米波雷达 一、雷达分类 按信号形式&#xff1a;脉冲体制、连续波体制等按测量参数&#xff1a;测速雷达、成像雷达等按扫描方式&#xff1a;机械扫描、电子扫描&#xff08;数字波束形成、相控阵&#xff09;等按工作方式&#xff1a;多普…

容器与集群——通过deployment 创建pod以及Java Web应用的容器化发布

## 一、通过deployment 创建pod 1.1 编写yaml文件 1.2 安装pod 创建kubectl create -f dp-nginx.yaml 查看Deployment信息 1.3 查看相关信息 查看pod信息kubecel get pods 查看rs信息 二、Java Web应用的容器化发布 1. 环境准备 部署K8s集群并启动。 为了与其他pod…

Educational Codeforces Round 159 (Rated for Div. 2)(B 二分贪心 Cgcd D二分+前缀和 E字典树)

A - Binary Imbalance 有只要在01之间插入就能制造无限个0&#xff0c;没有0就统计0 1个数即可 #include<bits/stdc.h> using namespace std; const int N 110010,mod998244353; #define int long long typedef long long LL; typedef pair<int, int> PII; const…

阿里内部自动化测试教程:python+pytest接口自动化-HTTP协议基础

HTTP协议简介 HTTP 即 HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09;&#xff0c;是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。 设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。HTTP 协议在 OSI 模型…

Java中线程池相关的七个参数

在Java中&#xff0c;线程池的七个参数是指线程池的相关配置参数&#xff0c;用来控制线程池的行为和性能。这些参数包括&#xff1a; 1. 核心线程数&#xff08;corePoolSize&#xff09;&#xff1a;线程池中保持的最小线程数&#xff0c;即使线程处于空闲状态&#xff0c;也…

Kubernetes学习笔记-Part.07 Harbor搭建

目录 Part.01 Kubernets与docker Part.02 Docker版本 Part.03 Kubernetes原理 Part.04 资源规划 Part.05 基础环境准备 Part.06 Docker安装 Part.07 Harbor搭建 Part.08 K8s环境安装 Part.09 K8s集群构建 Part.10 容器回退 第七章 Harbor搭建 Docker-Compose是用来管理容器的…

Python+OpenCV实现最强自动扫雷

文章目录 准备实现思路窗体截取雷块分割雷块识别扫雷算法实现关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 用…

Linux 基本语句_14_信号灯实验

原理&#xff1a; Send进程通过建立共享内存区域&#xff0c;并向其中写入数据&#xff0c;Recive通过与共享内存连接读取其中的数据。 但是如果进程进行读取操作的时候其他进程再次写入会产生数据丢失&#xff0c;产生竞态&#xff0c;为了确保在某段时间内只有一个操作&…

用python写一个简单的爬虫

爬虫是一种自动化程序&#xff0c;用于从互联网上获取数据。它能够模拟人类浏览网页的行为&#xff0c;访问网页并提取所需的信息。爬虫在很多领域都有广泛的应用&#xff0c;例如数据采集、信息监控、搜索引擎索引等。 下面是一个使用Python编写的简单爬虫示例&#xff1a; …

新手零基础学习彩铅画,彩铅快速入门教程合集

一、教程描述 画画是很美好的一件事情&#xff0c;你可以把你想到的&#xff0c;或者看到的都画下来&#xff0c;照相机可以拍下任何你看到的&#xff0c;但是你想到的任何事物&#xff0c;只能通过绘画的方式来表达。本套教程是非常不错的&#xff0c;彩铅的小视频教程&#…

[Mac软件]HitPaw Video Converter 功能强大的视频格式转换编辑软件激活版

软件介绍&#xff1a; 以令人难以置信的速度将无损视频和音乐转换为1000多种格式&#xff1a;MP4、MOV、AVI、VOB、MKV等。不仅适用于普通编解码器&#xff0c;也适用于高级VP9、ProRes和Opus编码器。这解决了您不支持格式的所有问题&#xff0c;并允许您在任何平台和设备上播…

仅 CSS 阅读进度条

为了构建一个阅读进度条&#xff0c;即显示用户向下滚动时阅读文章的进度&#xff0c;很难不考虑 JavaScript。但是&#xff0c;事实证明&#xff0c;您也可以使用纯 CSS 构建阅读进度条。 从本质上讲&#xff0c;一个名为 animation-timeline 的新实验性 CSS 属性可以让你指定…