VHDL属性保持
我目前正在学习关于SR锁存器的VHDL,有一部分我不理解 谁能解释一下VHDL属性保持,vhdl,Vhdl,我目前正在学习关于SR锁存器的VHDL,有一部分我不理解 谁能解释一下属性keep:boolean的含义以及它在VHDL中的作用 谢谢。它是用户定义的属性,因此不是VHDL标准本身的一部分。它通常用于指示合成工具保持特定信号,例如触发器,即使通过合成工具可以确定在优化期间可以移除该信号 有关Altera Quartus合成工具,请参见以下说明:它是用户定义的属性,因此不是VHDL标准本身的一部分。它通常用于指示合成工具保持特定信号,例如触发器,即使通过合成工具可以确定在优化期间可以移除该信号 有
属性keep:boolean
的含义以及它在VHDL中的作用
谢谢。它是用户定义的属性,因此不是VHDL标准本身的一部分。它通常用于指示合成工具保持特定信号,例如触发器,即使通过合成工具可以确定在优化期间可以移除该信号
有关Altera Quartus合成工具,请参见以下说明:它是用户定义的属性,因此不是VHDL标准本身的一部分。它通常用于指示合成工具保持特定信号,例如触发器,即使通过合成工具可以确定在优化期间可以移除该信号
有关Altera Quartus合成工具,请参见以下说明:警告严重的Xilinx偏差 VHDL的属性对于不同的工具是不同的,甚至在相同工具的版本之间也会发生变化。Xilinx的“keep”属性用于确保在Vivado合成过程中信号不会被优化。为了避免混淆,它最近被重命名为“syn_keep”。我以前使用过类似的属性来修复构建问题,在这些问题中,工具会做出错误的假设 注意:为了避免在Xilinx实施过程中进行优化,请使用“请勿触摸” 例如: 进入FPGA的时钟需要通过Xilinx BUFG进行缓冲,但我需要特定IP核的原始信号。因此,我分割路由,缓冲时钟,并将原始时钟信号提供给IP。Vivado 2016.4工具优化了无缓冲路由,在硬件上创建了时间限制严重警告和错误行为。通过跟踪综合设计示意图,观察正确的路由,然后查看实现设计示意图,并查看路由被更改,发现了问题。我通过在无缓冲信号中添加don_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
);
警告严重的Xilinx偏差 VHDL的属性对于不同的工具是不同的,甚至在相同工具的版本之间也会发生变化。Xilinx的“keep”属性用于确保在Vivado合成过程中信号不会被优化。为了避免混淆,它最近被重命名为“syn_keep”。我以前使用过类似的属性来修复构建问题,在这些问题中,工具会做出错误的假设 注意:为了避免在Xilinx实施过程中进行优化,请使用“请勿触摸” 例如: 进入FPGA的时钟需要通过Xilinx BUFG进行缓冲,但我需要特定IP核的原始信号。因此,我分割路由,缓冲时钟,并将原始时钟信号提供给IP。Vivado 2016.4工具优化了无缓冲路由,在硬件上创建了时间限制严重警告和错误行为。通过跟踪综合设计示意图,观察正确的路由,然后查看实现设计示意图,并查看路由被更改,发现了问题。我通过在无缓冲信号中添加don_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
);