vivado 管理宏

管理宏

宏存储为XDC约束。根据定义,它们是Tcl命令。这允许要在XDC约束文件和Tcl脚本中使用并交互使用的宏。宏是使用write_xdc命令编写的。使用read_xdc读取宏命令-cell选项可用于将作用域限制为特定的单元格。-cell选项特别适用于将一个宏的相对放置应用到不同层次结构中的相似实例。

管理宏示例一

在内存中写入所有XDC约束,包括宏:

% write_xdc constrs.xdc

管理宏示例二

设计包含单元的三个实例:

inst_0、inst_1和inst_2。

在inst_0中创建了一个宏:

% create_macro m0
% update_macro m0 {reg0 X0Y0 reg1 X0Y1}
% write_xdc -cell inst_0 inst_0.xdc

管理宏示例三

为单元inst_0写入包括宏m0在内的所有XDC约束:

% write_xdc -cell inst_0.xdc inst_0.xdc

管理宏示例四

从单元inst_0读取XDC约束,包括宏m0,并将其应用于inst_1和inst_2:

% read_xdc inst_0.xdc -cell {inst_1 inst_2}
% get_macros
m0 inst_1_m0 inst_2_m0

宏属性

宏对象具有以下特性:

•绝对网格

•等级

•名称

•RLOCS

宏属性示例

% report_property [get_macros m1]
Property Type Read-only Visible Value
ABSOLUTE_GRID bool true true 0
CLASS string true true macro
NAME string true true m1
RLOCS string* true true u2/sr0 X0Y0 u2/sr1 X0Y1

以下是对属性的描述。

绝对网格

布尔属性,反映RLOC是否使用默认网格系统或绝对网格系统。默认值为false。如果update_macro与-absolute_grid一起使用,则该属性为true。绝对栅格使用与场地RPM_X和RPM_Y特性对齐的坐标,以允许从放置在不同场地类型的单元创建宏。

将对象标识为宏。

名称

宏对象的名称,create_macro使用的名称或宏名称当使用readxdc-cell时,以单元格层次结构为前缀。

RLOCS

包含宏单元格列表及其RLOC属性的字符串,格式与update_macro命令。

宏单元格具有以下附加属性:

•RLOC:单元格的相对位置属性(RLOC)值。

•MACRO_NAME:单元格所属宏的名称。

使用前面的宏特性示例:

% get_property RLOC [get_cells {u2/sr0 u2/sr1}] X0Y0 X0Y1
% get_property MACRO_NAME [get_cells {u2/sr0 u2 "X0Y0 X0Y1" is the output
of the get_property command
/sr1}]
m1 m1

通过opt_design保留XDC宏

opt_design可以自由地优化和删除属于XDC宏的LUT,尽管RLOC约束。为了防止opt_design优化XDC宏内部的逻辑在属于XDC的所有单元格上将属性DONT_TOUCH设置为TRUE所必需的宏。DONT_TOUCH属性可以通过RTL或XDC设置。

高级XDC宏示例

本节提供以下高级XDC宏示例:

•相对网格宏示例

•绝对网格宏示例

相对网格宏示例

默认情况下,相对栅格用于宏RLOC坐标,因为最常见的宏是由属于同一网站类型的单元格组成的。以下简单示例说明了从宏RLOC派生的相对位置。这个宏由一对SRL>FF>FF电路组成,这些电路将以2x2模式排列。请参阅如下图所示。

要创建所需的相对放置,按如下方式为单元分配RLOC:

srl[0] X0Y0
regs0[0] X0Y0
regs1[0] X1Y0
srl[1] X0Y1
regs0[1] X0Y1
regs1[1] X1Y1
以下命令使用名称m0创建此宏:
create_macro m0
update_macro m0 {srl[0] X0Y0 regs0[0] X0Y0 regs1[0] X1Y0 srl[1] X0Y1
regs0[1] X0Y1 regs1[1] X1Y1}

