vivado实现分析与收敛技巧7-布局规划

关于布局规划
布局规划有助于设计满足时序要求。当设计难以始终如一满足时序要求或者从未满足时序要求时 AMD 建议您执行布局规划。如果您与设计团队协作并且协作过程中一致性至关重要, 那么布局规划同样可以发挥作用。布局规划可通过减少平均布线延迟来改进建立时间裕量( TNS WNS 。在实现期间 时序引擎致力于解决最差情况建立时间违例和所有保持时间违例。布局规划只能改进建立时间裕量。当网表采用层级结构时, 手动布局规划最为简单。如果综合将整个网表平铺 那么设计分析会明显变慢。请将综合设置为生成层级网表。对于 Vivado 综合 请使用
synth_design -flatten_hierarchy rebuilt
Vivado 综合默认策略
含交错逻辑路径的大型层级块可能分析难度较大。在较低的次级层级中采用独立逻辑结构的设计更便于分析。最好寄存层级模块的所有输出。走线穿过多个层级块的路径布局分析难度较大。
了解布局规划基础知识
并非每项设计都能始终满足时序。您可能需要为工具提供解决方案指南。布局规划支持您引导工具完成高层次层级布局或详细门电路布局。
您将通过修复最严重的问题或者最常见的问题来最大程度改进结果。例如 如果存在离群路径并且这些路径的裕量明显极差或者具有高层次的逻辑, 那么首先需修复这些路径。“ Reports ” → “ Timing ” → “ Create Slack Histogram ”(报告 > 时序 > 创建裕量直方图 命令可以提供离群路径视图。或者 如果在多个负时序裕量路径中出现相同的时序端点, 那么改善其中一条路径可能可为该端点上其他路径实现相同的改善效果。可考虑利用布局规划通过减少布线延迟或者增加非关键块上的逻辑密度来提高性能。逻辑密度是对应芯片上的逻辑封装紧密程度的指标。
布局规划可帮助您满足更高的时钟频率要求并提升结果的一致性。有多种方法适用于布局规划 每种方法都各有优缺点。
详细的门级布局规划
详细的门级布局规划涉及在器件上的特定 site 站点 内对个别叶节点单元进行布局。
详细的门级布局规划的优势
• 详细的门级布局规划适用于手动布线的信号线。
• 详细的门级布局规划可以最大限度发挥器件性能。
详细的门级布局规划的劣势
• 详细的门级布局规划较为耗时。
• 详细的门级布局规划需要具备有关器件和设计的广泛知识。
• 如果网表发生变更 详细的门级布局规划可能需重做。
建议 请将门级布局规划作为最终手段来使用。
信息复用
复用来自满足时序的设计的信息。如果设计无法始终如一满足时序 请使用此流程。要复用信息 请执行以下操作
1. 打开 2 个实现运行
a. 1 个对应满足时序的运行。
b. 1 个对应不满足时序的运行。
2. 查看 2 项设计之间的区别。
a. 通过 report_timing_summary 识别部分失败的时序路径。
b. 在满足时序的设计上 min_max 模式运行 report_timing 这样即可对满足时序的设计上的路径进行定时。
3. 比较时序结果
a. 时钟偏差
b. 数据路径延迟
c. 布局
d. 布线延迟
4. 如果路径端点之间的逻辑延迟量存在差异 请重新执行综合运行。
复查 I/O 和单元布局
复查设计中的单元布局。比较 2 I/O 报告 以复查 I/O 布局和 I/O 标准。确保所有 I/O 均已完成布局。通过简单搜索可以发现不含固定布局的所有 I/O 如下图所示。
如果不同运行间的时钟偏差发生改变 请考虑复用来自满足时序的运行的时钟原语布局。“ Clock Utilization 时钟使用率) 报告可列出时钟树驱动程序的布局 如下图所示。
LOC 约束可轻松复制到 XDC 约束文件中。
许多设计都已通过复用块 RAM DSP 布局来满足时序。请选择“ Edit > Find 编辑 > 查找 以列出实例。
添加布局约束
固定逻辑以便向 XDC 添加布局约束。
1. 从查找结果中选择宏。
2. 右键单击并选中“ Fix Cells 固定单元 ), 如下图所示。
复用布局
I/O 、全局时钟资源、块 RAM 宏和 DSP 宏布局十分便于复用。复用此布局有助于减少各网表版本之间的结果差异。这些原语通常具有稳定的名称。布局通常易于维护。
对增量编译复用布局
增量编译支持复用来自上一次运行的布局布线数据。只需在 place_design 前引用现有已布局或已布线的 DSP 即可完成复用设置。可复用完整设计、任一层级或单元类型( DSP 或块 RAM 。增量编译还可自动处理对设计某些部分执行的更改。

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

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

相关文章

锁表的原因及解决办法

引言 作为开发人员,我们经常会和数据库打交道。 当我们对数据库进行修改操作的时候,例如添加字段,更新记录等,没有正确评估该表在这一时刻的使用频率,直接进行修改,致使修改操作长时间无法响应&#xff0…

Spring Boot Actuator 2.2.5 基本使用

1. pom文件 &#xff0c;添加 Actuator 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2.application.properties 文件中添加以下配置 …

自动驾驶学习笔记(十三)——感知基础

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 传感器 测距原理 坐标系 标定 同…

基于Java SSM框架+Vue实现企业公寓后勤管理系统项目【项目源码+论文说明】

基于java的SSM框架Vue实现企业宿舍后勤管理网站演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所…

Linux系统-----进程通讯

前言 本期我们来学习进程间的通讯&#xff0c;不同进程之间是可以去通过信号来去实现通讯交流的&#xff0c;下面我们就一起来看看多进程之间的通讯方式。 一、信号机制 1、信号的基本概念 每个信号都对应一个正整数常量(称为signal number,即信号编号。定义在系统头文件<…

Google Chrome访问出现 NET::ERR_CERT_INVALID

Google Chrome访问出现 NET::ERR_CERT_INVALID然后访问不了当前网站&#xff0c;这个是由于证书失效了&#xff0c;临时解决方式是&#xff1a; 第一种方案&#xff1a; 在Chrome提示“您的连接不是私密连接”页面的空白区域点击一下&#xff0c;然后输入“thisisunsafe”(页…

PHP开源问答网站平台源码系统 源码全部开源可二次开发 附带完整的搭建教程

目前&#xff0c;问答网站已经成为人们获取知识、交流思想的重要平台。然而&#xff0c;对于许多开发者来说&#xff0c;从头开始构建一个问答网站可能会面临各种挑战。今天&#xff0c;小编给大家介绍一款基于PHP的开源问答网站平台源码系统&#xff0c;它不仅源码全部开源&am…

基于Java SSM框架+Vue实现教学视频点播网站项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现教学视频点播网站演示 摘要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多学院的之中&#xff0c;随之就产生了“视频点播系统”&#xff0c;这样就让视频点播系统更加方便简单。 对于…

基于hadoop下的Kafka分布式安装

简介 Kafka是一种分布式流处理平台&#xff0c;它具有高吞吐量、可扩展性、可靠性、实时性和灵活性等优点。它能够支持每秒数百万条消息的传输&#xff0c;并且可以通过增加节点来增加吞吐量和存储容量。Kafka通过将数据复制到多个节点来实现数据冗余和高可用性&#xff0c;即使…

Difference between getc(), getchar(), and gets()

getc(): 从输入中只能读单个字符 getchar()&#xff1a;从标准输入流中输入都单个字符。 两者基本等同&#xff0c;唯一不一样的是getc()是任何输入流&#xff0c;而getchar()是标准输入流。 gets:可以读入含有空格的字符串 // Example for getc() in C #include <stdio.h…

uniapp-从后台返回的一串地址信息上,提取省市区进行赋值

1.这是接口返回的地址信息 2.要实现的效果 3.实现代码&#xff1a; <view class"address">{{item.address}}</view>listFun() {let url this.$url.url.positionInfoCompany;let param {page: this.page,limit: this.limit,keyword: this.keyword,};thi…

6-13连接两个字符串

#include<stdio.h> int main(){int i0,j0;char s1[222],s2[333];printf("请输入第一个字符串&#xff1a;\n");gets(s1);//scanf("%s",s1);printf("请输入第二个字符串&#xff1a;\n");gets(s2);while(s1[i]!\0)i;while(s2[j]!\0)s1[i]s2…

Debian12配置ssh服务器

Debian12配置ssh服务器 安装ssh-server sudo apt install openssh-server启动ssh sudo systemctl start ssh启用ssh sudo systemctl enable ssh查看ssh状态 sudo systemctl status ssh可以看到有enabled和running字样 说明ssh启用成功 连接到服务器 # username是你的用…

如何在vs2017及以前版本(vs2010、vs2015)上添加 添加类型库中的MFC类

有时候当我们新建MFC工程需要使用到微软的一些自带控件&#xff0c;如播放视频要用到Windows media player控件&#xff0c;这时&#xff0c;我们可以通过添加“ActiveX控件中的mfc类(A)”这一选项. 还有有时候我们需要用到“类型库中的MFC类(T)及“MFC ODBC使用者(O)”。那我们…

【无标题】我们只能用成功来摧毁我们,原来的自己只会破败自己的事情。

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Python读取栅格遥感影像并加以辐射校正后导出为Excel的一列数据

本文介绍基于Python语言中的gdal模块&#xff0c;读取一景.tif格式的栅格遥感影像文件&#xff0c;提取其中每一个像元的像素数值&#xff0c;对像素值加以计算&#xff08;辐射定标&#xff09;后&#xff0c;再以一列数据的形式将计算后的各像元像素数据保存在一个.csv格式文…

一、Oceanbase基础

目录 一、集群相关概念 二、租户相关概念 三、mysql模式和oracle模式 1、mysql模式 2、oracle模式 官方文档&#xff1a;Oceanbase数据库文档 - Oceanbase数据库下载安装和使用说明 一、集群相关概念 集群&#xff1a;整个分布式数据库。Region&#xff1a;表示区域&…

机器人阻抗控制性能及其实验验证

Impedance Control 机器人阻抗控制是一种控制方法&#xff0c;其目的是构建一个系统使得执行器&#xff08;如机械臂&#xff09;能同时控制力和位置。它基于阻抗模型&#xff0c;通过调节机器人的行为&#xff0c;以维持理想的动态关系。这种动态关系可以理解为机器人末端位置…

使用Java语言实现变量互换

一、 java运算 通过异或运算符实现两个变量的互换 import java.util.Scanner;public class ExchangeValueDemo {public static void main(String[] args){try (Scanner scan new Scanner(System.in)) {System.out.println("请输入A的值&#xff1a;");long A sca…

栈和队列OJ题——15.循环队列

15.循环队列 622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09; * 解题思路&#xff1a; 通过一个定长数组实现循环队列 入队&#xff1a;首先要判断队列是否已满&#xff0c;再进行入队的操作&#xff0c;入队操作需要考虑索引循环的问题&#xff0c;当索引越界&…