gpt4 book ai didi

VHDL 属性保留

转载 作者:行者123 更新时间:2023-12-02 04:04:05 27 4
gpt4 key购买 nike

我目前正在学习关于SR Latch的VHDL,有一个部分我不明白。

谁能解释一下ATTRIBUTE keep: boolean是什么意思以及它在VHDL中的作用是什么?

谢谢。

最佳答案

警告严重 Xilinx 偏差...

对于不同的工具,VHDL 的属性是不同的,甚至同一工具的版本之间也会有所不同。 Xilinx 的“keep”属性用于确保 Vivado 综合过程中信号不会被优化掉。它最近已重命名为“syn_keep”以避免混淆。我曾使用类似的属性来修复构建问题,之前工具做出了错误的假设。

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

示例:进入 FPGA 的时钟需要通过 Xilinx BUFG 进行缓冲,但我需要特定 IP 核的原始信号。因此,我分割了路由、缓冲了时钟并将原始时钟信号馈送到 IP。 Vivado 2016.4 工具优化了无缓冲路由,从而在硬件上产生时间限制关键警告和不当行为。通过跟踪综合设计原理图、观察正确的布线、然后查看实现设计原理图并发现布线已更改,发现了该问题。我通过向无缓冲信号添加 dont_touch 属性来修复此问题。

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
);

关于VHDL 属性保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40396085/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com