vivado 手动布线

手动路由

手动路由允许您为网络选择特定的路由资源。这给了你对信号将要采用的路由路径的完全控制。手动路由不调用route_design。路线在路线数据库中直接更新。当您想精确控制网络的延迟时,可能需要使用手动路由。对于例如,假设有一个源同步接口,您希望在其中最小化路由延迟设备中捕获寄存器的变化。为此,您可以指定LOC和BEL对寄存器和I/O的约束,然后精确控制从IOB到通过手动路由网络来注册。手动路由需要设备互连体系结构的详细知识。这是最好的用于有限数量的信号和短连接。

手动路由规则

在手动布线过程中,请遵守以下规则:

•驾驶员和负载需要LOC约束和BEL约束。

•手动路由期间不允许分支,但您可以通过启动从分支点开始的新手动路线。

•LUT负载的引脚必须锁定。

•您必须路由到尚未连接到驱动程序的负载。

•只允许完整的连接。不允许使用天线。

•允许与现有的未固定路由网络重叠。手动后运行route_design路由以解决由于重叠网络而引起的任何冲突。

进入分配路由模式

要进入“分配路由”模式,请执行以下操作:

1.打开设备窗口。

2.确保已选中“设备”窗口中的“路由资源”。

3.在设备选项层中启用未路由网络和部分路由网络的层视图,如下图所示。

4.选择需要路由的网络。

•未布线的网由红色飞线表示。

•部分路由的网络以黄色突出显示。

5.右键单击并选择“输入指定路由模式”。

将打开“指定布管模式:目标称重传感器接点”对话框。

6.选择要布线到的测压元件接点(可选)。

7.单击“确定”。

注意:要在“设备”窗口中显示部分布线或未布线的网络,请确保这些层在设备选项菜单中选择,如下图所示。

您现在处于手动路由模式。路由分配窗口,如下所示图,显示在“设备”窗口旁边。

“路由分配”窗口分为“选项”、“已分配的节点”和“邻居”节点部分:

•选项部分,如下图所示,控制路由的设置分配窗口。

○ “跃点数”值允许您指定可以

分配给相邻节点。这也会影响显示的“邻居节点”。如果数字跃点数大于1,则只有路由的最后一个节点显示在邻居节点中部分

○ “邻居的最大数量”值允许您限制邻居的数量显示在“邻居节点”部分中的节点。只有路由的最后一个节点显示。

○ 允许与未固定网络重叠开关控制分配的路由是否重叠允许使用现有的未固定路由。任何重叠都需要通过运行固定路由分配后的route_design命令。默认情况下,“选项”区域处于隐藏状态。要显示“选项”部分,请单击“显示”。

•“已分配的节点”部分显示已分配路由的节点。每个分配的节点显示为单独的行项目。

在“设备”窗口中,具有指定路由的节点以橙色突出显示。任何间隙在分配的节点部分中显示为GAP行项目。到自动布线间隙:

○ 在“分配的节点”部分中右键单击网络间隙。

○ 从上下文相关菜单中选择“自动布线”。

要指定下一个管段,请在间隙之前或之后或最后一个间隙之前选择指定的节点已分配节点部分中的已分配节点。

•“邻居节点”部分(如以下部分所示)显示允许的邻居节点,高亮显示当前选定的节点(白色)。并突出显示允许的邻居设备窗口中的节点(白色虚线)。

分配路由节点

决定为下一个管段指定哪个邻居节点后,可以:

•右键单击“邻居节点”部分中的节点,然后选择“指定节点”。

•双击“邻居节点”部分中的节点。

•单击设备视图中的节点。

将路由指定给邻居节点后,该节点将显示在指定的节点中部分,并在设备视图中以橙色突出显示。分配节点,直到达到负载,或者直到准备好分配具有间隙的路由。

取消分配路由节点

要取消分配节点,请执行以下操作:

1.转到“路由分配”窗口的“已分配节点”窗格。

2.选择要取消分配的节点。

3.右键单击并选择“删除”。

节点将从分配中删除。

退出分配路由模式

要完成路由分配并退出“分配路由模式”,请单击“分配路由”按钮在“路由分配”窗口中。