宏可以由放置器自动放置,也可以作为一个集合手动放置。宏位置显示如下图所示:

宏包含基于LUTRAM的SRL,并且只能放置在SLICEM中键入切片。这对宏的可能位置进行了轻微的限制。宏可以仅位于SLICEL列位于SLICEM列右侧的位置。附近过多密集的切片会导致拥塞,从而降低可路由性并且可能对性能产生负面影响。

绝对网格宏示例

将不同场地类型的单元组合到宏中时,必须使用绝对网格。绝对网格(也称为RPM网格)是一个绝对坐标系,定义基于站点在设备内的位置的站点坐标。绝对网格还考虑网站的大小。RAM和DSP块具有比切片更宽的间隔。绝对网格如图所示如下图所示:

在本例中,使用绝对网格。该示例包括从输入端口经过两个阶段的输入数据路径寄存器,然后块RAM。如下图中的示意图所示。

宏创建需要使用绝对值的单元格及其相对位置(RLOC)列表网格创建宏时,可能很难可视化绝对值的相对位置网格宏。

细胞首先被手动放置并排列在它们所需的位置,如下图:

尽管绝对栅格指定了绝对位置,但生成的宏可以放置在任何位置设备内可以容纳宏的相对放置的位置。在这个例如,使用左下角作为的点来指定相对位置参考但是,绝对栅格位置仅指定相对放置,而不是绝对放置。这允许宏位于设备中维护相对安置由于该示例有些复杂,由ILOGIC、切片和块RAM组成宏位置有一定的限制,但可以放置在三个位置中的任何一个下图中以橙色突出显示:

若要确定绝对栅格RLOC,请使用场地RPM_X和RPM_Y特性。例如下部块RAM被放置在位置RAMB36_X0Y0处。选择场地(而不是单元)会显示以下值:RPM_X为33,RPM_Y为0(图103)。这些是绝对网格坐标。相应的RLOC值为X33Y0。

同样的方法用于确定切片的绝对RLOC(图104)。细胞在该切片内具有X31Y0的RLOC。

有两个命令用于创建名为m0的宏:

create_macro m0
update_macro m0 -absolute_grid <cell0 rloc0 cell1 rloc1 cell2 rloc2 … cellN
rlocN>

如果宏像本例中那样包含许多单元格,Tcl可以用于简单地构建和指定update_macro所需的单元格rloc列表。给定一个放置的单元格,绝对网格RLOC可以使用以下Tcl proc getAbsRLOC来确定:

proc getAbsRLOC {cell} {
set site [get_sites -of [get_cells $cell]]
set X [get_property RPM_X $site]
set Y [get_property RPM_Y $site]
return "X${X}Y${Y}"
}

示例:将变量rloc分配给块RAM单元rloc的字符串值

% set rloc [getAbsRLOC $ram0]
X33Y0

Tcl-dict命令可用于构建单元格和绝对值的字典(关联数组)update_macro命令的网格RLOC。Tcl关联数组是一系列键值对。可以使用dict命令将单元和RLOC排列为串联。数组键是宏单元对象。数组值是单元RLOC。这有助于自动化创建具有多个单元格的宏的过程。以下示例使用绝对栅格,但是该方法同样适用于普通网格。假设$cells是宏单元格的列表,并且$cells的每个单元格都已被放置以形成所需的宏模式,下面的Tcl过程为update_macro命令。

proc buildRLOCList {cells} {
set rlocs [dict create] # initialize dictionary called rlocs
foreach cell $cells {
# dictionary key is cell, value is absolute RLOC
dict set rlocs $cell [getAbsRLOC $cell]
}
return $rlocs
}
示例:为示例电路构建RLOC列表
# create macro cell list: input register stage and BRAM cells
set cells [get_cells -hier [list ireg0* ireg1* *SIMPLE_PRIM36.ram]]
create_macro m0
update_macro m0 -absolute_grid [buildRLOCList $cells]
要查看buildRLOCList创建的字典列表,请执行以下操作:
$ puts [buildRLOCList $cells]
{ireg0[6]} X2Y10 {ireg0[5]} X2Y11 {ireg0[4]} X2Y6 {ireg0[3]} X2Y7 . . .

