vivado 错误路径

错误路径

假路径是指拓扑上存在于设计中的路径,但有以下两种情况之一:(1)不起作用;或(2)不需要定时。因此,在定时期间应忽略错误路径分析。

错误路径的示例包括:

•添加了双同步器逻辑的时钟域交叉

•通电时可能写入一次的寄存器

•重置或测试逻辑

•忽略异步分布式的写入和异步读取时钟之间的路径RAM(如适用)

下图显示了一个非功能路径的示例。因为两个多路复用器都是由相同的选择信号驱动,从Q到D的路径不存在,应定义为错误路径。

从时序分析中删除错误路径的原因包括:

•减少运行时间:当从时序分析中删除错误路径时,该工具不需要对那些非功能路径进行计时或优化。具有非功能路径对定时和优化引擎可见可能导致大的运行时损失。

•提高结果质量(QOR):消除错误路径可以大大提高结果(QOR)。综合、放置和优化设计的质量大大提高受到工具试图解决的时间问题的影响。

如果某些非功能路径存在时间冲突,该工具可能会尝试修复这些路径而不是在真正的功能路径上工作。不仅设计可能不必要增加了大小(如逻辑克隆),但该工具可能会跳过修复实际问题,因为非功能路径具有更大的违规行为,会掩盖其他实际违规行为。最佳结果总是通过一组现实的约束来实现。

错误路径是使用XDC命令set_False_path在工具内部定义的:

set_false_path [-setup] [-hold] [-from <node_list>] [-to <node_list>] \ [-
through <node_list>]

可以对命令使用以下附加选项来微调路径规范。

有关所有支持的命令行选项的详细信息,请参阅Vivado Design SuiteTcl命令参考指南(UG835)。

•-from选项的节点列表应该是有效起点的列表。有效的起点是时钟对象、顺序元件的时钟引脚或输入(或输出)主端口。多个可以提供元件。

•-to选项的节点列表应该是有效端点的列表。有效的终结点是时钟对象、输出(或inout)主端口或顺序元件输入数据引脚。倍数可以提供元件。

•直通选项的节点列表应该是有效引脚、端口或网络的列表。可以提供多个元件。

through选项的顺序很重要。请参阅以下示例。例如以下两个命令不同:

set_false_path -through cell1/pin1 -through cell2/pin2
set_false_path -through cell2/pin2 -through cell1/pin1

以下示例删除了从重置端口到所有寄存器的定时路径:

set_false_path -from [get_port reset] -to [all_registers]

以下示例禁用两个异步时钟域之间的定时路径(用于例如从时钟CLKA到时钟CLKB):

set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]

前面的例子禁用了从时钟CLKA到时钟CLKB的路径。来自时钟CLKB的路径至时钟CLKA不被禁用。因此,禁用两个时钟之间的所有路径任一方向上的域都需要两个set_false_path命令:

set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]
set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA]
set_clock_groups -group CLKA -group CLKB

在图81所示的非功能路径示例中,可以使用-through选项,而不是使用-from或-to选项。见图82。

这确保了无需选择通过上述路径的所有路径以查找起点和终点的特定模式。

set_false_path -through [get_pins MUX1/a0] -through [get_pins MUX2/a1]
另一个常见的例子是异步双端口分布式RAM。文字操作与时钟RAM同步,但读取操作可以是异步的在设计允许的情况下。在这种情况下,可以安全地将写入和读取时钟。

有两种方法可以做到这一点:

•定义从RAM之前的写入寄存器到RAM之后的寄存器的错误路径接收所述读取时钟:

set_false_path -from [get_cells <write_registers>] -to [get_cells
<read_registers>]

关于Vivado Design Suite示例项目WAVEGen(HDL):

set_false_path -from [get_cells -hier -filter {NAME =~
*gntv_or_sync_fifo.gl0.wr*reg[*]}] -to [get_cells -hier -filter {NAME=~
*gntv_or_sync_fifo.mem*gpr1.dout_i_reg[*]}]