将显示“分配路由”对话框,如下图所示,允许您在提交分配的节点之前对其进行验证。

取消分配路由模式

如果您还没有准备好提交路由分配,您可以取消分配使用以下方法之一的路由模式:

•单击路由分配窗口中的退出模式,或

•右键单击设备窗口,然后选择退出分配路由模式。

当路线被确定时,驾驶员和负载BEL和LOC也被固定。

验证分配的路线

•分配的路由在设备视图中显示为绿色虚线。

•部分分配的路线在设备视图中显示为黄色虚线。

下图显示了已分配和部分分配路线的示例。

分支

将路由分配给具有多个负载的网络时,必须按照以下方式路由网络步骤:

1.按照进入分配路由模式中提供的步骤,将路由分配给一个负载。

2.将路由分配给网络的所有分支。

下图显示了一个网络的示例,该网络已将路由分配给一个负载和需要路由到两个附加负载。

为分支指定路由

要将路由分配给分支,请执行以下操作:

1.转到设备窗口。

2.选择要路由的网络。

3.右键单击并选择“输入指定路由模式”。

将打开“指定布管模式:目标称重传感器接点”窗口,显示所有载荷。

注意:已分配路由的负载在的“已路由”列中有一个复选标记桌子

4.选择要路由到的负载。

5.单击〖确定〗按钮,弹出“指定路由模式:分支启动”对话框,如下图所示,打开。

6.选择要从中分支选定负载的路由的节点。

7.单击“确定”。

8.按照“分配路由节点”中所示的步骤进行操作。

锁定单元输入并在LUT上添加DONT_TOUCH约束荷载您必须确保路由到的LUT负载的输入不会被交换以及那些LUT上的其他输入。为此,请锁定LUT负载的单元格输入,如下所示:

1.打开设备窗口。

2.选择负载LUT。

3.单击鼠标右键,然后选择“锁定单元输入接点”。等效的Tcl命令是:

set_property LOCK_PINS {NAME:BEL_PIN} <cell object>

为了防止Placer中的物理合成中的引脚交换,DONT_TOUCH约束需要被应用于LUT单元。Tcl命令是:

set_property DONT_TOUCH TRUE<单元格对象>

对于具有固定路由和多个LUT负载的网络,可以使用以下Tcl脚本锁定所有LUT负载的单元输入。

set fixed_nets [get_nets -hierarchical -filter IS_ROUTE_FIXED] foreach
LUT_load_pin [get_pins -leaf -of [get_nets $fixed_nets] \
-filter DIRECTION==IN&&REF_NAME=~LUT*] {
set pin [get_property REF_PIN_NAME $LUT_load_pin]
set BEL_pin [file tail [get_bel_pins -of [get_pins $LUT_load_pin]]] set
LUT_name [get_property PARENT_CELL $LUT_load_pin]
# need to handle condition when LOCK_pins property already exists on LUT
set existing_LOCK_PIN [get_property LOCK_PINS [get_cells $LUT_name]]
if { $existing_LOCK_PIN ne "" } {
reset_property LOCK_PINS [get_cells $LUT_name]
}
set_property LOCK_PINS \
[lsort -unique [concat $existing_LOCK_PIN $pin:$BEL_pin]] [get_cells
$LUT_name]
}

定向路由约束

固定路由分配作为“定向路由字符串”存储在路由数据库中。在一个定向路由字符串,分支由嵌套的{大括号}表示。例如,考虑下图中描述的路线一个路由,各种元素如下表所示(定向路由限制)。

该路由的定向路由字符串的简化版本如下:

{A B { D E T } C { F G H I M N } {O P Q} R J K L S }
这条路线在B和C分支。这条路线的主干线是A B C R J K L S。

使用find_routing_path命令创建定向路由约束

find_routing_path Tcl命令可用于创建定向路由约束。你然后可以将创建的约束分配给网络的FIXED_ROUTE属性以锁定路由。对于部分路由的网络,可以找到与网络直接相关联的节点。请参阅Vivado Design Suite属性参考指南(UG912),了解有关关系的更多信息在这些对象之间。find_routing_path命令返回以下其中一个:

•表示从起点到终点的路线路径的节点列表。

•如果命令运行但没有结果,则找不到路径。

•如果命令无法运行,则会出现错误。

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

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

相关文章

如何查看JVM使用的是什么垃圾收集器

文章目录 一、背景分析二、查看垃圾收集器三、理解的偏差四、深挖 demo 代码五、总结 一、背景分析 无论讨论对象的内存分配&#xff0c;还是讨论内存的回收策略或是算法&#xff0c;都需要明确指出是基于哪种垃圾收集器进行的讨论。所以&#xff0c;很自然地就想到这个问题&a…

脱敏技术!!!

什么是数据脱敏&#xff1f;&#xff1f;&#xff1f; 数据脱敏&#xff08;Data Masking&#xff09;是一种数据安全技术&#xff0c;旨在通过预先设定的规则和算法&#xff0c;对原始数据中包含的敏感信息进行变形处理&#xff0c;使得这些信息在非生产环境&#xff08;例如…

考研数学|汤家凤1800基础部分要做完吗?

我教你一个方法&#xff0c;保证让你高质量的做完1800基础部分&#xff0c;而且还不用把所有题目都做了 我当然不是教你如何投机取巧&#xff0c;投机取巧是考不了高分的&#xff0c;我教你的都是我在实际考研过程中实际运用到的方法&#xff01; 其实这个方法也是我在二战的时…

C#手术麻醉系统源码 可对接HIS LIS PACS 医疗系统各类设备 医院手麻系统源码

C#手术麻醉系统源码 可对接HIS LIS PACS 医疗系统各类设备 手术麻醉信息管理系统主要还是为了手术室开发提供全面帮助的系统&#xff0c;其主要是由监护设备数据采集子系统和麻醉临床系统两个子部分组成。包括从手术申请到手术分配&#xff0c;再到术前访视、术中记录及术后…

面试题:Java虚拟机JVM的组成

1. 基础概念 JVM是什么 Java Virtual Machine Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&#xff0c;到处运行 自动内存管理&#xff0c;垃圾回收机制 JVM由哪些部分组成&#xff0c;运行流程是什么&#xff1f; …

C++从入门到精通——C++输入和输出

C输入和输出 前言一、C打印Hello World二、C输入&输出关于I/O流C输入&输出cout函数cin函数endl函数 三、C输入和输出的说明printf、scanf和cout、cin的区别cout函数和cin函数控制精度和宽度std命名空间的使用惯例 前言 C中的输入和输出主要通过标准库中的iostream类实…

Linux 入门及其基本指令(上)

目录 0 .引言 1. XShell 远程登录 Linux 1.1 云服务器 1.2. XShell 远程登陆 Linux 2. 详解 Linux 基本指令 2.1 ls 指令 2.2 pwd 指令 2.3 cd 指令 2.4 touch 指令 2.5 mkdir指令 2.6 rmdir指令 && rm 指令 0 .引言 如今&#xff0c;Linux 在服务器…

uniapp vue-cli项目配置devServer和outPutDir

上一次说了使用vue-cli创建uni-app项目&#xff0c;然后使用第三方工具开发打包&#xff0c;利用jekins发布等。 这一次我想解决以下问题&#xff1a; 1我想配置devServer供开发环境使用&#xff0c;这样也可以解决开发环境的跨域问题 2以前我的每个版本信息都配置在package…

黑群晖基于docker配置frp内网穿透

前言 我的黑群晖需要设置一下内网穿透来外地访问&#xff0c;虽然zerotier的p2p组网已经很不错了&#xff0c;但是这个毕竟有一定的局限性&#xff0c;比如我是ios的国区id就下载不了zerotier的app&#xff0c;组网不了 1.下载镜像 选择第一个镜像 2.映射文件 配置frpc.ini&a…

C 指向指针的指针

指向指针的指针是一种多级间接寻址的形式&#xff0c;或者说是一个指针链。通常&#xff0c;一个指针包含一个变量的地址。当我们定义一个指向指针的指针时&#xff0c;第一个指针包含了第二个指针的地址&#xff0c;第二个指针指向包含实际值的位置。 一个指向指针的指针变量…