如果层次结构中隐藏了许多宏单元和宏单元,则指定的显式列表单元RLOC对可能变得复杂并且容易出错。XDC的创建和管理使用Tcl可以简化宏

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

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

相关文章

4.快速实现增删改查,模糊查询功能

打开springboot项目&#xff0c;在com.example下建包common,在common下新建Result.java 4.1封装统一的返回数据结构 1.在Result.java中编写如下代码&#xff1a; private static final String *SUCCESS*"0"; private static final String *ERROR*"-1"; p…

ROS学习笔记(8)进一步深入了解ROS第二步

0.前提 在上一讲中我提到过该系列是基于宾夕法尼亚大学工程学院的ROS公开课&#xff0c;系列文章将来源于公开课中的课后习题。该系列可以很好的帮助大家更加深入的了解ROS的一些概念。&#xff08;有效面对HR的提问。&#xff09; 1. (C)What is a nodehandle object? Can we…

项目经验简单总结

引擎 unity 2020 语言 C# lua python(用于工具链) java (用于SDK对接) js&#xff08;PC WEB SDK对接&#xff09; 编辑器 VS VSCODE IDEA eclipse 项目开发模块规划分 主项目工程&#xff0c;UI资源项目工程&#xff0c;模型场景资源项目工程 主项目工程&#xff1a;所有的…

Excel模板填充:从minio上获取模板使用easyExcel填充

最近工作中有个excel导出的功能&#xff0c;要求导出的模板和客户提供的模板一致&#xff0c;而客户提供的模板有着复杂的表头和独特列表风格&#xff0c;像以往使用poi去画是非常耗时间的&#xff0c;比如需要考虑字体大小&#xff0c;单元格合并&#xff0c;单元格的格式等问…

vue-打包

打包的作用 说明&#xff1a;vue脚手架只是开发过程中&#xff0c;协助开发的工具&#xff0c;当真正开发完了>脚手架不参与上线 打包的作用&#xff1a; 1&#xff09;将多个文件压缩合并成一个文件 2&#xff09;语法降级 3&#xff09;less sass ts语法解析 打包后…

liunx操作系统基础及进阶

一、基础入门 1、Linux系统简介 什么是Liunx&#xff1f; Linux在设计之初&#xff0c;是一个基于POSIX的多用户、多任务并且支持多线程和多CPU的操作系统&#xff0c;它是由世界各地成千上万的程序员设计和开发实现&#xff1b; 在当今社会&#xff0c;Linux 系统主要被应…

【智慧零售】东胜物联蓝牙网关硬件解决方案,促进零售门店数字化管理

依托物联网&#xff08;IoT&#xff09;、大数据、人工智能&#xff08;AI&#xff09;等快速发展&#xff0c;数字化和智能化已成为零售企业的核心竞争力。更多的企业通过引入人工智能、大数据等先进技术手段&#xff0c;提高门店运营效率和服务质量。 某连锁咖啡企业牢牢抓住…

[嵌入式C][入门篇] 快速掌握基础(9个语句)

开发环境&#xff1a; 网页版&#xff1a;跳转本地开发(Vscode)&#xff1a;跳转 文章目录 一、基础语法&#xff08;1&#xff09;if (如果)示例1: 普通使用 if示例2: 带否则 else示例3: 否则如果 else if &#xff08;2&#xff09;switch case (选择)规则示例1: &#xff0…

谷歌浏览器 模拟定位

注意事项&#xff1a; 如果要清除位置信息&#xff0c;需将Geolocation修改为No override模拟定位之后需要刷新页面&#xff0c;网页才会生效如果模拟定位&#xff0c;一段时间没有操作&#xff0c;就会清空模拟定位&#xff0c;类似于No override

ubuntu远程桌面连接之novnc

