首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VHDL属性保持

VHDL属性保持
EN

Stack Overflow用户
提问于 2016-11-03 07:37:16
回答 2查看 9.9K关注 0票数 2

我目前正在研究关于SR的VHDL,有一部分我不明白。

有人能解释ATTRIBUTE keep: boolean是什么意思吗?用VHDL做什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-03 07:56:34

它是用户定义的属性,因此不属于VHDL标准本身。它通常被用来指示合成工具,它应该保持一个特定的信号,例如一个触发器,即使通过合成工具也可以确定在优化期间信号可以被删除。

有关Altera合成工具,请参见以下描述:保留VHDL综合属性

票数 2
EN

Stack Overflow用户

发布于 2018-04-06 20:40:22

警告严重的Xilinx偏见..。

对于不同的工具,VHDL的属性是不同的,甚至在同一工具的不同版本之间也会发生变化。Xilinx的“保持”属性用于确保在Vivado合成过程中信号不会被优化。它最近被改名为"syn_keep“,以避免混淆。我以前使用过类似的属性来解决构建问题,在这些问题中,工具做出了错误的假设。

注意:为了避免在Xilinx实现过程中进行优化,请使用"dont_touch“。

示例:进入FPGA的时钟需要通过Xilinx进行缓冲,但我需要特定IP核的原始信号。因此,我分裂了路由,缓冲时钟,并将原始时钟信号传送给IP。Vivado 2016.4工具优化了未缓冲的路由,在硬件上创建了时间约束、关键警告和错误行为。通过综合设计原理图进行跟踪,观察合适的路由,然后查看实现设计原理图,查看路由更改,从而发现问题。我通过将dont_touch属性添加到未缓冲的信号来修正这个问题。

代码语言:javascript
复制
attribute dont_touch              : boolean;
attribute clock_signal            : string;

attribute dont_touch of clk_in    : signal is true;
attribute clock_signal of clk_in  : signal is "yes"; 

...

CLK_BUFG: component BUFG
port map (
  I  => clk_in,
  O  => buf_clk_in
);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40396085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档