常见6种开源协议比较

前言 常见的开源许可协议有6种是比较常见和广泛使用的&#xff0c;每种协议都有其特定的使用场景和约束条件。这6种分别是GPL, LGPL&#xff0c;MIT许可证&#xff0c; Apache许可证&#xff0c;BSD许可证和Mozilla Public License&#xff08;MPL&#xff09;. 6种开源许可协议…

Redis 开源协议变更背后:开源软件与云计算巨头的竞争博弈

01 背景 在云计算的风潮下&#xff0c;开源软件的生态环境正在经历一场剧变。2024 年 3 月 20 日&#xff0c;这种变化在 Redis 身上得到了集中体现。Redis 商业公司 CEO Rowan Trollope 宣布&#xff0c;Redis 将从 BSD 3-Clause 许可证过渡到双重许可证模式&#xff0c;包括…

【Redis】Redisson实现分布式锁

Redisson是一个在Redis的基础上实现的Java驻内存数据网格&#xff08;In-Memory Data Grid&#xff09;。它不仅提供了一系列的分布式的Java常用对象&#xff0c;还提供了许多分布式服务&#xff0c;其中就包含了各种分布式锁的实现。 官网地址 GitHub地址 Redisson入门 1.引…

Nexus3 Docker 私有仓库

Nexus3 Docker 私有仓库 安装并部署 Nexus3 $ docker search nexus3$ docker pull sonatype/nexus3$ mkdir /home/tester/data/docker/nexus3/sonatype-work $ sudo chown -R 200 /home/tester/data/docker/nexus3/sonatype-work$ docker run -d --namenexus3 \ --restartalw…

面试题目--3.19

1.foo()和foo()之间有什么区别&#xff1f; 代表所有的warning忽略 2.什么是csrf攻击&#xff1f;如何防范&#xff1f; csrf&#xff0c;跨站请求伪造&#xff0c;攻击方伪装用户身份发送请求从而窃取信息或者破坏系统。 基本原理&#xff1a;用户访问a网站登录并生成了coo…

亲历中国智驾大战,吴新宙加入NVIDIA半年后首秀

‍作者 |张祥威 编辑 |德新 吴新宙近日现身NVIDIA GTC&#xff0c;这是其从小鹏汽车离开加入NVIDIA之后的首次公开亮相。 吴目前担任NVIDIA汽车事业部副总裁&#xff0c;全面负责NVIDIA的车载计算产品线DRIVE平台的产品定义以及工程落地工作。吴新宙最广为人知的经历&#xf…

3.28C++

复数类的实现&#xff0c;写出三种构造函数&#xff0c;算术运算符、关系运算符、逻辑运算符重载尝试实现自增、自减运算符的重载 #include <iostream> using namespace std; class Num {int rel; //实部int vir; //虚部 public:Num():rel(2),vir(1){}Num(int rel,…

深入解析RSA算法原理及其安全性机制

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 目录 一、RSA算法简介二、RSA算法原理2.1 背景与数学基础2.2 密钥生成2.3 加密过程2.4 解密过程 三、安全性考虑四、RSA的使用五、…

数据结构进阶篇 之 【二叉树链序存储】的整体实现讲解

封建迷信我嗤之以鼻&#xff0c;财神殿前我长跪不起 一、二叉树链式结构的实现 1.二叉树的创建 1.1 手动创建 1.2 前序递归创建 2.二叉树的遍历 2.1 前序&#xff0c;中序以及后序遍历概念 2.2 层序遍历概念 2.3 前序打印实现 2.4 中序打印实现 2.4 后序打印实现 2.…

SpringBoot项目启动成功,但是调用接口直接报NOT FOUND 404

问题描述 SpringBoot项目启动成功&#xff0c;但是调用接口直接报NOT FOUND 404 解决办法 启动类中ComponentScan(basePackages {“com.afclab”})中的扫包路径和项目路径不一样&#xff0c;导致扫不到Controller等组件&#xff0c;修改成和项目路径一样就可以解决&#xf…