Vivado综合设计助手 – 帮助综合HDL属性支持 –  dont_touch,full_case,gated_clock,shreg_extract-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Vivado综合设计助手 – 帮助综合HDL属性支持 – dont_touch,full_case,gated_clock,shreg_extract

描述

此答复记录描述了Vivado综合属性,dont_touch,full_case,gated_clock,shreg_extract,还提供了它们的编码示例。

编码示例附在此答复记录中。答案记录还包含与已知问题和良好编码实践相关的信息。

注意 :每个编码示例都可用于直接创建Vivado项目。

请参阅每个源文件中的标题,了解每个示例中涵盖的Synthesis属性。

DONT_TOUCH

dont_touch属性的工作方式与“keep”和“keep hierarchy”属性的工作方式相同。

其功能是防止信号或分层块的逻辑优化,并转发注释网表以进行布局和布线。

Verilog示例
(* dont_touch =“{true | false}”*)<signal_name>;

VHDL示例
属性dont_touch:string;
<signal_name>的属性dont_touch:signal是“{true | false}”;


FULL_CASE(仅限Verilog)

full_case属性可用于指示Vivado Synthesis在语句中指定了所有可能的值。

如果指定了大小写值,则Vivado Synthesis不会创建案例值的额外逻辑。该属性只能通过RTL控制。

Verilog示例

(* full_case *)
案例(SELECT)
3’b001:Q1 <= A [0];
3’b011:Q1 <= A [1];
3’b110:Q1 <= A [2];
ENDCASE


GATED_CLOCK

gated_clock属性的目的是将时钟门控逻辑转换为触发器使能。

这利用了触发器时钟使能和专用时钟路由。

Vivado综合允许转换门控时钟。用于执行此转换的两个项目是:

  • GUI中的开关(-gated_clock_conversion),指示工具尝试转换。
  • RTL属性,指示工具关于门控逻辑中的哪个信号是时钟。

Verilog示例

(* gated_clock =“{true | false}”*)输入clk_a;

VHDL示例

端口(clk_a:在STD_LOGIC中;
EN:在STD_LOGIC中;

最后;

建筑行为顶部是

signal gclk_a:STD_LOGIC;

属性gated_clock:string;
clk_a的属性gated_clock:signal是“{true | false}”;

gclk_a <= clk_a AND en;


SHREG_EXTRACT

shreg_extract属性允许Vivado Synthesis在适用时启用移位寄存器的提取。适用的值为“true”和“false”

Verilog示例

在注册前放置

(* shreg_extract =“{yes | no}”*)reg [n:0] <reg_name>;

VHDL示例

属性shreg_extract:string;
属性shreg_extract的shreg:signal是“{yes | no}”;

属性名称 HDL文件
dont_touch.zip
  • dont_touch.v
  • dont_touch.vhd
full_case.zip
  • full_case.v
gated_clock.zip
  • gated_clock.v
  • gated_clock.vhd
shreg_extract.zip
  • shreg_extract.v
  • shreg_extract.vhd

附件

相关附件

名称 文件大小 文件类型
dont_touch.zip 42 KB 压缩
full_case.zip 562字节 压缩
gated_clock.zip 1 KB 压缩
shreg_extract.zip 36 KB 压缩
请登录后发表评论

    没有回复内容