一、前言 该操作是为了实现vnc桌面连接为url连接方式&#xff0c;且在浏览器中可以对ubuntu进行操作。在使用novnc进行操作前&#xff0c;需要先安装vnc才可。ubuntu下如何安装vnc&#xff0c;可看博主前面写的一篇文&#xff0c;ubuntu远程桌面连接之vnc-CSDN博客&#xff0c;…

案例074:基于微信小程序的儿童预防接种预约管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

物流实时数仓:数仓搭建(DWS)一

系列文章目录 物流实时数仓&#xff1a;采集通道搭建 物流实时数仓&#xff1a;数仓搭建 物流实时数仓&#xff1a;数仓搭建&#xff08;DIM&#xff09; 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&#xff09;一 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&am…

22款奔驰GLE450升级香氛负离子 车载香薰

相信大家都知道&#xff0c;奔驰自从研发出香氛负离子系统后&#xff0c;一直都受广大奔驰车主的追捧&#xff0c;香氛负离子不仅可以散发出清香淡雅的香气外&#xff0c;还可以对车内的空气进行过滤&#xff0c;使车内的有害气味通过负离子进行过滤&#xff0c;达到车内保持清…

神经网络:经典模型热门模型

在这里插入代码片【一】目标检测中IOU的相关概念与计算 IoU&#xff08;Intersection over Union&#xff09;即交并比&#xff0c;是目标检测任务中一个重要的模块&#xff0c;其是GT bbox与pred bbox交集的面积 / 二者并集的面积。 下面我们用坐标&#xff08;top&#xff0…

Oracle导出CSV文件

利用spool spool基本格式&#xff1a; spool 路径文件名 select col1||,||col2||,||col3||,||col4 from tablename; spool off spool常用的设置&#xff1a; set colsep ;    //域输出分隔符 set echo off;    //显示start启动的脚本中的每个sql命令&#xff0c;缺…

ROS学习记录:在ROS中用C++实现激光雷达避障

前言 本文建立在成功获取激光雷达数据的基础上&#xff0c;详细参考 在ROS中用C实现获取激光雷达的数据 一、实现思路 二、在VScode中打开之前编写好的lidar_node.cpp 三、在lidar_node.cpp中写入如下代码 #include <ros/ros.h> #include <std_msgs/String.h> …

k8s---pod的生命周期

pod的相关知识 pod是k8s中最小的资源管理组件 pod也是最小化运行容器化的应用的资源管理对象 pod是一个抽象的概念&#xff0c;可以理解为一个或者多个容器化应用的集合。 k8s中pod的两种使用方式 &#xff08;1&#xff09;一个pod中运行一个容器。"每个po中一个容器&…

知虾会员**成为知虾会员,尊享专属权益**

在当今繁忙的生活中&#xff0c;线上购物已经成为现代人们的主要消费方式之一。而作为线上购物平台的领军者之一&#xff0c;Shopee为了提供更加个性化和便利的购物体验&#xff0c;推出了知虾会员&#xff08;Shopee会员&#xff09;服务。知虾会员不仅可以享受到一系列会员专…

国产化软硬件升级之路:πDataCS 赋能工业软件创新与实践

在国产化浪潮的推动下&#xff0c;基础设施软硬件替换和升级的需求日益增长。全栈国产化软硬件升级替换已成为许多领域中的必选项&#xff0c;也引起了数据库和存储领域的广泛关注。近年来&#xff0c;虽然涌现了许多成功的替换案例&#xff0c;但仍然面临着一些问题。 数据库…

某音关键词搜索商品接口,某音关键词搜索商品列表接口,宝贝详情页接口,某音商品比价接口接入方案

要接入API接口以采集电商平台上的商品数据&#xff0c;可以按照以下步骤进行&#xff1a; 1、找到可用的API接口&#xff1a;首先&#xff0c;需要找到支持查询商品信息的API接口。这些信息通常可以在电商平台的官方文档或开发者门户网站上找到。 2、注册并获取API密钥&#x…