•定义从RAM引脚WE开始的错误路径

set_false_path -from [get_cells -hier -filter {REF_NAME =~ RAM* &&
IS_SEQUENTIAL && NAME =~ <PATTERN_FOR_DISTRIBUTED_RAMS>}]

关于Vivado Design Suite示例项目WAVEGen(HDL):

set_false_path -from [get_cells -hier -filter {REF_NAME =~ RAM* &&
IS_SEQUENTIAL && NAME =~ *char_fifo*}]

下图说明了WAVE(HDL)中分布式RAM的驱动方式示例项目。

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

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

相关文章

渗透测试——1.4主动扫描

主动扫描是别人可以发觉的情报收集 一、nmap的使用 1.nmap<目标主机>:最常用的扫描方式 有nmap版本、扫描时间 “host is up”表示目标主机处于开机状态、“not shown”未开放端口 有四个端口是开的&#xff08;135.139.445.912&#xff09; 2.nmap -p<端口范围…

ASP.NET Core 使用Log4Net写文本日志和数据库日志

1&#xff0c;先安装依赖 2&#xff0c;在项目目录新建Log4Net.config配置文件&#xff0c;必须要安装System.Data.SqlClient&#xff0c;不然日志存不进去数据库 <?xml version"1.0" encoding"utf-8"?> <log4net><!-- Define some outpu…

Spring实战系列(三)了解容器的基本实现

我们可以通过GitHub或者码云下载spring-framework源码&#xff0c;这边是基于5.X版本进行下载学习的。 地址&#xff1a;https://github.com/spring-projects/spring-framework 分析Spring源码是非常一件的难的事情&#xff0c;只能一步步学习&#xff0c;一步步记录。 前面在…

MQTT - 笔记

1 Mosquitto 官网 https://mosquitto.org/ 2 Windows环境下安装配置Mosquitto服务及入门操作介绍 Windows环境下安装配置Mosquitto服务及入门操作介绍-CSDN博客 3 开源:MQTT安装与配置使用 【C++】开源:MQTT安装与配置使用_c++ mqtt-CSDN博客 4 一文搞懂Qt-MQTT开发

使用js编写一个函数判断所有数据类型的通用方法

一、typeof 在 JavaScript 里使用 typeof 来判断数据类型&#xff0c;只能区分基本类型&#xff0c;即 “number”&#xff0c;”string”&#xff0c;”undefined”&#xff0c;”boolean”&#xff0c;”object” 五种。 对于数组、对象来说&#xff0c;其关系错综复杂&…

LeetCode day31

LeetCode day31 被创新实践的机器学习大作业和数据库作业折磨力&#xff0c;临近期末&#xff0c;各种大作业以及ddl&#xff0c;搞的咱只能偶尔刷刷力扣&#xff0c;但是csdn就挺难去发布了,大家期末也好好复习过个好年啦&#xff0c;O(∩_∩)O 409. 最长回文串 给定一个包含…

Unity中Shader裁剪空间推导(在Shader中实现)

文章目录 前言一、在Shader中&#xff0c;手动把正交相机的坐标转化到裁剪空间1、我们在属性面板定义一个变量&#xff0c;用于传入摄像机的信息2、获取h、r、w、n、f3、获取OpenGL下的转化矩阵4、 获取DirectX下的转化矩阵5、手动将观察空间下的坐标转换到裁剪空间下6、这里为…

MR实战:统计总分与平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建成绩映射器类5、创建成绩驱动器类6、启…

新手如何快速熟悉代码,写出东西(持续更新)

目录 第一章、最小编程任务的设想1.1&#xff09;程序员入门会遇到的问题1.2&#xff09;编程任务的设想 第二章、编程任务的练习2.1&#xff09;代码初级练习2.2&#xff09;项目中级练习2.3&#xff09;其他编程练习 第三章、其他任务练习3.1&#xff09;中间件使用3.2&#…

操作索引库-mapping属性

