DONT_TOUCH

news/2024/7/23 16:55:02 标签: fpga开发

DONT_TOUCH
DONT_TOUCH指示工具不优化用户层次结构、实例化组件或
信号,以便优化不会跨模块边界发生,或者消除
对象虽然这可以帮助进行布图规划、分析和调试,但它可以抑制
优化,导致更大、更慢的设计。
重要提示:Xilinx建议在RTL源文件中设置此属性。需要的信号
keep经常在读取XDC文件之前进行优化。因此,在RTL中设置此属性可确保
使用该属性。
DONT_TOUCH属性的工作方式与KEEP或KEEP_HIERARCHY相同;然而
与KEEP和KEEP_HIERARCHY不同,DONT_TOUCH被前向注释为位置和路线
以防止实现过程中的逻辑优化。DONT_TOUCH对的影响
各种对象如下:
•基本实例:不要删除该实例。但是,该工具可以连接或
断开实例的引脚。
•分层实例:不要删除实例或添加或删除的任何引脚
例子该工具可以连接或断开引脚,并优化内部的逻辑
hiearchical模块。但是,优化不能将逻辑移入或移出
分层模块。这是对实例的层次边界的约束。
提示:使用DONT_TOUCH应用程序注册层次实例的所有输出。
•分层网络:不要移除网络,也不要连接或断开网络上的任何引脚。
提示:在分层网络上,DONT_TOUCH将只保留它所连接的分层段,
因此,您需要将其附加到要保留的所有线段上。
在模块或实体的各个端口中不支持DONT_TOUCH。如果需要
保留将DONT_TOUCH放在模块本身上的特定端口,或者使用以下Vivado
合成设置:
flatten_hierarchy=“无”
使用DONT_TOUCH、KEEP或KEEP_HIERARCHY时要小心。在其他情况下
属性与DONT_TOUCH冲突时,DONT_TOUCH属性优先。
适用对象
•此属性可以放置在任何信号、层次模块或基元实例上。
°单元格(get_Cells)
°网络(get_Nets)
价值观
•FALSE:允许跨层次结构进行优化。这是默认设置。
•TRUE:通过不允许跨层次结构进行优化来保留层次结构
边界保留实例化的组件或网络以防止其
优化出了设计。

Syntax
Verilog Syntax
Place the Verilog attribute immediately before the user hierarchy instantiation:
(* DONT_TOUCH = "{TRUE|FALSE}" *)
Verilog Syntax Example
// Preserve the hierarchy of instance CLK1_rst_sync
(* DONT_TOUCH = "TRUE" *) reset_sync #(
.STAGES(5)
) CLK1_rst_sync (
.RST_IN(RST | ~LOCKED),
.CLK(clk1_100mhz),
.RST_OUT(rst_clk1)
);
Wire Example
(* dont_touch = "true" *) wire sig1;
assign sig1 = in1 & in2;
assign out1 = sig1 & in2;
Module Example
(* DONT_TOUCH = "true|yes" *)
module example_dt_ver
(clk,
In1,
In2,
out1);
Instance Example
(* DONT_TOUCH = "true|yes" *) example_dt_ver U0
(.clk(clk),
.in1(a),
.in2(b),
out1(c));
VHDL Syntax
Declare the VHDL attribute as follows:
attribute DONT_TOUCH : string;
Specify the VHDL attribute as follows:
attribute DONT_TOUCH of name: label is "{TRUE|FALSE}";
Where
name is the instance name of a user defined instance.
VHDL Syntax Example
attribute DONT_TOUCH : string;
-- Preserve the hierarchy of instance CLK1_rst_sync
attribute DONT_TOUCH of CLK1_rst_sync: label is "TRUE";
CLK1_rst_sync : reset_sync
PORT MAP (
RST_IN => RST_LOCKED,
CLK => clk1_100mhz,
RST_OUT => rst_clk1
);
XDC Syntax
set_property DONT_TOUCH {TRUE|FALSE} [get_cells < instance_name >]
set_property DONT_TOUCH {TRUE|FALSE} [get_nets < net_name >]
Where:
instance_name is a leaf cell or hierarchical cell.
net_name is the name of a hierarchical net.
XDC Syntax Example
# Preserve the hierarchy of instance CLK1_rst_sync
set_property DONT_TOUCH TRUE [get_cells CLK1_rst_sync]
# Preserve all segments of the hierarchical net named by the Tcl variables
set_property DONT_TOUCH [get_nets -segments $hier_net]

http://www.niftyadmin.cn/n/5546681.html

相关文章

FunAudioLLM SenseVoice语音转录与CosyVoice语音合成及语音克隆使用案例

参考: https://fun-audio-llm.github.io/ 1、SenseVoice语音转录 在线体验:https://modelscope.cn/studios/iic/CosyVoice-300M 参考:https://github.com/FunAudioLLM/SenseVoice 下载: pip install -U funasr使用: from funasr import AutoModelmodel_dir = "…

C++的模板(十):shared_ptr的上锁问题

CSTL中的智能指针shared_ptr以前没用过&#xff0c;它是不是线程安全过去也没关注过。很多说它是不安全的&#xff0c;也有说是安全的。线程安全的问题&#xff0c;简单测试是测不出&#xff0c;到底怎么样&#xff0c;需要直接看代码。 从代码看&#xff0c;shared_ptr是个简…

Hook 实现 Windows 系统热键屏蔽(二)

目录 前言 一、介绍用户账户控制&#xff08;UAC&#xff09; 1.1 什么是 UAC &#xff1f; 2.2 UAC 运行机制的概述 2.3 分析 UAC 提权参数 二、 NdrAsyncServerCall 函数的分析 2.1 函数声明的解析 2.2 对 Winlogon 的逆向 2.3 对 rpcrt4 的静态分析 2.4 对 rpcrt4…

SRC实战:改个返回包就严重了?

生活就像自行车&#xff0c;要想保持平衡&#xff0c;必须不断前进。—— 爱因斯坦 周一仿佛就是那个提醒你“不能停”的日子&#xff0c;哪怕你的心灵还没准备好继续前进。 0x00 经过长达一天的周末过后&#xff0c;又要开始上班啦。大周一的&#xff0c;还是老样子&#xff…

华为云生态和快速入门

华为云生态 新技术催生新物种&#xff0c;新物种推动新生态 数字技术催生各类运营商去重塑并颠覆各行业的商业模式 从业务层面看&#xff0c;企业始终如一的目标是业务增长和持续盈利&#xff0c;围绕这些目标衍生出提质、增效、降本、安全、创新和合规的业务诉求&#xff0c…

算力狂飙|WAIC 2024上的服务器

7月7日&#xff0c;2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC 2024&#xff09;在上海落下帷幕。这场备受瞩目的AI盛宴与热辣夏日碰撞&#xff0c;吸引了全球科技、产业及学术界的广泛关注&#xff0c;线下参观人数突破30万人次&#xff0c;线上流量突…

uniapp父页面调用子页面 组件方法记录

文章目录 导文如何点击父页面&#xff0c;触发子页面函数先写一个子页面的基础内容父元素 如何点击父页面&#xff0c;修改子页面的值先写一个子页面的基础内容父元素 导文 如何点击父页面&#xff0c;触发子页面函数&#xff1f; 如何点击父页面&#xff0c;修改子页面的值&am…

C# —— FileStream文件流

一个文件进行读写的时候&#xff0c;会变成一个文件流 FileStream类 输入流 用于从文件进行读取文件 输出流&#xff0c;向文件写入操作 I/O 类就是对应文件的操作的类 I/O类 包含各种不同的类 用于执行各种文件操作&#xff0c;创建文件删…