vivado KEEP

使用KEEP属性来阻止优化。信号被优化或吸收的地方
在逻辑块中,KEEP属性指示合成工具保持信号不变
并将该信号提取到网表中。
例如,如果一个信号是2位AND门的输出,并且它驱动另一个AND门
KEEP属性可用于防止该信号被合并到更大的LUT中
包含AND门。
KEEP也常与时间约束结合使用。如果有时间
对通常会被优化的信号的约束,KEEP会阻止这种情况,并允许
使用正确的计时规则。
然而,你应该小心不要把KEEP放在不会驱动任何东西的信号上。
合成将保留这些信号,它们可能会在下游造成问题
过程。

注意:模块或实体的端口不支持KEEP。如果需要特定端口
保持不变,要么使用flatn_hierarchy=“none”设置,要么在模块上放置DONT_TOUCH,或者
实体本身。
小心!将KEEP与其他属性一起使用时要小心。在其他属性存在的情况下
与KEEP冲突时,KEEP属性通常优先。
示例:
•当一个信号具有MAX_FANOUT属性,而一个信号则具有KEEP属性时
由第一信号驱动的第二信号;第二个信号上的KEEP属性将
不允许扇出复制。
•当RAM STYLE=“block”时,寄存器上有一个KEEP需要
成为RAM的一部分后,KEEP属性会阻止块RAM
推断。
架构支持
所有架构。
适用对象
•您可以将此属性放置在任何信号、寄存器或导线上。
°集合
°电池

价值观
•TRUE:保持信号。
•FALSE:如果工具做出这样的决定,则允许Vivado合成进行优化。
FALSE值不会强制工具删除信号。默认值为
假的。
建议:仅在RTL中设置此属性。因为需要保留的信号通常是
在读取XDC文件之前进行优化,在RTL中设置此属性可确保使用该属性。
语法
本节中的语法示例展示了如何将此约束与特定工具或
方法。如果未列出工具或方法,则无法对其使用此约束。
Verilog语法
将Verilog约束放在模块或实例化之前。
按如下方式指定Verilog约束:

(* KEEP = “{TRUE|FALSE|SOFT}” *)
Verilog Example
(* keep = “true” *) wire sig1;
assign sig1 = in1 & in2;
assign out1 = sig1 & in2;
VHDL Syntax
Declare the VHDL constraint as follows:
attribute keep : string;
Specify the VHDL constraint as follows:
attribute keep of signal_name : signal is “{TRUE|FALSE}”;
VHDL Example
signal sig1 : std_logic;
attribute keep : string;
attribute keep of sig1 : signal is “true”;
....
....
sig1 <= in1 and in2;
out1 <= sig1 and in3;
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vivado中,使用"keep = true"的语法可以保留指定的信号或变量,在综合和优化过程中防止被优化掉。通过将信号或变量的定义中添加"keep = true",可以确保这些信号或变量在设计中得到保留。这在调试过程中非常有用,特别是当需要观察某些信号时。引用提供了一个具体的例子,展示了如何使用"keep = true"来定义多个保留的变量。引用提到了在综合过程中出现错误时,需要注意代码的大小写问题。引用建议在调试过程中,为了防止一些需要观察的信号被优化掉,可以在Vivado设置中修改一些设置,以保留这些信号。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vivado中如何避免信号被优化掉?](https://blog.csdn.net/Reborn_Lee/article/details/99550802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vivado (* KEEP=“TRUE“*) 抓取波形 网表](https://blog.csdn.net/AlibabaApple/article/details/111679548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值