目录 一、mapping属性 二、总结 一、mapping属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据类型&#xff0c;常见的简单类型有&#xff1a; 字符串: text (可分词的文本)、keyword (精确值&#xff0c;例如:品…

JavaScript基础知识点总结:从零开始学习JavaScript(三)

如果大家感感兴趣也可以去看&#xff1a; &#x1f389;博客主页&#xff1a;阿猫的故乡 &#x1f389;系列专栏&#xff1a;JavaScript专题栏 &#x1f389;ajax专栏&#xff1a;ajax知识点 &#x1f389;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 学习…

2024重新洗牌“IT界”,是谁给它的底气?

​在2023年下半年" IT界"最引发程序员关注的热点话题就是鸿蒙了。 就今年9月25日&#xff0c;从华为发布会宣布明年2024将推出HarmonyOS NEXT版本后&#xff0c;这意味着”鸿蒙不再与android兼容“。鸿蒙将与安卓、ios形成”三足鼎立“之势。 鸿蒙激起千层浪 12月…

Kibana操作ElasticSearch

1、索引操作 1.1、新增索引 a、创建索引默认配置 PUT /索引名称 b、创建索引指定字段类型 put /索引名称/_mapping/typeName {"properties":{"字段名":{"type":"类型", text keyword long short date integer object"index&quo…

2023安洵杯-秦岭防御军wp

reverse 感觉有点点简单## import base64 def ba64_decode(str1_1):mapp "4KBbSzwWClkZ2gsr1qAQu0FtxOm6/iVcJHPY9GNp7EaRoDf8UvIjnL5MydTX3eh"data_1 [0] * 4flag_1 [0] * 3for i in range(32, 127):for y in range(32, 127):for k in range(32, 127):flag_1[0]…

【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard

这篇文章&#xff0c;主要介绍如何安装RocketMQ可视化工具rocketmq-dashboard。 目录 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard 1.2、修改配置文件 1.3、打包工程 1.4、启动rocketmq-dashboard 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard rocketm…

TYPE C 接口知识

1、Type C 概述 Type-C口有4对TX/RX分线&#xff0c;2对USBD/D-&#xff0c;一对SBU&#xff0c;2个CC&#xff0c;另外还有4个VBUS和4个地线。 当Type-C接口仅用作传输DP信号时&#xff0c;则可利用4对TX/RX&#xff0c;从而实现4Lane传输&#xff0c;这种模式称为DPonly模式…

【Leetcode】重排链表、旋转链表、反转链表||

目录 &#x1f4a1;重排链表 题目描述 方法一&#xff1a; 方法二&#xff1a; &#x1f4a1;旋转链表 题目描述 方法&#xff1a; &#x1f4a1;反转链表|| 题目描述 方法&#xff1a; &#x1f4a1;总结 &#x1f4a1;重排链表 题目描述 给定一个单链表 L 的头节…

软件测试/测试开发丨Python 装饰器常见的报错信息、原因和解决方案

Python 装饰器简介 装饰器&#xff08;Decorator&#xff09;是 Python 非常实用的一个语法糖功能。装饰器本质是一种返回值也是函数的函数&#xff0c;可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下&#xff0c;实现额外的功能。 在 Python 中&#xf…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 接口、抽象与密封

C# 入门基础知识 - C# 接口、抽象与密封 第10节 接口、抽象与密封10.1 接口的声明10.2 接口的实现和继承10.3 显式实现接口10.4 抽象类与抽象方法声明10.5 抽象方法(abstract)方法与虚方法(virtual)方法10.6 密封类与密封方法10.7 接口综合运用实践 更多C#基础知识点可查看&…

ueditor富文本编辑器中图片上传地址配置以及抓取远程图片地址的配置

一&#xff1a;图片上传保存地址配置 打开文件ueditor.php,找到imagePathFormat进行修改即可 一&#xff1a;远程抓取图片配置 打开文件ueditor.config.js,找到catchRemoteImageEnable&#xff0c;取消注释即可